Ваш промокод mojWPAds на плагин рекламы для WordPress >>

Счетчик просмотров статьи на 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());
    }
}

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

Привет. Меня зовут Виталик.

Я автор этого блога, а так же Магазина WordPress https://wp-r.ru/ и ридера блогов вебмастеров и SEO-специалистов WMSN.ru


Отблагодарить Z888279575784 R109400923968 или ЯД 41001651742138

Я в Twitter @mojWP. Смотри на Youtube. Читай RSS блога.

Опубликовано 68 комментариев
  1. Иван says:
    http://populyarno.com

    Спасибо! Все работает! Вмешательством в код, думаю, лучше чем с помощью плагина - функционально и ничего лишнего.

  2. Михаил says:
    http://www.crea.com.ua

    А можно поподробне рассказать о том как именно прописывать Фиксирующую функцию? и откуда она приобрел атакой хитрый цифробуквенный вид?

    • mojWP says:

      да, был какой-то глюк и плагин не отработал правильное отображение кода. Теперь исправлено.
      Просто прописываете где-нибудь в выбранном файле сверху, чтобы счетчик просмотров стал активным. Можно где-нибудь вначале файла.

      • Алексей says:
        http://ellehome.ru

        Спасибо большое. Подскажите пожалуйста, как сделать сортировку по просмотрам в записях? Мне очень нужен программист на сайт. Как с вами связаться?

        • Виталий says:
          http://mojWP.ru/

          Добрый день.
          К сожалению, со мной никак не свяжитесь: я нигде не оставляю свои контакты.

          • Максим says:

            "как сделать сортировку по просмотрам в записях?", меня тоже этот вопрос интересует. Как сделать сортировку по полю записи?

  3. Роман says:

    Спасибо за статью, полезный код, пригодился. все проверено,работает.

  4. Жорик says:

    mojWP, а у меня возникли неполадки - видимо счетчик не правильно считает - при каждом просмотре статьи добавляет + 2 просмотра.

    Гуглил, писал на форуме, нашел этот же метод на другом блоге - у автора спрашивал - тишина, пишут только якобы счетчики вызывается в двух местах... но я то знаю, что вставил его только в одном месте...

    Можешь помочь разобраться?! Заранее спасибо!

    • Виталий says:

      прошу прощения, но как я могу это сделать не видя процесса установки и работы???
      или мне телепатически будет передана информация? когда готовиться к приему?

    • Korban;D says:

      Приветствую! Такая же проблема, считает по два просмотра за один.((

    • Павел says:
      http://muzykantam.net/

      Тоже +2 просмотра сразу. Что делать?

  5. Жорик says:

    да, точно! Ход действий, согласно описному в статье выше, алгоритму. Не знаю, в комментариях у вас можно использовать html теги, посему даю ссылку на тему, на форуме: goo.gl/tMS8N, обсудим здесь в комментариях.

    Я постарался максимально подробно изложить суть проблемы. Хотя могу еще добавить: Дабы исключить вероятность ошибки использования решения, - отдельно поставил чистый WP 3.4.1 с шаблонов Твенти Элевен, который не редактировался, - в таких условиях ошибка тоже была...

    Так что очень рассчитываю на помощь! Заранее, Спасибо!

  6. Сергей says:
    http://webtous.ru

    Виталий, получается, что если счетчик поставить на блог, которому уже полгода, то все просмотры до установки естественно засчитаны не будут? А может где-то в базе хранятся данные о количестве просмотров их можно как-то достать?

    • Виталий says:

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

      • Сергей says:
        http://webtous.ru

        Эх, жалко... Начинать с нуля, когда старые публикации имеют каждая под 5 тыс. просмотров как-то жаба душит ))

  7. Денис says:

    Виталий! Поставил ваш код, но он почему-то учитывает только мои просмотры. Это может быть из-за включенного модуля кэширования Hyper Cache? если да - возможно ли это обойти

    • Виталий says:

      все правильно - из-за кеша не работает. решайте что важнее.
      динамика не может в статике отображаться.
      решение сейчас с ходу не подскажу.

  8. Anonymous says:

    Чтото я не вижу этого счетчика на этой страничке, казалось бы логичным чтобы у автора на блоге висел свой счетчик, не? Автор брезгует использовать свои программки?

    • Виталий says:

      Если следовать вашей логике, то будь у меня сайт по продаже женских колгот, я был бы обязан их носить, а так же демонстрировать всем желающим как они смотрятся на мне.

      • Роман llgr says:
        http://dogshow.me/

        Для таких случаев нужен рейтинг комментариев) Лайк)

  9. Влад says:
    http://vladmaxi.net

    Все проверено! Работает! Большое спасибо автору!
    P.S Не подскажите ещё как реализовать подобную как у Вас систему комментариев? Может плагин подскажите. Заранее благодарен!

    • Виталий says:

      реализовывать ничего не нужно. В стандартных настройках wordpress сделать древовидные комментарии

  10. Регина says:
    http://apelcinchik.ru

    Спасибо! Очень пригодился код.

  11. Наталья says:
    http://www.onlinevideouroki.ru/kak-snyat-gel-lak-v-domashnix-usloviyax/

    Здравствуйте. Действительно, у меня все получилось! Спасибо Вам за эту статью!
    Подскажите пожалуйста, как вывести еще колонку тайтл и дискрипшн в админке (у меня в теме в админке их нет). И как вывести в коде считалку знаков (ее тоже у меня нет, т.к. не пользуюсь плагином ол-сео-пак, так как все его функции прописаны в коде, кроме подсчета количества символов).

    Заранее благодарю Вас.

    • Виталий says:
      http://mojWP.ru/

      Добрый день.
      Не подскажу ответы на ваши вопросы, т.к. никогда не задавался подобными.

  12. Доброжелатель says:

    Здравствуйте! А как это решение реагирует на поисковых ботов? Учитывает ли оно их? Ответьте пожалуйста.

    • Виталий says:
      http://mojWP.ru/

      Добрый день.
      Не реагирует. Не учитывает.

      • Доброжелатель says:

        Спасибо! Ваше решение мне нравится больше, чем у Камы.

  13. Добро says:

    Здравствуйте! А, как сделать "Просмотры: [число]"?
    П.С. Коверкал functions.php - но не вышло...
    Благодарю за ответ!

    • Максим says:
      http://wordpress.test.hosting-test.org.ua

      Только что нашел ответ на твой вопрос:
      return "0 просмотров";
      здесь поменяй как нужно (это отображение при нуле просмотров)

      return $count.' просмотров';
      А здесь замени таким образом:
      return 'Просмотров: '.$count;

      И готово)

      • От души! says:

        Благодарю, Максим!
        А также Автора, всем успехов!

  14. Максим says:
    http://domokrim-prodazha.net

    Не по теме: Кстати, не знаете, почему у меня часто перестает отображаться какая-либо буква алфавита русская, зачастую буква Я и на всех компьютерах, а потом через время сама возвращается... Не знаете, от чего это может быть?

  15. Руслан says:
    http://zub.zz.mu

    Здравствуйте, Спасибо за код, подскажите как сделать еще страницу топ (к примеру) 50 просмотров?

    • Виталий says:
      http://mojWP.ru/

      Подскажу. Но в комментарий не поместится все. Поэтому попробуйте погуглить с таким запросом "Функция вывода записей по количеству просмотров" и все найдете))

  16. Иван says:
    http://blogochrist.ru

    Спасибо все работает.Но может еще подскажешь, как сделать что в админке показывались и просмотры из page, а не только single. Спасибо еще раз.

  17. Евгений says:
    http://www.fitnesstoday.com.ua/

    Спасибо! Все работает! Правда убрать счетчики обратно - не получается (

    с single-s-right.php - убрал, а вот со страртовой не могу(

  18. Костов Игорь says:
    http://kargologistik.ru

    Всё работает! Автору спасибо. Код добавить проще, чем ставить плагин. И нагрузка на сайт минимальна.

  19. Алексей says:

    Скажите пожалуйста как перенести счетчик на другую тему не потеряв количество просмотров?

    • Виталий says:
      http://mojWP.ru/

      Взять и перенести коды

  20. Вася says:

    число просмотров показывает не верно!
    по яндексу за сутки около 200 просмотров одной страницы, а в админке 20 )) на сайте я не вывожу
    сайт еще не проиндексирован, все переходы на страницу были по ссылке с ютуб.
    такие пироги

  21. Иван says:

    Здравствуйте! Спасибо за код! Подскажите пожалуйста, как сделать в админке колонку просмотров сортируемой, как к примеру у (заголовок, комментарии, дата)? Зараннее спасибо на ответ.

    • Иван says:

      Специалист молчит, значит не знает.

  22. Алексей says:
    http://fish-rusclub.ru

    Добрый день. Все установил, все работает, за исключением колонки боковой. Счетчик на странице записей (статей) считает, а колонки в административной панели нет? В чем причина? Заранее спасибо!

  23. Александр says:
    http://mastersovetov.com/

    Спасибо все работает!

  24. max says:

    подскажите как добавить к этому иконку глаза ?

    • Виталий says:
      http://mojWP.ru/

      Вставить соответствующую картинку рядом.
      Картинку ищите в сети, а вставлять

      <img src="http://путь_до_картинки.jpg" alt="" />

      Останется поправить стили отображения на сайте. Но тут уже индивидуально, в зависимости от места установки и вашего шаблона.

  25. max says:

    поставил код но у меня не считает просмотры и подскажите как поменять местами
    0 ПРОСМОТРОВ на ПРОСМОТРОВ 0 ?

    • владимир says:
      http://holodilshchiki.ru

      было уже выше

  26. max says:

    слова поменял а просмотры так и не считает ? в чем причина

    • Виталий says:
      http://mojWP.ru/

      Беда...
      Пойду запишусь на курсы экстрасенсов. Обождите несколько месяцев.

  27. Артем says:

    Как считать уникальные просмотры, т.е. не считать просмотры при обновлении страницы?
    (считать по ip или через куки)
    Необходимо, чтобы пользователи искусственно не накручивали просмотры- обновляя страницу.
    Не могу найти решение.

  28. Саша says:
    http://ob-men.com

    Хорошая статья, спасибо!

  29. Роман llgr says:
    http://dogshow.me/

    Добрый день.
    Всё получилось.
    Основной код (Ваш):

    /* ПРОСМОТРЫ СТАТЕЙ mojwp.ru/prosmotry-statei.html
    /* вывод кол-ва просмотров */
    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); }}
    /* вывод кол-ва просмотров в админку */
    add_filter('manage_pages_columns', 'posts_column_views');
    add_action('manage_pages_custom_column', 'posts_custom_column_views',10,2);
    add_filter('manage_posts_columns', 'posts_column_views');
    add_action('manage_posts_custom_column', 'posts_custom_column_views',10,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()); }}
    /*--------------------------------------*/

    Хочется добавить возможность сортировки по столбцу в админке.
    Попробовал так:

    /* добавляем возможность сортировать колонку */
    add_filter('manage_edit-post_sortable_columns', 'add_views_sortable_column');
    function add_views_sortable_column($sortable_columns){
    $sortable_columns['post_views'] = 'views_views';
    return $sortable_columns;}

    Появляется возможность сортировать по колонке, при нажатии строка имеет вид:
    /wp-admin/edit.php?orderby=views_views&order=desc
    Но по сути сортировка происходит не по полю "Просмотры", а по полю "Дата".

    В чем может быть проблема?
    Благодарю за ответ.

    • Роман llgr says:
      http://dogshow.me/

      Я правильно воспользовался конструкцией PRE? вроде делал как написано внизу

  30. tea-trance says:
    http://tea-trance.ru

    Замечательное решение! куда лучше чем с плагином)

  31. Natalya says:
    http://vgrafike.ru/

    Класс! Все работает! Только я не стала устанавливать счетчик просмотров записей для всех, а добавила лишь для себя - в админке. Очень удобно анализировать особенно для оценки просмотров новых записей. Можно оценить лояльность постоянной аудитории.

  32. Артур says:

    Доброго времени суток. Как сделать что бы просмотр считался по браузерам или лучше по ip, а не по переходам на страницу? зашел в статью, отредактировал, посмотрел, обновил и уже +3 просмотра.

  33. Татьяна says:

    доброго времени суток! скажите пожалуйста, это работает только в рамках одного конкретного шаблона? если шаблон меняется, то просмотры теряются? Ведь мы в тему заново прописываем эти функции..

  34. Анастасия says:
    http://kakpoiavilosi.ru

    Здравствуйте! Скажите пожалуйста, а как вставить код в начало статьи? Где найти начало записей?

    • Виталий says:
      http://mojWP.ru/

      Ищите по коду функции the_content и перед ней

  35. Наталья says:
    http://kaleydoscopeuslug.ru

    Моя благодарность за коды, работает

  36. Владимир says:
    http://web-mechanic.ru

    Спасибо, установил!

  37. Владислава says:
    http://magizmo.ru/

    Спасибо! Отличный пост!
    Присоединяюсь к вопросу по возможности сортировки постов по кол-ву просмотров.
    Есть решение?

    Спасибо.

  38. Ника says:

    Все работает, автору мерси!

  39. Павел says:
    http://muzykantam.net/

    Столкнулся с проблемой:
    Если человек не авторизован на моём сайте, то его просмотр не засчитывается. Кто еще сталкивался с такой же проблемой? Как быть?

  40. Виталий says:

    День добрый. А как вывести кол-во просмотров в анонсе статьи?

  41. Александр says:

    Доброго времени суток, Виталий.
    Я натягивал свою разметку на движок и над данным вопросом парился где-то часа 2-3 и ни один из предложенных вариантов в инете не помог. Только ваш код. Спасибо вам большое!!!

Не держи в себе. Выскажись.

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

© 2011-2017 | mojwp.ru | Копирование материала разрешено только с письменного согласия
WordPress: 12.68MB | MySQL:127 | 0,303sec
Лучшие плагины для сайта WordPress
Магазин WordPress WP-R.ru
Я понял, не показывай больше.
Смотри мои обучающие видео на YouTube
Сайт использует cookie
Друг, не уходи!