我有以下代码:
$args = array(
\'posts_per_page\' => -1,
\'category\' => 7,
\'orderby\' => \'name\',
\'order\' => \'ASC\',
\'post_type\' => \'product\'
);
$posts = get_posts($args);var_dump($posts);
这应该会返回一个我知道属于该类别的帖子,但它不是。如果我省略“category”参数,我会得到所有的产品,所以我知道这应该正常工作。如果我将类别更改为1,并删除我的自定义帖子类型(产品),我将获得我的默认帖子。
我看不出这有什么问题。有人能发现问题所在吗?
最合适的回答,由SO网友:Pieter Goosen 整理而成
很可能您使用的是自定义分类法,而不是内置分类法category
分类学如果是这种情况,那么类别参数将不起作用。您将需要tax_query
查询特定术语中的帖子。(记住,get_posts
使用WP_Query
, 因此,您可以从WP_Query
到get_posts
)
$args = [
\'post_type\' => \'product\',
\'tax_query\' => [
[
\'taxonomy\' => \'my_custom_taxonomy\',
\'terms\' => 7,
\'include_children\' => false // Remove if you need posts from term 7 child terms
],
],
// Rest of your arguments
];
其他资源
What is the difference between custom taxonomies and categories