Wordpress:按类别获取相关帖子,但忽略主要类别

时间:2017-10-27 16:25:31

标签: wordpress categories

我试图设置相关帖子,显示与当前相同类别的帖子。设置客户博客的方式是,他们都共享类别"博客",相关帖子将为每个帖子显示相同的内容。

<?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;因为它会排除一切。

2 个答案:

答案 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'
       ) );

     ?>