Показать популярный пост через плагин JSON API

Я использую плагин JSON API для извлечения данных поста в формате json, он работает нормально.

Теперь я хочу получить популярные (наиболее просматриваемые) сообщения, используя тот же плагин. Как я могу достичь этого.

1 ответ

WordPress не хранит количество просмотров для каждого сообщения, поэтому это невозможно сделать только с помощью JSON API. Вам нужно будет запустить счетчик, сохраненный в post_meta при каждой загрузке страницы, что-то вроде:

function post_view_count() {
    if ( is_single() ) {
        $count = get_post_meta( get_the_ID(), 'post_view_count', true ) ?: 0;
        update_post_meta( get_the_ID(), 'post_view_count', $count++ );
    }
}
add_action( 'wp_head', 'post_view_count' );

Затем вы можете запросить API для одного поста, отсортированного по ключу 'post_view_count' в порядке убывания. Возможно, вам придется добавить что-то вроде этого, чтобы разрешить запрос post_meta с API:

function json_allow_meta_query( $valid_vars ) {
    $valid_vars = array_merge( $valid_vars, array( 'meta_key', 'meta_value', 'meta_compare' ) );
    return $valid_vars;
}
add_filter( 'rest_query_vars', 'json_allow_meta_query' );

Однако имейте в виду, что вы добавляете два обращения к базе данных для КАЖДОЙ пост-загрузки, что влияет на производительность.

Другие вопросы по тегам