导致此错误的原因是什么?“警告:无效参数”

时间:2011-03-28 作者:Skymaiden

我需要紧急帮助来解决这个问题-我一直在本地处理WordPress主题,没有任何问题,现在我已将其上载到live server,我遇到了以下错误:

Warning: Invalid argument supplied for foreach() in /homepages/42/d357924500/htdocs/wp-includes/post.php on line 1011

相应的代码与register_post_type 功能:

foreach ( $args->taxonomies as $taxonomy ) {
        register_taxonomy_for_object_type( $taxonomy, $post_type );
    }
这可能是因为我的register_post_typeregister_taxonomy code? 该错误显示在前端和管理端(当我尝试更新小部件时,也会显示在小部件选项框中-更改不会保存)。

我对PHP还不是很了解(仍在学习),但我的知识只够管理一些WordPress定制。两个WordPress安装都使用版本3.1。非常感谢您在这个问题上提供的任何帮助。

--更新--

我尝试为我的自定义分类法“type”创建一个新术语,但在红色错误框中出现了以下错误:

**Warning: Invalid argument supplied for foreach() in /homepages/42/d357924500/htdocs/wp-includes/post.php on line 1011

Warning: Cannot modify header information - headers already sent by (output started at /homepages/42/d357924500/htdocs/wp-includes/post.php:1011) in /homepages/42/d357924500/htdocs/wp-includes/class-wp-ajax-response.php on line 129

Administration

administration0]]>Administration

administration0]]>**

分类术语显然未保存。

4 个回复
最合适的回答,由SO网友:jmeho 整理而成

遇到了同样的问题@帕特里克是对的。“taxonomies”参数必须是数组,因此为复数形式。E、 g。

$args = array( \'taxonomies\' => array( \'myTaxonomy\' ) );

这将更正错误。

我只是在将站点移动到另一台服务器时才注意到这一点,这让我觉得register\\u post\\u type()函数需要一些远程主机上未启用的php设置。register\\u globals已启用。。。你知道是什么让这个问题依赖于服务器吗?

SO网友:Patriek

我的假设是,您的参数->分类法为空、无效或不存在。没有更多的代码,很难说为什么。您是否将所有代码从本地主机上载到生产服务器。

有时也会发生这种情况,因为分类是在register\\u post\\u类型之后创建的,但是localhost代码会给出相同的错误。我通常这样称呼分类法。

function initialize_taxonomy() {
    register_taxonomy( \'tax_name\', \'tax_object\', array(
                        \'hierarchical\' => false,
                        \'query_var\' => false,
                        \'rewrite\' => true,
                        \'public\' => true,
                        \'show_ui\' => true,
                ) );  
}
add_action( \'init\', \'initialize_taxonomy\', 0 );

SO网友:petermolnar

变量$args,它来自哪里?也许您已经在本地计算机上启用了register\\u globals\\u,但在php中的服务器上禁用了它。ini。

SO网友:Skymaiden

因此,该错误是由我的自定义分类注册引起的。我设法把警告完全删掉了。看到这似乎解决了问题,我做了一个新的register_taxonomy (使用几乎完全相同的代码,但按照Patriek的建议更改了名称),警告没有出现。

非常感谢那些试图帮助我的人。:-)

结束

相关推荐

Displaying oEmbed errors?

有时,通过oEmbed嵌入项目是不可能的,例如,当YouTube视频已禁用嵌入时。The oEmbed service will return a 401 Unauthorized, 并且不会转换代码。有没有办法通知用户这一点?当前的工作流是非直观的(至少对我来说),我更喜欢在WordPress页面上,或者更好的是,在编辑器中显示一条消息,说明对象无法嵌入。