WordPress更新后,我的网站上出现Forreach错误

时间:2019-12-24 04:43:13

标签: php wordpress

我最近更新了Wordpress,并开始收到此错误。

  

警告:为中的foreach()提供了无效的参数   /home2/apeluso12/public_html/wp-includes/class-wp-post-type.php在   第526行

我运行着一个多站点,尽管我仍然可以登录到其他网站的面板,但是我什至无法登录我的主站点。我担心这是插件的兼容性问题,但我什至无法登录面板来停用任何插件。当我尝试登录时,出现了进一步的错误。

  

警告:无法修改标头信息-标头已由发送   (输出开始于   /home2/apeluso12/public_html/wp-includes/class-wp-post-type.php:526)   在第496行的/home2/apeluso12/public_html/wp-login.php中

     

警告:无法修改标头信息-标头已由发送   (输出开始于   /home2/apeluso12/public_html/wp-includes/class-wp-post-type.php:526)   在/home2/apeluso12/public_html/wp-login.php的第512行上

     

警告:无法修改标头信息-标头已由发送   (输出开始于   /home2/apeluso12/public_html/wp-includes/class-wp-post-type.php:526)   在/home2/apeluso12/public_html/wp-includes/functions.php在6029行上

     

警告:无法修改标头信息-标头已由发送   (输出开始于   /home2/apeluso12/public_html/wp-includes/class-wp-post-type.php:526)   在/home2/apeluso12/public_html/wp-admin/includes/misc.php中在线   1252

     

警告:无法修改标头信息-标头已由发送   (输出开始于   /home2/apeluso12/public_html/wp-includes/class-wp-post-type.php:526)   在/home2/apeluso12/public_html/wp-includes/pluggable.php的第932行上

     

警告:无法修改标头信息-标头已由发送   (输出开始于   /home2/apeluso12/public_html/wp-includes/class-wp-post-type.php:526)   在/home2/apeluso12/public_html/wp-includes/pluggable.php的第933行上

     

警告:无法修改标头信息-标头已由发送   (输出开始于   /home2/apeluso12/public_html/wp-includes/class-wp-post-type.php:526)   在/home2/apeluso12/public_html/wp-includes/pluggable.php的第934行上

     

警告:无法修改标头信息-标头已由发送   (输出开始于   /home2/apeluso12/public_html/wp-includes/class-wp-post-type.php:526)   在1265行的/home2/apeluso12/public_html/wp-includes/pluggable.php中

     

警告:无法修改标头信息-标头已由发送   (输出开始于   /home2/apeluso12/public_html/wp-includes/class-wp-post-type.php:526)   在1268行的/home2/apeluso12/public_html/wp-includes/pluggable.php中

这是所引用的代码。

public function add_supports() {
        if ( ! empty( $this->supports ) ) {
            foreach ( $this->supports as $feature => $args ) {
                if ( is_array( $args ) ) {
                    add_post_type_support( $this->name, $feature, $args );
                } else {
                    add_post_type_support( $this->name, $args );
                }
            }
            unset( $this->supports );
        } elseif ( false !== $this->supports ) {
            // Add default features.
            add_post_type_support( $this->name, array( 'title', 'editor' ) );
        }
    }

2 个答案:

答案 0 :(得分:0)

我在一个网站上遇到了同样的问题(包括无法登录)。问题在于一些自定义的帖子类型代码(正在引用class-wp-post-type.php),我已经将该主题的functions.php添加到了它,但是对您来说,它也有可能是一个插件。我的解决方案是通过重命名主题,通过FTP禁用了所有主题(除了默认的WP,比如19),然后解决了这个问题,然后我得以登录并纠正了代码。

我的特殊问题是CPT代码中的'supports'arg,奇怪的是,仅将其移到数组的底部为我修复了。

编辑:我还注意到,在自定义帖子类型中,“分类法”现在需要一个数组,而不是字符串或数组。将我的分类法更改为数组而不是字符串也可以在其他页面上为我解决此问题。

答案 1 :(得分:0)

类似于@评估单元

您应该确保将正确的值传递给每个参数。

例如分类的空数组和support =>

的正确值
$args = array(
    ...
    'taxonomies'            => array()
    ...
);
register_post_type('your_cpt_name', $args);

这为我修复了相同的错误。