我如何才能编写一个WP_QUERY,这是特定的?

时间:2020-03-10 作者:Cole

因此,我有一个客户端,它希望选择在页面上显示的帖子,非常具体。我正在尝试编辑一个我制作的短代码以适应。

假设他们有类别A、B和C,其中每个类别都可以是Wordpress中的任何类别。所以像A可以是新闻、博客、特色等,B和C也是一样。

他们希望能够显示具有(A和B)或(A和C)的帖子。所以在布尔表示法A&;(B | C)。

如何创建WP\\U查询来执行此操作?我可能可以使用和SQL语句来管理它,但我真的希望避免这种情况。我还希望能够通过一些简短的代码参数(可能是2-3个不同的参数)来处理这些关系,所以如果可能的话,尽量不要太复杂。

1 个回复
SO网友:Wacław Jacek

这个tax_query 属性是您所需要的。

你可以这样使用它:

$query_args = array(
    \'tax_query\' => array(
        \'relation\' => \'AND\',
        array(
            \'taxonomy\' => \'category\',
            \'field\'    => \'slug\',
            \'terms\'    => array( \'slug-of-category-a\' ),
        ),
        array(
            \'relation\' => \'OR\',
            array(
                \'taxonomy\' => \'category\',
                \'field\'    => \'slug\',
                \'terms\'    => array( \'slug-of-category-b\' ),
            ),
            array(
                \'taxonomy\' => \'category\',
                \'field\'    => \'slug\',
                \'terms\'    => array( \'slug-of-category-c\' ),
            ),
        ),
    ),
);
$query = new WP_Query( $query_args );
或者,利用“IN”操作符(默认情况下在查询术语时用于tax\\u查询)已经作为“Or”条件的事实,您还可以编写:

$query_args = array(
    \'tax_query\' => array(
        \'relation\' => \'AND\',
        array(
            \'taxonomy\' => \'category\',
            \'field\'    => \'slug\',
            \'terms\'    => array( \'slug-of-category-a\' ),
        ),
        array(
            \'taxonomy\' => \'category\',
            \'field\'    => \'slug\',
            \'terms\'    => array( \'slug-of-category-b\', \'slug-of-category-c\' ),
        ),
    ),
);
$query = new WP_Query( $query_args );
这将获得同时位于和中的帖子:

B、C、B和C。有关更多选项,请参阅我链接的文档。

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post