Ваш путь: Главная » WordPress без плагинов » текущая страница

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


обновлено: 2024-02-13 в теме: WordPress без плагинов
Запросто с WordPress создание и продвижение сайтов ATs media

Как установить счётчик количества просмотров поста – в админке и на страничках – без плагина: тема – 1

Как узнать число читателей, или как настроить счётчик просмотров той или иной статьи гостями – этот вопрос сегодня и решим. А вообще-то – эта статья мною пишется для того, чтобы ответить на вопрос одного из моих читателей: он спрашивал – как лучше вывести в информационной части (обычно это в начале поста) счётчик читателей конкретной статьи? (см. миниатюру).

Товарищ спрашивал) каким плагином возможно решить задачу? Я ему посоветовал всё это дело организовать без плагинов… Это не сложно – пара редакций ф. функций!

И вообще, для того, чтобы вывести счётчик просмотров в статье, – его для начала нужно вывести в админке… т.е привязать саму функцию счётчика к сайту.

В этой статье и разберёмся как всё это дело организовать. Занавес открывается…


счётчик количества просмотров поста – в админке

 

 

Однако по порядку!

Код, показанный мною ниже, целиком и полностью автора wp_kama (Тимура – ссылка у меня в логолисте) – код замечательно работает – “велосипед изобретать незачем”! Лёгкий (не грузит блог).

Функция подсчёта числа прочтений заработает сразу же как только пропишете показанные скрипты ниже: в версиях от 4… до WP 6.4 – проверено!!

Число читателей статьи (или счётчик количества просмотров) выводится в админпанели, раздел “Все записи”.

 

Если вы планируете в перспективе менять тему оформления своего сайта, возможно, вам будет правильнее организовать функцию подсчёта читателей статьи в отдельный плагин. Как это делается (смотрите на примере создания /оч. полезного/ добавочного файла функций – плагина) в этой статье.

 

 

Итак…

 

В итоге нынешней работы получится так, как на фотке ниже. (А чтобы вывести результаты количества просмотров статей в информационном блоке поста, – для всех посетителей сайта, или только для админа /зарегистрированных пользователей/, об этом следующая статья – а всё это чудо, визуально будет выглядеть как на миниатюре этого моего повествования)

 

 

Ради справки:

чем раньше счётчик будет установлен на вашем блоге/сайте, тем большее число будет красоваться на счётчике – так вот.

 

 

счетчик количества просмтров постов

 

 

Что ж – поехали кататься:

 

 

Для великого начала помещаем в файл (или созданный плагин) функций такой код:

 

Помните, да? код в файле функций functions.php нужно вписывать перед закрывающим тегом ?>… ну, или в отведённом блоке для похожих по функционалу кодов.

 

 

/** Дополнительные сортируемые колонки для постов в админке на страничке записи ДЛЯ КОЛЛИЧЕСТВА ПРОСМОТРОВ ПОСТА **/
// создаем новую колонку
add_filter('manage_edit-post_columns', 'add_views_column', 4);
function add_views_column( $columns ){
// удаляем колонку Автор
//unset($columns['author']);
// вставляем в нужное место - 3 - 3-я колонка
$out = array();
foreach($columns as $col=>$name){
if(++$i==3)
$out['views'] = 'Визиты';
$out[$col] = $name;
}
return $out;
}
// заполняем колонку данными
add_filter('manage_post_posts_custom_column', 'fill_views_column', 5, 2); // wp-admin/includes/class-wp-posts-list-table.php
function fill_views_column( $colname, $post_id ){
if( $colname === 'views' ){
echo get_post_meta($post_id, 'views', 1);
}
}
// подправим ширину колонки через css
add_action('admin_head', 'add_views_column_css');
function add_views_column_css(){
echo '<style type="text/css">.column-views{width:10%;}</style>';
}
// добавляем возможность сортировать колонку
add_filter('manage_edit-post_sortable_columns', 'add_views_sortable_column');
function add_views_sortable_column($sortable_columns){
$sortable_columns['views'] = 'views_views';

return $sortable_columns;
}
// изменяем запрос при сортировке колонки
add_filter('pre_get_posts', 'add_column_views_request');
function add_column_views_request( $object ){
if( $object->get('orderby') != 'views_views' )
return;

$object->set('meta_key', 'views');
$object->set('orderby', 'meta_value_num');
}
/** Дополнительные сортируемые колонки для постов в админке на страничке записи ДЛЯ КОЛЛИЧЕСТВА ПРОСМОТРОВ ПОСТА **/

 

 

Переходим к этапу завершения…

 

Теперь нужно поместить этот: (важно: располагать именно под кодом, который дан выше)

 

 

 

