以下是一个示例循环:
$args = array('s' => 'Example search term', 'cat' => 100, 'posts_per_page' => -1);
$query = new WP_Query( $args );
if ( $query->have_posts() ) {
while ( $query->have_posts() ) { $query->the_post();
foreach((get_the_category()) as $category) {
echo $category->cat_name . '<br />';
}
}
}
wp_reset_query();
假设id为#100的类别是多个子类别的父类别,则此循环成功返回大量重复的类别名称列表。
如何仅列出唯一类别名称并计算它们?并将两个值都放入适当的变量中。
除了所有找到的结果及其数量的完整列表之外......
当然,我会一如既往地在等待您的答复时自己找出解决方案。但是,实际上,我会非常感激您的帮助。
答案 0 :(得分:0)
所以,我会回应自己。再次)
感谢@ Perumal93的提示指导我正确的方法,我现在有了解决方案。
如果它可以像我这样的人使用,这里有注释代码可以复制和粘贴:
$args = array('s' => 'Example search term', 'cat' => 100, 'posts_per_page' => -1);
$query = new WP_Query( $args );
if ( $query->have_posts() ) {
$categories = array(); // 1. Defining the empty array outside of the loop
while ( $query->have_posts() ) { $query->the_post();
foreach((get_the_category()) as $category) {
$categories[] = $category->cat_name; // 2. Filling the array with required data
}
}
$u_categories = array_unique($categories); // 3. Clearing the array from repeated data
$u_categories_cnt = count($u_categories); // 4. Counting the cleared array items
foreach( $u_categories as $category ) { // 5. Outputting
if($category == end($u_categories)) { echo $category.'.'; } // the cleared
elseif($category == prev($u_categories)) { echo $category.' and '; } // array in a
else {echo $category.', '; } // human
} // friendly way
echo $u_categories_cnt; // 6. Outputting the cleared array items count
}
wp_reset_query();
就是这样