Увеличение счетчика просмотров сообщений WordPress путем вызова rest api

У меня есть мета-мета-запись для подсчета просмотров,

https://i.stack.imgur.com/Nsnxv.jpg

мне нужно обновить (увеличить ++) счетчик просмотров сообщений, когда я получаю "http://www.test.com/wp-json/wp/v2/posts/1234 "(1234 - идентификатор сообщения)

Я много ищу, но ничего не нахожу, хотя мне нравится этот код:

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;
  }
}

НО проблема приведенного выше кода заключается в том, что это отдельная и настраиваемая конечная точка, мне нужно увеличивать счетчик просмотров (cd_plays на изображении) при каждом запросе html на получение сообщения api (http://www.test.com/wp-json/wp/v2/posts/1234)

пожалуйста, дайте мне руководство, я застрял в этом


person ebeliejinfren    schedule 03.08.2018    source источник


Ответы (2)


В этом коде много изменений 1. register_rest_route ('base', '/ views / (? P \ d +)', array (

Измените на register_rest_route ('base / v1', если вы не хотите серьезных изменений, поэтому этот URL-адрес, http://www.test.com/wp-json/base/v1/views/1234

person iPraxa Inc    schedule 03.08.2018

Вы также можете ограничить количество сообщений на каждой странице, которые вы загружаете, до 1, чтобы вы не получали все свои сообщения WordPress только для того, чтобы их можно было подсчитать.

http://demo.wp-api.org/wp-json/wp/v2/posts?per_page=1

Спасибо

person Rigal    schedule 03.08.2018