我的‘POST_TYPE’和‘TAX_QUERY’的组合不起作用了?

时间:2022-02-22 作者:Milosh N.

我想按自定义帖子类型和自定义分类术语筛选搜索结果,结果如下:


add_action(\'pre_get_posts\',\'search_filter\');
function search_filter($query) {
    if($query->query_vars[\'s\'] != \'\' && is_search())
    {
        $query->set(\'post_type\', array(\'partner\',\'event\',\'product\'));
        $tax_query = array(
            \'relation\' => \'OR\',
            array(
                \'taxonomy\' => \'city\',
                \'field\'    => \'slug\',
                \'terms\'    => array( \'belgrade\' )
            )
        );
        $query->set( \'tax_query\', $tax_query );
    }
}
来自特定CPT的帖子有效,但按类别过滤,而不是。为什么?:)

1 个回复
SO网友:Den Isahac

我想问题是你在使用relation 只有一个内部税数组。所以,它应该没有一个。

$tax_query = array(
      array(
         \'taxonomy\' => \'city\',
         \'field\'    => \'slug\',
         \'terms\'    => array( \'belgrade\' )
   )
);
以下是WP的详细说明:Taxonomy Parameters

  • relation (string) – 当存在多个内部分类法数组时,每个内部分类法数组之间的逻辑关系。可能的值为“AND”、“OR”。不要与单个内部分类法数组一起使用