Главная > Веб мастерская > 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);
    }
}

Здесь представлены две функции: одна фиксирует просмотры, вторая выводит количество этих просмотров.
Теперь осталось эти функции прописать в нужном вам месте.
Фиксирующую функцию прописываем там, где будете считать просмотры: 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());
    }
}

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

Возможно использовать все по отдельности, например не выводя в постах количество просмотров, а отображать лишь в админке. Ну или наоборот)) Удачи вам!

NEW!!! Полезное, нужное, важное:

Где заработать в интернете деньги? Надёжно, честно, без обмана!
Платежные системы, кошельки и обменники для работы

Лучшие хостинги, сервера и прочее для сайтов

Смотрите также

Продвижение молодого сайта

Основная трудность — это недостаток времени существования сайта — и не фига не сделаешь с этим фактом. И именно по этому продвижение молодого сайта отличается от периодической раскрутки старого, трастового ресурса.

2 комментария

  1. Спасибо за супер-полезный пост про счетчик!
    Я, девушка, смогла его установить )) приятно, что рассказали доходчиво.

    Подскажите, а можно как-то сделать функцию сортировки постов в админке по кол-ву просмотров?
    Скажем, большего к меньшему и обратно?

    Спасибо.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *