Search CPT by tag ids

时间:2021-04-15 作者:Pritesh Mahajan

我需要按标记ID搜索自定义帖子类型。我创建了一个帖子类型,即;“gampu”;。在这个帖子类型中,我注册了5个标签分类法,如“fitting”、“adapter”、“type”、“volume”和“gaki”。现在,管理员可以在此标记分类法中创建许多标记,当管理员创建任何帖子时,他们将从所有这5个注册标记分类法中选择标记。

在前端,我想添加标签过滤器。当用户选择(复选框)标签并单击搜索时,我只需要获取那些由标签ID关联的帖子。我尝试了下面的代码,但它对我不起作用。

               $args = array(
                    \'post_type\' => \'gampu\',
                    \'posts_per_page\' => -1,
                    \'tag__in\' => array(30,31,34),
                    \'post_status\' => \'any\',
                    \'orderby\' => \'ID\',
                    \'order\' => \'DESC\'
                );
                
                $query = new WP_Query($args);
                echo \'<pre>\'; var_dump($query->request); echo \'</pre>\';

                $getpost = get_posts($args);
                echo \'<pre>\'; var_dump($getpost); echo \'</pre>\';
此代码中没有任何内容。如果我在上述代码中的任何地方出错,请修复我。

1 个回复
最合适的回答,由SO网友:Pritesh Mahajan 整理而成

我自己做的。以下是解决方案

$args = array(
    \'post_type\' => \'gampu\',
    \'posts_per_page\' => -1,
    \'post_status\' => \'any\',
    \'orderby\' => \'ID\',
    \'order\' => \'DESC\',
    \'tax_query\'  => array(
        \'relation\' => \'OR\',
        array(
            \'taxonomy\'  => \'my-tag-taxonomy1\',
            \'field\'     => \'id\',
            \'terms\'     =>  array(30,31,34),
        ),
        array(
            \'taxonomy\'  => \'my-tag-taxonomy2\',
            \'field\'     => \'id\',
            \'terms\'     =>  array(30,31,34),
        ),
    ),
);