警告:为post.php中的Foreach()提供的参数无效

时间:2016-06-26 作者:Dor

刚将我的站点移动到另一台服务器,现在我发现以下错误:

警告:为/home/menta/domains/land中的foreach()提供的参数无效。menta4u。co.il/wp-includes/post。php在线1172

在旧服务器上,一切都正常工作。

我玩了一会儿,把它缩小到我的功能范围。php(这是我自己的主题)在里面,我看到当我删除启动我创建的CPT的代码时,错误消失了。这是启动CPT的代码:

function testimonials() {
    $labels = array(
        \'name\'                  => _x( \'המלצות\', \'Post Type General Name\', \'text_domain\' ),
        \'singular_name\'         => _x( \'המלצה\', \'Post Type Singular Name\', \'text_domain\' ),
        \'menu_name\'             => __( \'המלצות\', \'text_domain\' ),
        \'name_admin_bar\'        => __( \'המלצות\', \'text_domain\' ),
        \'archives\'              => __( \'Item Archives\', \'text_domain\' ),
        \'parent_item_colon\'     => __( \'Parent Item:\', \'text_domain\' ),
        \'all_items\'             => __( \'כל ההמלצות\', \'text_domain\' ),
        \'add_new_item\'          => __( \'הוסף המלצה חדשה\', \'text_domain\' ),
        \'add_new\'               => __( \'הוסף חדש\', \'text_domain\' ),
        \'new_item\'              => __( \'המלצה חדשה\', \'text_domain\' ),
        \'edit_item\'             => __( \'ערוך המלצה\', \'text_domain\' ),
        \'update_item\'           => __( \'עדכן המלצה\', \'text_domain\' ),
        \'view_item\'             => __( \'צפה בהמלצה\', \'text_domain\' ),
        \'search_items\'          => __( \'Search Item\', \'text_domain\' ),
        \'not_found\'             => __( \'לא נמצא\', \'text_domain\' ),
        \'not_found_in_trash\'    => __( \'לא נמצא באשפה\', \'text_domain\' ),
        \'featured_image\'        => __( \'Featured Image\', \'text_domain\' ),
        \'set_featured_image\'    => __( \'Set featured image\', \'text_domain\' ),
        \'remove_featured_image\' => __( \'Remove featured image\', \'text_domain\' ),
        \'use_featured_image\'    => __( \'Use as featured image\', \'text_domain\' ),
        \'insert_into_item\'      => __( \'Insert into item\', \'text_domain\' ),
        \'uploaded_to_this_item\' => __( \'Uploaded to this item\', \'text_domain\' ),
        \'items_list\'            => __( \'Items list\', \'text_domain\' ),
        \'items_list_navigation\' => __( \'Items list navigation\', \'text_domain\' ),
        \'filter_items_list\'     => __( \'Filter items list\', \'text_domain\' ),
    );
    $args = array(
        \'label\'                 => __( \'testimonial\', \'text_domain\' ),
        \'description\'           => __( \'Customer Testimonials\', \'text_domain\' ),
        \'labels\'                => $labels,
        \'supports\'              => array( \'title\', \'editor\', ),
        \'taxonomies\'            => false,
        \'hierarchical\'          => false,
        \'public\'                => true,
        \'show_ui\'               => true,
        \'show_in_menu\'          => true,
        \'menu_position\'         => 5,
        \'menu_icon\'             => \'dashicons-format-quote\',
        \'show_in_admin_bar\'     => true,
        \'show_in_nav_menus\'     => true,
        \'can_export\'            => true,
        \'has_archive\'           => false,
        \'exclude_from_search\'   => true,
        \'publicly_queryable\'    => true,
        \'capability_type\'       => \'page\',
    );
    register_post_type( \'testimonial\', $args );
}
add_action(\'init\',\'testimonials\',0);
可能是什么问题?

1 个回复
最合适的回答,由SO网友:Tim Malone 整理而成

在WordPress 4.5.3中foreach 在里面wp-includes/post.php on line 1177 而且周围没有其他人,所以我猜这就是导致您在第1172行安装时出错的原因。

这是在register_post_type() 函数,它在taxonomies 你正在发送的论点。好你本来要发送的;)

你的taxonomies 参数设置为false, 鉴于register_post_type() 他说only an array is a suitable value for this argument. 这就是foreach出错的原因。

所以说了这么多,准备taxonomiesarray() 如果您不想设置任何分类法。或者,您可以完全忽略该参数,默认值为array() 将适用。

现在您知道了如何查找错误消息,希望将来能找到问题:)此外,正如Mark Kaplen在评论中提到的,请确保WP_DEBUG 在中设置为truewp-config.php 在开发服务器上;这样,您就可以从一开始就捕获它(然后在生产服务器上关闭它)。

此外,最好仔细检查您调用的函数的文档,以便知道您正在以正确的格式发送参数。您可以从以下位置开始搜索https://developer.wordpress.org/reference/

相关推荐

如何在Functions.php中链接style.css

我是WordPress的新手;我刚开始学习WordPress。我想把风格联系起来。函数中的css。php,但我无法解决这里可能存在的问题。谁能给我指出正确的方向吗?指数php<?php get_header(); ?> <?php if ( have_posts() ) { while ( have_posts() ) { the_post();