如何显示帖子的GET_THE_CATEGORY,显示类别“X”的唯一子项

时间:2018-03-04 作者:Graham Brown

我试图显示get\\u category\\u类别,将结果限制为只显示父级“666”的子类别。

因此,一篇帖子可能有很多类别,例如“1234”、“666”、“666/1341”、“5”、“5/17”,但我只想显示“666”的子帖子。

$args = array( \'numberposts\' => \'5\',\'post_status\' => \'publish\',\'category\' => \'1234\',\'category__not_in\' => \'680\', \'orderby\' => \'post_date\', \'order\' => \'DESC\' );
$recent_posts = wp_get_recent_posts($args);
{

///I want to return the category for each post in this loop that is within the "666" category.
///E.g get_the_category($recent[\'ID\']) where the category is a child of 666

echo "POST ID" . $recent[\'ID\'] . " CHILD CATEGORY ". $childcategory; 
}
上述循环将返回类别“1234”中的最后5个帖子,每个子类别为“666”。

e、 g。

邮政ID 10子类别1341邮政ID 11子类别1341邮政ID 14子类别99邮政ID 19子类别1341邮政ID 23子类别99

2 个回复
SO网友:admcfajn

您可以通过首先获取该类别的子类别,然后将其作为数组传递给查询来实现这一点。

$categories=get_categories(
    array( \'parent\' => $cat->cat_ID )
);

$cat_list = [];
foreach ($categories as $c) {
    $cat_list[] = $c->term_id;
}
参考号:Get the children of the parent category

这可能不起作用,但通常值得尝试传递一个数组,您可以在WordPress中传递一个整数:

$args = array( \'numberposts\' => \'5\',\'post_status\' => \'publish\',\'category\' => $cat_list,\'category__not_in\' => \'680\', \'orderby\' => \'post_date\', \'order\' => \'DESC\' );
wp_get_recent_posts 使用get_posts &;get_post 接受类别的ID,在编写时它没有提到数组。。。所以你可能需要使用WP_Query:

$query = new WP_Query( array( \'category__and\' => $cat_list ) );
请参见:https://codex.wordpress.org/Class_Reference/WP_Query

SO网友:Meriton Reqica

您可以使用array_map 因此,您只能返回所需的类别。例如:

array_map( function( $cat ) {
        if ( $cat->parent != 0 ) {
            return $cat;
        }
     },
     get_the_category()
);

结束

相关推荐

按帖子类型筛选wp_Dropdown_Categories

我正在使用wp\\u dropdown\\u categories向媒体库添加类别过滤器。它工作正常,除了显示分配给帖子的所有类别,但我希望它只显示分配给附件的类别。如果只为附件更新计数也很好。下面是将类别添加到附件并允许您对其进行筛选的代码。/* Add categories to attachments/media library */ function wptp_add_categories_to_attachments() { register_taxonomy_for_objec