WordPress REST API:评论数和喜欢计数

时间:2018-08-18 15:35:43

标签: javascript wordpress-rest-api

获取评论数量和喜欢的帖子数量最简单的方法是什么?

获取帖子时(例如https://site/wp-json/wp/v2/posts?after=2018-07-21T15:05:44.000Z之类的请求),我看不到任何有用的字段

我目前正在使用javascript通过axios发出直接请求。

2 个答案:

答案 0 :(得分:2)

如果您具有对所请求站点代码的编辑权限,则可以将该字段添加到JSON API提供的响应中。

类似这样的东西:

add_action( 'rest_api_init', function() {
\register_rest_field( 'post', 'comment_count', [
            'get_callback' => function ( $post ) {
                return (int) wp_count_comments( $post['id'] )->approved;
            },
            'schema'       => [
                'description' => 'List number of comments attached to this post.',
                'type'        => 'integer',
            ],
        ] );
});

如果您无权访问所请求的网站,则可以通过在URL的末尾发送?_embed=true来将评论添加到响应中,然后只计算答复数。

类似这样的东西:

const {data} = await Axios.get( 'https://site/wp-json/wp/v2/posts?after=2018-07-21T15:05:44.000Z&_embed=true' );

data.map( post => {
    console.log( post._embedded.replies.length );
});

答案 1 :(得分:0)

与其说是JavaScript相关问题,不如说是一个答案。

除了向REST API添加自定义端点外,获取任何帖子的评论数的最简单方法是使用评论端点(https://site/wp-json/wp/v2/comments?post=1234&per_page=1)并使用响应的X-WP-Total标头。 / p>