GET_POST-需要所有类别

时间:2015-06-16 作者:Snowcrash

get_posts docs我看到它将类别作为参数。

然而,这是ANDOR?

i、 e.如果您指定了两个类别,那么要返回的帖子是否必须同时包含这两个类别?

如果没有,如何指定AND 关系我只想要符合所有类别的帖子。

1 个回复
SO网友:s_ha_dum

get_posts() 将数据传递给WP_Query 作为cat 论点as you can see in the source:

1863            if ( ! empty($r[\'category\']) )
1864                    $r[\'cat\'] = $r[\'category\'];
资料来源中还有一条相关注释:

1835     *     @type int|string $category         Category ID or comma-separated list of IDs (this or any children).
1836     *                                        Is an alias of $cat in WP_Query. Default 0.
That is going to match up to this usage:

$query = new WP_Query( \'cat=2,6,17,38\' );
如果运行该查询,您将看到它是OR 关系:

$query = new WP_Query( \'cat=2,6,17,38\' );
var_dump($query->request);
更具体地说,它使用MySQL的IN() 语法。

你可以把任何事情都推过去get_posts() 这将与WP_Query 所以这应该是可行的:

$query = get_posts( \'category_name=staff+news\' );
或者这个:

$query = get_posts( array(\'category_name\' => \'staff+news\' );
然而,跳过get_posts() 功能和使用WP_Query 直接地get_posts() 实际上只是一个薄薄的包装,让我觉得代码膨胀了。分类查询将为您提供所需的所有控件:

$args = array(
    \'post_type\' => \'post\',
    \'tax_query\' => array(
        array(
            \'taxonomy\' => \'category\',
            \'field\'    => \'term_id\',
            \'terms\'    => array( 2,6,17,38 ),
            \'operator\' => \'AND\'
        ),
    ),
);
$query = new WP_Query( $args );

结束

相关推荐

向GET_CATEGORIES下拉列表添加自定义选项

我有一个下拉菜单,用于在我正在处理的小部件中选择类别。一切正常,选项保存在数据库中。我现在要做的是添加一个空白选项,而不是在单击“保存”时自动设置。在这种情况下,用户可能不想设置类别。 $this->categories = get_categories(); foreach ( $this->categories as $cat ) { $selected = ( $cat->term_id == esc_att