CATEGORY__的数组中有多个值,并且不适用于WP_QUERY

时间:2013-11-03 作者:blake

因此,我使用WP\\u Query循环,下面是我的代码:

$country_posts = new WP_Query(get_direct_children($continent_cats));
if ($country_posts->have_posts())  : while ($country_posts->have_posts()) : $country_posts->the_post();
get\\u direct\\u children函数:

function get_direct_children($cat_name) {
        if (gettype($cat_name) == \'string\') : $category_id = get_cat_ID($cat_name);
        elseif (gettype($cat_name) == \'integer\') : $category_id = $cat_name;
        endif;
        $args = array(\'parent\'   => $category_id);
        $categories = get_categories($args);
        $cats = wp_list_pluck($categories,\'cat_ID\');
        $args = array (
              \'category__and\'                    => $cats
        );
        return $args;
    }
$country\\u posts->have\\u posts()仅当从get\\u direct\\u子级返回1个类别时才返回true。当我关闭$Continental\\u cats(顺便说一下,这是一个字符串)的所有子对象(除1之外)时,就会发生这种情况。

只有一个子类别处于活动状态时:

var_dump(get_direct_children($continent_cats));
返回值:

array(1) { ["category__and"]=> array(1) { [0]=> string(2) "72" } }
这就是我想要它做的。have\\u posts()返回true并循环我的1个活动子类别。然而,当我启用另一个子类别时,have\\u posts()返回false(我认为,这只是没有发布任何内容)。

同样的功能:

var_dump(get_direct_children($continent_cats));
返回值:

array(1) { ["category__and"]=> array(2) { [0]=> string(2) "72" [1]=> string(2) "71" } }
当我有两个子类别处于活动状态时。既然这看起来像是正确的语法和category\\uu,并且采用了正确的变量类型,为什么不循环这两个类别呢?为什么它甚至不循环1个类别?

谢谢

1 个回复
SO网友:blake

更改:

$args = array (
              \'category__and\'                    => $cats
        );
收件人:

$args = array (
                  \'category__in\'                    => $cats
            );
成功了。

结束