如何查看分类终点中的帖子

时间:2021-07-14 作者:user8463989

我正在查看一个自定义的分类端点,该分类有一些自定义的帖子类型,但它们没有显示在端点中。是否需要向该端点添加一些内容,或者注册自定义帖子类型/分类法?

http://example.com/wp-json/wp/v2/experiences/7

这只会给我字段id, count, description, link, name, slug, taxonomy, parent, meta, links. 但没有实际的自定义帖子类型数据。

1 个回复
最合适的回答,由SO网友:Sally CJ 整理而成

根据您的评论:

我只是想知道是否有一个核心端点用于列出具有相关post类型记录的自定义分类法。

正如我在最初的回答中所说的:(不过稍微修改了一下)

所讨论的端点是一个分类术语,它返回特定术语的数据(例如描述、名称和slug),但响应不包括该术语中的帖子,因为帖子有自己的端点(例如。/wp/v2/your_post_type?experiences=7 获取的帖子your_post_type 键入自定义experiencesID为7的术语的分类法),但仅当post类型为enabled in the REST API

因此,没有任何核心端点可以像常规术语归档页面那样开箱即用example.com/category/uncategorized, example.com/?cat=1example.com/experiences/foo-bar (其中experiences 是一个自定义分类法slug),默认情况下,它显示所有或任何post types

我希望我能从一个端点得到这个

在这种情况下,自定义端点可能会更好

是的,这是一种简单的方法,而不是对与您的分类法关联的不同post类型发出多个API请求,而且它还可以避免您可能需要进行复杂的JS编码来处理分页。

但实际上,你可以利用Search endpoint (/wp/v2/search) 以及rest_post_search_query filter 修改将传递给的搜索查询参数WP_Query.

这意味着,就像您可以通过pre_get_posts 钩子,您还可以通过上述过滤器控制搜索端点查询。

因此您可以添加分类查询、元查询、,etc.

下面是一个你可以尝试的例子,你可以向/wp/v2/search?type=post&<taxonomy slug>=<term ID or slug>, e、 g。/wp/v2/search?type=post&experiences=7/wp/v2/search?type=post&experiences=term-slug.

Notes:

type=post 以上必须始终是,它不是一个职位类型!相反,这意味着你正在搜索帖子。

在响应中,实际的post类型(slug)位于名为subtype.

add_filter( \'rest_post_search_query\', \'my_rest_post_search_query\', 10, 2 );
function my_rest_post_search_query( $query_args, $request ) {
    $tax_query  = array();
    $post_types = array();

    $tax_objects = get_taxonomies( array(
        \'publicly_queryable\' => true,
    ), \'objects\' );

    foreach ( $tax_objects as $taxonomy => $tax_object ) {
        if ( ! empty( $request[ $taxonomy ] ) ) {
            $tax_query[] = array(
                \'taxonomy\' => $taxonomy,
                \'terms\'    => $request[ $taxonomy ],
                \'field\'    => is_numeric( $request[ $taxonomy ] ) ? \'term_id\' : \'slug\',
            );

            $post_types = array_merge( $post_types, (array) $tax_object->object_type );
        }
    }

    if ( ! empty( $tax_query ) ) {
        $query_args[\'tax_query\'] = $tax_query;
        $query_args[\'post_type\'] = $post_types;
    }

    return $query_args;
}

相关推荐

我可以在纯固定链接格式上使用REST-API吗?

最近,我所有的REST-API请求都突然返回404错误,每个请求(无论是自定义端点还是内置的)。然后我想这是因为permalink的结构。/wp-json/ 在普通permalink下无法访问,因为目前根本没有可用的重定向规则。在这种情况下是否可以使用REST端点?自定义和内置。