Примитивный счётчик просмотров для постов и категорий

Подойдёт как заготовка или для приблизительной оценки популярности страниц. Не фильтрует ботов, админа и т.д.

function steben_views_counter() {
    if ( is_category() || is_tag() ) {
        $views = intval( get_term_meta( get_queried_object_id(), 'views_counter', true ));
        update_term_meta( get_queried_object_id(), 'views_counter', $views + 1 );
    }
    if ( is_singular() ) {
        $views = intval( get_post_meta( get_queried_object_id(), 'views_counter', true ));
        update_post_meta( get_queried_object_id(), 'views_counter', $views + 1 );        
    }
}
add_action( 'template_redirect', 'steben_views_counter' );

Пример сортировки постов по просмотрам:

    $posts = get_posts([
        'numberposts' => 10,
        'orderby'     => 'meta_value_num',
        'order'       => 'DESC',
        'meta_key'    => 'views_counter',
        'post_type'   => 'post',
    ]);

Оставьте комментарий