Корисні дрібниці при створенні сайту. WordPress і лічильник переглядів

Вместо рекламы

Россиянин, ты захотел скачать файл ? Или почитать чего интересного ?
Останови свою войну в Украине !

—————————

Реклама від Google



Подивіться на верхню частину сторінки, там є лічильник переглядів статті з надписом “Views” і число, це і є кількість переглядів. Скромно і естетично.
Не сумнівайтесь, я такий самий дуб в створенні сайтів, як і ви.

Але ж ви читаєте мій сайт ! Значить, я його зробив, і ви зробите свій, якщо це вам справді потрібно, і якщо ви прикладете деякі зусилля для створення свого сайту.
Дизайн сайту, як ви бачите, поки що ніякий, тобто відсутній. Не те щоб “ще не зробив”, а просто сайт працює навіть в такому вигляді, і це добре, а з часом, мабуть, буде краще.
Обов’язкові вимоги до вашого сайту:
– всі статті, всі матеріали сайту повинні легко об’єднуватись в групи, підгрупи.
– на сайті обов’язковий пошук матеріалів.
– зручне додавання додаткових сторінок.
– каталогізація, сортування всіх доданих на сайт матеріалів.
– коментування матеріалів.
– форум. В наш час наповнити форум людьми нелегко, всі втікли в соціальні мережі.

Почитавши різні варіанти “двигунців” для створення сайту, вирішив зупинитись на двигунці “WordPress”. Чому ?
– він розрекламований до небес.
– він безкоштовний і відкритий для змін і модернізацій.
– він має імідж “навіть тупий розбереться”.

З останнім пунктом виявилось трохи не так.
Коли мій сайт, який працював з 2006 року на хостингу UCOZ, переїхав на інший хостинг і на двигунець “WordPress”, я виявив невеличкий провал в двигунці: зовсім відсутній нормальний, “вставив і забув”, лічильник переглядів того чи іншого матеріалу. WordPress справді напханий багатьма, зручними і не дуже зручними, плагінами, а з підрахунком переглядів трохи недодумали.
А навіщо знати кількість переглядів того чи іншого матеріалу ? Якщо ви ведете свій блог, регулярно додаєте до блога новий матеріал, то ваше право не цікавитись, що читачі передивляються, а що ігнорують.
Але в багатьох випадках такі лічильники потрібні. Поекспериментувавши з плагіном WP-PostViews і ще якимось плагіном, я виявив такі діряві характеристики цих плагінів:
– рахує добре, хоч щось приємне.
– куди втулити результат, невідомо.
– добре нагружає і без того нагружений сервер хостинга. WordPress – не самий оптимальний двигунець, він традиційно дає значну нагрузку на сервер, а це може означати дорожчий тариф або перехід на більш дорогий сервер.
– спроби розмістити біля статті число з кількістю переглядів трохи псують загальний вигляд статті. Подивіться самі.

 

І без того примітивний “дизайн” сайту укріплюється цифрами не там, де хочеться, а там, де вдалось. Крім того, виявилось, що плагін “відкушує” деяку частину ресурсів сервера, загрузка сервера моїм сайтом трохи зросла.
Ні, плагін хороший, але треба щось спрощувати.
– треба обійтись без плагіна.
– треба рахувати перегляди максимально просто, не заморочуючись, чи статтю переглядає гість, чи зареєстрований користувач, чи робот пошуковець, чи спам-бот.
Нам важлива не абсолютна і точна кількість ! Нам треба лише порівняти кількість переглядів тої чи іншої статті з кількістю переглядів інших статей.
Ось і рішення майже знайшли в Інтернеті !

// функція, яка збільшує кількість переглядів на 1
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);
}
}

// функція, яка показує кількість переглядів коротким текстовим рядком
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 “Views: 0”;
}
return ‘Views: ‘ .$count;
}

Обидві функції можна додати до шаблонів, додавати треба через меню адміністратора:
Вигляд – Редактор – справа багато шаблонів – шаблон “function.php” і після останньої функції в тексті додаємо до тексту обидві функції. Коментар додавати не треба, коментар – для людини, а не для функції.
Додали, але нічого на сайті не змінилось. Детально проаналізуємо, що саме ми додали.

function setPostViews($postID) { – це початок функції.
$count_key = ‘post_views_count’; – наш параметр в просторі мета-даних буде називатись post_views_count, автор функції сам вигадав цю назву.
Що це за мета-дані ? Розкажу, щоб було максимально просто, хоча з деякими неточностями. Ми додали якийсь матеріал на наш сайт, це стаття, чи один із записів блога, це не важливо, ми його додали на сайт. Двигунець сайту сам додав до цього матеріалу деякі мета-дані: це дата розміщення матеріалу, автор, кількість майбутніх коментарів, а нова функція додасть до мета-даних ще й кількість переглядів.
$count = get_post_meta($postID, $count_key, true); – пробуємо витягнути цей параметр з простору мета-даних.
if($count==”){ – параметра ще нема ?
$count = 0; – добре, присвоєюмо, що цей параметр = 0
delete_post_meta($postID, $count_key); – очищуємо поле для нашого параметра
add_post_meta($postID, $count_key, ‘0’); – додали параметр в простір мета-даних
}else{ – а якщо параметр там вже є ?
$count++; – збільшуємо його на 1
update_post_meta($postID, $count_key, $count); оновлюємо параметр в просторі мета-даних
}
} – все, функція закінчилась

