因此,我使用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个类别?
谢谢