我想通过从下拉列表中指定多个类别来获取所有帖子。在
pre_get_posts
我想修改查询以按所选类别(多个)进行搜索。
$taxquery = ($taxquery, array(
'taxonomy' => 'cat',
'field' => 'id',
'terms' => array('1','2'),
'operator'=> 'IN'
));
$query->set( 'tax_query', $taxquery );
但是当我执行此代码时,会显示非帖子(我确信这两个类别中至少有一个是帖子)
在使用第一个,第二个......类别进行搜索时,使用 OR
可能会有更好的方法来搜索多个类别。
任何方向都会很棒!
答案 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);