/** Подсчет количества посещений страниц **/
add_action('wp_head', 'kama_postviews');
function kama_postviews() {

/* ------------ Настройки -------------- */
$meta_key = 'views'; // Ключ мета поля, куда будет записываться количество просмотров.
$who_count = 1; // Чьи посещения считать? 0 - Всех. 1 - Только гостей. 2 - Только зарегистрированных пользователей.
$exclude_bots = 1; // Исключить ботов, роботов, пауков и прочую нечесть :)? 0 - нет, пусть тоже считаются. 1 - да, исключить из подсчета.

global $user_ID, $post;
if(is_singular()) {
$id = (int)$post->ID;
static $post_views = false;
if($post_views) return true; // чтобы 1 раз за поток
$post_views = (int)get_post_meta($id,$meta_key, true);
$should_count = false;
switch( (int)$who_count ) {
case 0: $should_count = true;
break;
case 1:
if( (int)$user_ID == 0 )
$should_count = true;
break;
case 2:
if( (int)$user_ID > 0 )
$should_count = true;
break;
}
if( (int)$exclude_bots==1 && $should_count ){
$useragent = $_SERVER['HTTP_USER_AGENT'];
$notbot = "Mozilla|Opera"; //Chrome|Safari|Firefox|Netscape - все равны Mozilla
$bot = "Bot/|robot|Slurp/|yahoo"; //Яндекс иногда как Mozilla представляется
if ( !preg_match("/$notbot/i", $useragent) || preg_match("!$bot!i", $useragent) )
$should_count = false;
}

if($should_count)
if( !update_post_meta($id, $meta_key, ($post_views+1)) ) add_post_meta($id, $meta_key, 1, true);
}
return true;
}
/** Фин Подсчет количества посещений страниц **/

 

 

 

Вот как бы и всё! Неожиданно, да?

 

Кое-какие настроечки кода, располагаются в комментариях (вверху самого кода). Прочтите… может что-то потребуется изменить.

 

 

 

выводим счётчик читателей – в статье

 

 

 

Выводить (вызывать функцию) счётчика так:

 

&nbsp; Пост видели: <?php echo get_post_meta ($post->ID,'views',true); ?>

 

Помещать функцию вывода счётчика читателей статьи где-нить рядом с функциями вывода автора и даты поста:

 

 

У некоторых в файле single.php функции даты и автора выглядят приблизительно так:

 

 

<?php the_modified_time('Y-m-d')?>

<?php the_author() ?>

 

 

Вот где-то рядышком с ними… и помещайте нашу функцию… Вывод числа читателей (т.е расположение цифр) определяется в соответствии с вашими желаниями.

 

 

 

Ну а для тех читателей, которым не терпится вывести счётчик просмотров в информации к статье – а заодно (кому нужно) и идентификатор поста – id статьи – видимый только для админа: поработаем с условиями… переходим к следующей моей публикации…

 

 

 

Если что-то не ясно, спрашивайте в комментариях…

 


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


На этом занавес представления опускается…
…на рампы пыль печальная ложится…

 


подписка feedburner Online консультация по настройкам и созданию сайтов на WordPress

 

 

 


...вопросы в комментариях - помогу, в чём дюжу...
mihalica.ru !


Михаил ATs - владелец блога запросто с Вордпресс - в сети нтернет давным-давно...

...веб разработчик студии ATs media: помогу в создании, раскрутке, развитии и целенаправленном сопровождении твоего ресурса в сети... - заказы, вопросы... разработка...





Нажатия на кнопочки определяют Ваше высокое гражданское сознание

Поделитесь соображениями: Ваши мысли очень важны!

