获取多个类别的所有帖子

时间:2016-11-16 19:18:35

标签: wordpress

我想通过从下拉列表中指定多个类别来获取所有帖子。在 pre_get_posts我想修改查询以按所选类别(多个)进行搜索。

$taxquery = ($taxquery, array(
            'taxonomy'  => 'cat',
            'field'  => 'id',
            'terms'  => array('1','2'),
            'operator'=> 'IN'
            ));          
$query->set( 'tax_query', $taxquery );

但是当我执行此代码时,会显示非帖子(我确信这两个类别中至少有一个是帖子) 在使用第一个,第二个......类别进行搜索时,使用 OR 可能会有更好的方法来搜索多个类别。 任何方向都会很棒!

2 个答案:

答案 0 :(得分:0)

首先,您应该使用term_id,而不是id,然后您应该在tax_query中添加额外的array,因为您不能拥有多个$category_ids = array(1,2); $query->set( 'category__in', $category_ids ); 。所以你的代码看起来像这样:

Procedure :

 1.Take an array.

 2.Then by default function reverse(array_name, array_name + size) .
  reverse(array_name, array_name + size) function exits in algorithm.h header file.

 3.Now print the array. 

 N.B  Here we use new and delete for dynamic memory allocation.

答案 1 :(得分:0)

经过数小时的调试后,我终于找到了解决方案......

有几个错误:Ids需要在术语数组中是整数,taxonomy需要'category'而不是'cat',在我的情况下,关系需要是我想要的OR按多个类别和按其他自定义字段进行搜索,至少需要满足一个类别...

以下是代码示例:

$taxquery =  array(
                'relation' => 'OR',
                'post_type' => 'post',
                'tax_query' => array(
                    'taxonomy'  => 'category',
                    'field'  => 'id',
                    'terms'  => array(1,2,3),
                    'operator'=> 'IN'
                  )); 
        $query->set('tax_query', $taxquery);