Проаналізуємо також наступну додану нами функцію.

$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 “Views: 0”; віддаємо результат в вигляді текста Views: 0
} – а якщо параметр присутній ?
return ‘Views: ‘ .$count; – віддаємо параметр в вигляді текста Views: і кількість переглядів

Ну, ми вже розібрались з обома функціями, а результату ще нема. Функції для того існують, щоб ними користуватись.
Далі наш розгляд треба звузити до одної лише “теми“, я кажу про надпис “Тема” в адмін-панелі нашого сайту з двигунцем WordPress.
Я вибрав для свого сайту тему “Zerogravity”, міг би вибрати якусь іншу. Я хочу бачити кількість переглядів кожної статті ось тут:


Але ж я нічого не розумію в мовах PHP і HTML ! Як я знайду, що куди вставити ? Подивіться, серед шаблонів є непоганий шаблон з назвою Single Post, це значить “одне повідомлення якогось уявного блогу”. Це те, що треба. Саме в цей шаблон треба вставити збільшення кількості переглядів на 1.
Ось і шаблон:

get_header(); ?>
<div id=”primary” class=”site-content”>
<div id=”content” role=”main”>
<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part( ‘content’, get_post_format() ); ?>
<nav class=”nav-single”>
<h3 class=”assistive-text”><?php _e( ‘Post navigation’, ‘zerogravity’ ); ?></h3> … він там ще продовжується, далі нецікаво.

Аналізуємо.

<?php while ( have_posts() ) : the_post(); ?> – якщо є повідомлення, то взяти повідомлення
<?php get_template_part( ‘content’, get_post_format() ); ?> – показати на сторінці саме повідомлення
Після цього звертання вставимо звертання до функції, яка збільшить кількість переглядів на 1
<?php setPostViews(get_the_ID()); ?> – ось так ми звертаємось до доданої нами функції. Коментарі потрібні нам, але шкідлмві для двигунця сайту.
Отже, змінений кусочок тексту виглядає так:

<?php get_template_part( ‘content’, get_post_format() ); ?>
<?php setPostViews(get_the_ID()); ?>
<nav class=”nav-single”>

Зміну в тексті зберегли. Тепер ми добре знаємо, що при перегляді САМЕ ЦЬОГО повідомлення лічильник переглядів цього повідомлення буде збільшуватись на 1. Але лічильник треба ще й показувати, і робити це естетично, а не “як вийшло”.
Ще раз уважно дивимось на текст шаблона, звернемо увагу на надпис:

<?php while ( have_posts() ) : the_post(); ?> – якщо є повідомлення, то взяти.

Уважне копання в шаблонах have_posts і the_post привело нас до точки, яка нас цікавить, знаходиться вона в шаблоні content.php

<!– Author, date and comments –> – цей чудовий коментар зразу виводить нас на необхідну точку
<div class=’sub-title’>
<div class=”autor-fecha”>
<i class=”fa fa-user”></i> <span class=”vcard author”> <span class=”fn”><a href='</?php echo esc_url( get_author_posts_url( get_the_author_meta( ‘ID’ ) ) ); ?>’><?php the_author() ?></a></span></span>

Як бачите, тут вже вивели, хто автор, зараз почнуть виводити дату:

&nbsp;&nbsp;  – після імені автора вставили два пробіли, запам’ятаємо

<i class=”fa fa-calendar-o”></i>
<!– <?php echo get_the_date(); ?> –>
<span class=”date updated”>
<time datetime=”<?php the_time(‘o-m-d’) ?>” class=”post-date date updated” pubdate><?php the_time(apply_filters(‘themify_loop_date’, ‘j-M-Y’)) ?></time></span>

&nbsp;&nbsp; – Увага, знову два пробіли. Значить, дату вивели. Давайте сюди вставимо кількість переглядів.

<?php echo getPostViews(get_the_ID()); ?>
&nbsp;&nbsp; – і далі так само вставимо два пробіли. Далі, без сумніву, виводиться інформація про коментарі.

<i class=”fa fa-comment-o”></i> <?php comments_popup_link(); ?>
</div>
<!–<div class=”popup-comments”> </div>–>
</div><!– .sub-title –>

Отже, змінений кусочок тексту такий:

<time datetime=”<?php the_time(‘o-m-d’) ?>” class=”post-date date updated” pubdate><?php the_time(apply_filters(‘themify_loop_date’, ‘j-M-Y’)) ?></time></span> &nbsp;&nbsp;
<?php echo getPostViews(get_the_ID()); ?> &nbsp;&nbsp;
<i class=”fa fa-comment-o”></i> <?php comments_popup_link(); ?>

Результат бачите на моєму сайті. Кількість перегядів саме там, де це число при необхідності помітне, але не кидається в очі, псуючи і без того нещасний, убогий дизайн.
Ось так виправляємо недоробки WordPress. Дякую за увагу.

 

Залишити відповідь (Leave a Reply)