我试图设置相关帖子,显示与当前相同类别的帖子。设置客户博客的方式是,他们都共享类别"博客",相关帖子将为每个帖子显示相同的内容。
<?php $related = get_posts( array(
'category__in' => wp_get_post_categories($post->ID),
'numberposts' => 4,
'post__not_in' => array($post->ID)
) );
?>
我需要获得不属于主要类别(博客)的帖子。我无法做到&#34; cateogry__not__in
&#34;因为它会排除一切。
答案 0 :(得分:0)
根据wp_term_query's docs,您应该可以通过添加参数来排除博客,例如将您的category__in
更改为
'category__in' => wp_get_post_categories(
$post->ID,
array(
"exclude" => array($blogid)
)
),
$blogid
是您博客类别的ID。由于它还提供exclude_tree
来排除术语及其子术语,因此我认为它将完全符合您的要求并且仅排除博客类别。
答案 1 :(得分:0)
好的,我想我找到了办法。一切似乎都按照我想要的方式发挥作用。
$categories = get_the_category();
$category_filter = array();
foreach ($categories as $category) {
if ($category->name != "Blog") {
array_push($category_filter, $category->term_id);
}
}
<?php $related = get_posts( array(
'category__in' => $category_filter,
'numberposts' => 4,
'post__not_in' => array($post->ID),
'orderby' => 'rand'
) );
?>