我想用类别填充数组,并试图用in\\u数组防止重复:
if ( $query->have_posts() ) {
$categories = array();
while ( $query->have_posts() ) {
$query->the_post();
foreach((get_the_category()) as $category) {
if(!in_array($category, $categories)) {
$categories[] = $category;
}
}
};
} ?>
但这些类别仍然被计算了两次(或更多,取决于帖子的数量)。
最合适的回答,由SO网友:Charles Clarkson 整理而成
可以这样尝试:
if ( $query->have_posts() ) {
$categories = $category_ids = array();
while ( $query->have_posts() ) {
$query->the_post();
foreach ( ( get_the_category() ) as $category ) {
if ( ! in_array( $category->term_id, $category_ids ) ) {
$category_ids[] = $category->term_id;
$categories[] = $category;
}
}
};
}
get_the_category()
返回对象数组。我没有检查
in_array
文档,但我怀疑它不包括对象匹配。
$category_ids
是仅用于比较的ID的数组。