我现在有点困了。我想要实现的是向api发出请求,返回所有do not have 指定的分类法。
我可以执行此请求以从特定分类中获取帖子:
wp-json/wp/v2/lagerboxen?my_taxonomy=6
我知道我也可以排除这种分类法,以获得除这些帖子以外的所有帖子:
wp-json/wp/v2/lagerboxen?my_taxonomy_exclude[]=6
但我有一些帖子实际上将我的\\u分类法表示为一个空数组,如:
my_taxonomy = []
我希望获得所有这些帖子,而不需要在请求中排除所有其他分类法。基本上,在WordPress中可以通过在PHP中进行查询,如下所示:
\'operator\' => \'NOT IN\'
但我真的不想仅仅为了完成这个请求而编写自己的REST方法。有没有一种方法可以通过默认的REST可能性来实现这一点?
我已经试过这样的请求
wp-json/wp/v2/lagerboxen?my_taxonomy_exclude=
wp-json/wp/v2/lagerboxen?my_taxonomy_exclude[]=
它们实际上都不起作用。
非常感谢。
最合适的回答,由SO网友:Ralph Segi 整理而成
我可以通过添加自定义路线来解决此问题。虽然我必须在php中执行相同的过程,首先查询该类型的所有可用术语,然后从查询中排除它们。
$available_terms = array_map( function ( $term ) {
return $term->term_id;
}, get_terms( \'lagerboxen_kategorie\' ) );
return get_posts( [
\'post_type\' => \'lagerboxen\',
\'tax_query\' => [
\'relation\' => \'AND\',
[
\'taxonomy\' => \'lagerboxen_kategorie\',
\'field\' => \'term_id\',
\'terms\' => $available_terms,
\'operator\' => \'NOT IN\'
]
]
] );
当然,如果有更好的方法,这仍然很有趣:)