我有一些自定义帖子元用于统计视图,
image of api (http://www.test.com/wp-json/wp/v2/posts)
当我收到“ http://www.test.com/wp-json/wp/v2/posts/1234”(1234是帖子ID)时,我需要更新(增加++)帖子查看计数器
我搜索了很多,但没有找到任何东西,尽管我对这段代码感到满意:
add_action( 'rest_api_init', function () {
register_rest_route( 'base', '/views/(?P<id>\d+)', array(
'methods' => 'GET',
'callback' => 'post_view_counter_function',
));
});
function post_view_counter_function( WP_REST_Request $request ) {
$post_id = $request['id'];
if ( FALSE === get_post_status( $post_id ) ) {
return new WP_Error( 'error_no_post', 'Not a post id', array( 'status' => 404 ) );
} else {
$current_views = get_post_meta( $post_id, 'views', true );
$views = $current_views + 1;
update_post_meta( $post_id, 'views', $views );
return $views;
}
}
但是上面代码的问题是单独的和自定义的端点,我需要通过每个html get请求将发布api(http://www.test.com/wp-json/wp/v2/posts/1234)的视图计数器(图像中的cd_plays)增加
请给我一个指南,我对此深信不疑
答案 0 :(得分:0)
此代码中有许多更改 1. register_rest_route('base','/ views /(?P \ d +)',array(
更改为register_rest_route('base / v1', 如果您不希望进行重大更改,则可以使用以下网址, http://www.test.com/wp-json/base/v1/views/1234
答案 1 :(得分:0)
您还可以将获取的每页帖子数限制为1,这样就不会为了让帖子数而获得所有WordPress帖子。
http://demo.wp-api.org/wp-json/wp/v2/posts?per_page=1
谢谢