Просмотры записей wordpress без плагина.

целебная сила

Здравствуйте, дорогие читатели.

Давайте разберем как же внедрить счетчик просмотров записей в wordpress. Конечно есть популярный для этого плагин WP-PostViews, да в плагина большой функционал, много настроек и вроде бы для чего заморачиваться — копаться в файлах, вставлять какие-то коды, мучится? Достаточно установить плагин настроить и все, но тот кто занимается внутренней оптимизацией, поймёт меня что лучше использовать — код или плагин.

На плагине останавливаться не буду, так как не пользуюсь им, есть много информации на просторах Интернета по поводу установки и настройки.

Выводим в wordpress количество просмотров записи.

Постараюсь как можно подробней описать, на финише получится как у меня после каждого поста.

И так начнем

Находим в теме файл functions.php, можно через админку Внешний вид -> Редактор, в правой колонке будут все файлы, или с помощью FTP клиента — Total Commander и текстового редактора notepad++, как кому удобней.

Код будет состоять из двух частей — первая для отображения количества визитов в админке а вторая для подсчета. Открываем 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;
}             //  конец кода просмотров

незабываем сохранить, все больше functions.php нам не нужен. Важно чтобы коды были в такой последовательности.

Идем дальше.

Теперь чтобы счетчик просмотров записей wordpress заработал, находим файл который отвечает за вывод записей а именно — single.php. Куда именно вставить строчку советовать не могу — можно и в начале поста и в конце, это уже по вкусу. Покажу на своем примере.

В single.php после строчки:

<?php get_template_part( 'content', get_post_format() ); ?>

но смотрите это в моём случае, так как темы разные то данная строчка может отличатся. Одно скажу что отвечает она за вывод контента. После её пишем:

Просмотров:<?php echo get_post_meta ($post->ID,'views',true); ?>

не забываем сохранить.

Можно увидеть на моем блоге вместо слова «Просмотров» картинка, делается это просто с помощью css. Берем заключаем в тег:

<span class="procmotry"><?php echo get_post_meta ($post->ID,'views',true); ?>
<p class="prosmotry"></p></span>

задаем стили в css:

.procmotry {
float: right;
text-align: right;
padding: 0.41429rem 0.11429rem 0.11429rem 0.11429rem;
width: 30%;
}

.prosmotry {
background: url("//Ваш сайт/liv-eye.png") no-repeat scroll;
float: right;
margin-left: 0.31429rem;
margin-right: 0.31429rem;
padding-bottom: 1.01429rem;
width: 10%;
}

в зависимости разности тем, может придется что-то подправить. Картинку можно скачать здесь. В строчке:

background: url("//Ваш сайт/liv-eye.png") no-repeat scroll;

не забудьте указать путь где хранится картинка.

Как видите нечего сложного, так за несколько минут мы добавили просмотры записей wordpress без плагина.

Надеюсь был полезен, пока-пока.

средство от простатита

Просмотров:

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