Счетчик просмотров статьи на WordPress без плагина

Решить задачу вывода количества просмотров статей можно решить двумя способами: с помощью плагина и вмешательством в код вашей темы. Сегодня предлагаю решить поставленную задачу с помощью вмешательства в код. Все манипуляции займут порядка минуты.

В результате на вашем сайте в выбранном месте отобразится цифра просмотренных раз данной статьи.

Открываем functions.php (лежит в шаблоне вашего сайта) и добавляем следующий код:

function getPostViews($postID){
    $count_key = 'post_views_count';
    $count = get_post_meta($postID, $count_key, true);
    if($count==''){
        delete_post_meta($postID, $count_key);
        add_post_meta($postID, $count_key, '0');
        return "0 просмотров";
    }
    return $count.' просмотров';
}
function setPostViews($postID) {
    $count_key = 'post_views_count';
    $count = get_post_meta($postID, $count_key, true);
    if($count==''){
        $count = 0;
        delete_post_meta($postID, $count_key);
        add_post_meta($postID, $count_key, '0');
    }else{
        $count++;
        update_post_meta($postID, $count_key, $count);
    }
}

Здесь представлены две функции: одна фиксирует просмотры, вторая выводит количество этих просмотров. Если сталкивались с кросс krone, то это тоже на подобие связующего звена, которое обеспечивает переход от одной функции к другой.

Теперь осталось эти функции прописать в нужном вам месте.

Фиксирующую функцию прописываем там, где будете считать просмотры: single.php, page.php, index.php и прочее:

<?php setPostViews(get_the_ID()); ?>

А теперь нужно вывести количество просмотров. Опять же ставим следующий код в том месте, где хотите видеть результат:

<?php echo getPostViews(get_the_ID()); ?>

Помимо этого вы можете смотреть количество просмотров прямо в админке вашего сайта. Для этого нужно в functions.php добавить следующее:

add_filter('manage_posts_columns', 'posts_column_views');
add_action('manage_posts_custom_column', 'posts_custom_column_views',5,2);
function posts_column_views($defaults){
    $defaults['post_views'] = __('просмотров');
    return $defaults;
}
function posts_custom_column_views($column_name, $id){
    if($column_name === 'post_views'){
        echo getPostViews(get_the_ID());
    }
}

В результате появится дополнительная колонка, с количеством просмотров вашего поста.
Все работает и проверено на этом блоге.

Источник

admin