WordPress REST获取所有未分配分类的项目

时间:2019-09-02 作者:Ralph Segi

我现在有点困了。我想要实现的是向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[]=
它们实际上都不起作用。

非常感谢。

1 个回复
最合适的回答,由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\'
              ]
            ]
          ] );
当然,如果有更好的方法,这仍然很有趣:)

相关推荐

通过REST-API保存自定义POST类型POST_META失败

我尝试用wp json保存我的自定义帖子类型元数据,但在我的情况下不起作用我使用创建自定义帖子类型jjgrainger\'s 分类如下$arguments = array( \'public\' => true, \'show_in_rest\' => true, ); $survey = new PostType(\'survey\', $arguments); $surve