Внимание! Обязательные поля помечены *

  отныне доступен плагин: ats privacy policy ©


  1. Привет! Хорошее представление, но как то боязно. Да и думаю, оно мне надо? Вдруг потом окажется что никто не читает, этож будет пипец и полный занавес. Пока вроде как надеешься, а как узнаешь, то труба.
    Но за науку, спасибо.)))

    Ответить - Андрей

    • Привет-привет, Андрей!!

      Да и думаю, оно мне надо?

      Да ну, брось ты… это ж удобство!! Да и к счётчику многое можно (и нужно) привязывать…
      Да и на всеобщий обзор можно не выводить счётчик-то)) а в админке полезно!
      К примеру, захочешь самое читаемое вывести на блоге (ну, по какому-то рейтингу и пр.) а у тебя – бац!! усё готово!
      Чем раньше поставишь – тем раньше и БОЛЬШЕ число читателей наберётся))
      Так что не бойся делать блог ширше параметрами)) – испортить ничего невозможно!! только улучшить!
      Кстати, не пробовал Фаерфокс новый – 52. как он себя ведёт с rds баром? Чо-то времени нет потестить… 51. помню ерундил…

      Ответить - Михаил

      • Так я работаю в Хроме. А этот RDS, терпеть не могу.)))

        Ответить - Андрей

        • А-а… я думал ты по разным бразам прикалываешься…

          Ответить - Михаил

          • Нет, Мозила есть, но бываю я там редко, поэтому и обновлять не спешу. А прикалываюсь я сейчас в игрушку “Heroes at War” )))

            Ответить - Андрей

            • Ну ?? и как, королевский трон заполучил…
              А шо ?? на ней (игрушке, в смысле) можно подзаработать??
              Научи-кась!

              Ответить - Михаил

              • Научить можно, а подзаработать наверно в ней нельзя. Это так понты, делать нечего, вот и прикалываюсь по вечерам )))


              • Жаль, что нельзя подработать…
                Я бы поиграл!
                А где можно поз..?


  2. “А где можно…” На покер старс. Правда нужно быть аккуратным, а то можно и проиграть все бабло )))

    Ответить - Андрей

    • Спасибо, – я аккуратным быть не могу…
      Точно всё проиграю…
      Я уж лучше посмотрю, как другие зарабатывают))

      Ответить - Михаил

  3. Андрей Косолапов, лучше поставить счетчик, написать хорошую статью по жирному запросу, типа “что такое сервер” и вывести в ТОП, как мой на втором месте по этому запросу. И будет нам всем счастье! Я вот вывел, уже за 5 месяцев порядка 8000 просмотров, а счетчик только сегодня поставил.
    Пока скрытый от глаз гостей из поиска.

    Ответить - tstas

  4. И вопрос в догонку к Михаилу, как бы попроще сделать, чтобы страницы тоже считал хотя бы в админке, а то только записи считает.
    Заранее спасибо.

    Ответить - tstas

    • …я подобным вопросом не задавался (у меня мало страниц, да и те сопутствующие – в принципе, просмотры не важны) …и заказчики мне пока что не заказывали подобную фичу.
      Так что…
      …так что придумаем на днях что-нить.

      Ответить - Михаил

      • Да у меня тож мало, но некоторые хотелось бы отслеживать.
        Буду ждать, спасибо.

        Ответить - tstas

  5. Приветствую Михаил!
    Такое вот наблюдение за счетчиком и вопрос по нему.
    Даже при обновлении страницы, находясь на записи, счетчик срабатывает и цыфирь меняется, как на записи, так и в панели WP.
    При просмотре статистики в Яд.Метрике сейчас вечером, отмечено, что данную запись (условно говоря) посетили за сутки 50 раз, а в панели wp стоит общая цифра 30, причем за несколько дней, так как счетчик установлен вроде уже третий день.
    Жаль нельзя приложить скрины, было бы наглядней.
    Почему такое происходит с подсчетом посещений?
    Заранее спасибо.

    Ответить - tstas

    • Привет-привет!..

      Даже при обновлении страницы, находясь на записи, счетчик срабатывает и цыфирь меняется, как на записи, так и в панели WP

      – такого быть не должно!..
      Настройки установили??

      $meta_key = 'views';
      $who_count = 1;
      $exclude_bots = 1;

      Какие-то незначительные погрешности в любом случае будут… но чтоб 50 против 30 это перебор…

      Скрины здесь можно бросать: //prnt.sc/

      Ответить - Михаил

      • $meta_key = 'views';
        $who_count = 0;
        $exclude_bots = 0;

        То есть для всех, включая боты.

        Чо то не догнал на счет скринов :(

        Ответить - tstas

        • Насчёт настроек кода – смотрите в комментариях к коду: лучше исключить ботов и пр. то есть поставьте 1.
          2 – Адрес ресурса, на котором можно делиться скриншотами.

          Ответить - Михаил

  6. Поставил 1 везде, завтра к вечеру отпишусь.

    Ответить - tstas

  7. Может, у вас есть код, чтобы я видела в админке или как -нибудь количество, но проблема, что у нас старая тема и нельзя поставить туда wp-head, поэтому нужен старый код без вп хеда чтоб. Тему я не могу поменять, это не мой сайт. а ложится при подклчючении вп хед, слайдер и некоторые страницы(стили).

    Ответить - Ольга

    • Этот код только для ВП.
      На других движках (или самописных) сайтах нужно решать задачу конкретно в коде… По обстоятельствам, так сказать…

      Ответить - Михаил

      • Я знаю, что это за код. Я говорю, мне нужно для старой темы вп, где нет вп хеда еще. Чтоб он не обращался вообще к нему.

        Ответить - Ольга