Getting posts by taxonomy

时间:2012-11-08 作者:ken

我想根据现有的分类术语从CPT获取一组帖子。我想我应该使用WP的get\\u posts()函数:

$结果=获取文章(数组$选项);

当我指定我感兴趣的CPT时,此函数工作正常:

$results=get\\u posts(数组(\'post\\u type\'=>\'my\\u cpt\\u name\');

但后来我用我的UOM自定义post类型尝试了这一点,并尝试使用公制进行筛选,公制是一种称为“UOM\\U system”的分类法:

$results=get\\u posts(数组(\'post\\u type\'=>\'计量单位\',\'uom\\u system\'=>\'公制\');

遗憾的是,分类法部分被忽略了,我在UOM posts表中得到了完整的帖子列表。我做错了什么?

2 个回复
SO网友:Simon Blackbourn

我通常使用tax_query 参数:

$args = array(
    \'post_type\'      => \'my_cpt_name\',
    \'post_status\'    => \'publish\',
    \'posts_per_page\' => -1,
    \'tax_query\'      => array( array(
            \'taxonomy\' => \'uom_system\',
            \'field\'    => \'slug\',
            \'terms\'    => \'metric-system\'
            ) )
    );

$results = get_posts( $args );
请参见http://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters

SO网友:ken

我解决了自己的问题,因为我意识到传递给get\\u posts的数组中有一些名称-值对不是用于该函数的(也就是说,我广泛地使用它来表示“选项”,其中只有一些选项用于get\\u posts调用)。它似乎不再忽略它不理解的值,而是停止处理进一步的名称-值对。很公平。我删除了垃圾名称-值对,现在工作正常。

我很喜欢Simon关于“tax\\u query”的贡献。。。我不知道这个选项,我可以看出在某些情况下这可能是更好的语法。

结束

相关推荐