campusboy87
11/19/2018 - 6:51 PM

Adds a counter to the rest request post. The functionality of the plugin "Post Views Counter" is used.

Adds a counter to the rest request post. The functionality of the plugin "Post Views Counter" is used.

<?php

add_filter( 'rest_prepare_post', 'add_rest_post_view_counter', 10, 3 );

/**
 * @param WP_REST_Response $response The response object.
 * @param WP_Post          $post     Post object.
 * @param WP_REST_Request  $request  Request object.
 *
 * @return mixed
 */
function add_rest_post_view_counter( $response, $post, $request ) {
    $callback = $request->get_attributes();
    $callback = isset( $callback['callback'][1] ) ? $callback['callback'][1] : '';

    if ( $callback && is_string( $callback ) && 'get_item' === $callback ) {
        if ( method_exists( 'Post_Views_Counter_Counter', 'check_post_rest_api' ) ) {
            $request_views = new Post_Views_Counter_Counter();;
            $request_views->check_post_rest_api( [ 'id' => $post->ID ] );
        }
    }

    return $response;
}