WordPress. Количество просмотров записи
29.05.2019
Теги: CMS • Web-разработка • WordPress • БазаДанных • Плагин • Удалить
Давайте создадим плагин, который будет показывать на странице записи блога количество просмотров этой записи. Для этого добавим в таблицу базы данных wp_posts
дополнительное поле view_count
, которое будет хранить количество просмотров записи. При каждом просмотре записи, будем увеличивать наш счетчик.
Итак, создаем директорию tokmakov-view-count
, а внутри нее — файл tokmakov-view-count.php
:
<?php /* Plugin Name: Количество просмотров Plugin URI: https://tokmakov.msk.ru Description: Выводит количество просмотров записей блога Version: 1.0 Author: Евгений Токмаков Author URI: https://tokmakov.msk.ru */
При активации плагина добавляем в таблицу БД wp_posts
поле, которое будет хранить кол-во просмотров записи:
<?php /* Plugin Name: Количество просмотров Plugin URI: https://tokmakov.msk.ru Description: Выводит количество просмотров записей блога Version: 1.0 Author: Евгений Токмаков Author URI: https://tokmakov.msk.ru */ /* * При активации плагина добавляем в таблицу БД wp_posts * поле, которое будет хранить кол-во просмотров записи */ register_activation_hook(__FILE__, function() { global $wpdb; // проверяем, что колонка не существует $query = "SELECT 1 FROM `information_schema`.`columns` WHERE `column_name`='view_count' AND `table_name`='".$wpdb->posts."'"; $result = $wpdb->get_row($query); if (!is_null($result)) { return; } // добавляем новую колонку $query = "ALTER TABLE ".$wpdb->posts." ADD `view_count` BIGINT UNSIGNED NOT NULL DEFAULT 0 AFTER `comment_count`"; $wpdb->query($query); });
При просмотре записи блога показываем кол-во просмотров:
<?php /* Plugin Name: Количество просмотров Plugin URI: https://tokmakov.msk.ru Description: Выводит количество просмотров записей блога Version: 1.0 Author: Евгений Токмаков Author URI: https://tokmakov.msk.ru */ /* * При активации плагина добавляем в таблицу БД wp_posts * поле, которое будет хранить кол-во просмотров записи */ register_activation_hook(__FILE__, function() { /*...*/ }); /* * При просмотре записи блога показываем кол-во просмотров */ add_filter('the_content', function($content) { // показываем только на странице поста if (!is_single()) { return $content; } global $post; $views = $post->view_count; $text = '<p>Кол-во просмотров: ' . $views . '</p>'; return $content . $text; });
При каждом просмотре записи блога обновляем счетчик:
<?php /* Plugin Name: Количество просмотров Plugin URI: https://tokmakov.msk.ru Description: Выводит количество просмотров записей блога Version: 1.0 Author: Евгений Токмаков Author URI: https://tokmakov.msk.ru */ /* * При активации плагина добавляем в таблицу БД wp_posts * поле, которое будет хранить кол-во просмотров записи */ register_activation_hook(__FILE__, function() { /*...*/ }); /* * При просмотре записи блога показываем кол-во просмотров */ add_filter('the_content', function($content) { /*...*/ }); /* * При каждом просмотре записи блога обновляем счетчик */ add_action('wp_head', function() { if (!is_single()) { return; } global $post, $wpdb; $views = $post->view_count + 1; // выполяем UPDATE-запрос к базе данных $wpdb->update( $wpdb->posts, // имя таблицы базы данных ['view_count' => $views], // какое поле таблицы обновляем ['ID' => $post->ID] // условие where для запроса ); });
Файл uninstall.php
, который будет выполнен при удалении плагина:
<?php if (!defined('WP_UNINSTALL_PLUGIN')) { exit; } global $wpdb; // перед удалением проверяем, что колонка существует $query = "SELECT 1 FROM `information_schema`.`columns` WHERE `column_name`='view_count' AND `table_name`='".$wpdb->posts."'"; $result = $wpdb->get_row($query); if (is_null($result)) { return; } // удаляем колонку для хранения количества просмотров $query = "ALTER TABLE ".$wpdb->posts." DROP `view_count`"; $wpdb->query($query);
- WordPress. Создание плагина. Часть 1 из 2
- WordPress. Фильтр записей по произвольным полям. Часть 3 из 3
- WordPress. Фильтр записей по произвольным полям. Часть 2 из 3
- WordPress. Фильтр записей по произвольным полям. Часть 1 из 3
- WordPress. Добавляем мета-теги. Часть 3 из 3
- WordPress. Метабоксы. Часть 2 из 2
- WordPress. Произвольные типы записей
Поиск: CMS • Web-разработка • WordPress • База данных • Плагин • Удалить • Количество просмотров