! Михалика - запросто с WordPress:
доступная ручная работа по правилам оптимального интернет(а)
Здравствуйте !
— отредактировано:  2017-05-02
издатель:   в теме: В теме: Без плагинов  реплики: 10 комментариев
 
Запросто с WordPress - студия занимательная МИХАЛИКА

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

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

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

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

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


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

 

 

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

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

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

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

 

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

 

 

Итак…

 

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

 

 

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

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

 

 

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

 

 

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

 

 

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

 

Помните, да? код в файле функций 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 МИГ подписки - ВРЕМЯ знаний!!

 

 

 


Благодарности)) и вопросы в комментариях - помогу… в чём дюжу
А также Вы можете просто:
Нажатия на кнопочки определяют Ваше высокое гражданское сознание
ещё статьи по теме:

меточная навигация:


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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


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

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

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

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

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

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

 для диалога необходимо принять правила кофиденциальности *
Яндекс.Метрика