Создание плагина для WordPress: My Reading Time

от автора

в
Время чтения: 2 мин.

В этой статье я расскажу, как создать простой, но полезный плагин для WordPress под названием My Reading Time. Этот плагин будет отображать предполагаемое время чтения статьи, что поможет пользователям лучше планировать своё время на сайте.


Зачем нужен такой плагин?

Время чтения — это удобный индикатор, который помогает пользователям понять, сколько времени им потребуется, чтобы прочитать статью. Это особенно полезно для длинных материалов, где важно заранее знать, сколько времени займёт чтение.


Что будет делать плагин?

  1. Рассчитывать время чтения на основе количества слов в статье.
  2. Отображать время в начале или в конце контента.
  3. Настраивать среднюю скорость чтения (по умолчанию — 200 слов в минуту).

Создание плагина

Шаг 1: Подготовка структуры плагина

  1. Перейдите в папку wp-content/plugins/ вашего WordPress-сайта.
  2. Создайте новую папку с именем my-reading-time.
  3. Внутри этой папки создайте файл my-reading-time.php.

Шаг 2: Добавление основного кода плагина

Откройте файл my-reading-time.php и вставьте следующий код:

<?php
/*
Plugin Name: My Reading Time
Description: Плагин для отображения времени чтения статьи.
Version: 1.0
Author: Ваше Имя
*/

// Функция для расчёта времени чтения
function mrt_calculate_reading_time($post_id) {
    // Получаем содержимое поста
    $content = get_post_field('post_content', $post_id);
    
    // Удаляем HTML-теги и считаем количество слов
    $word_count = str_word_count(strip_tags($content));
    
    // Средняя скорость чтения (слов в минуту)
    $words_per_minute = 200;
    
    // Рассчитываем время чтения
    $reading_time = ceil($word_count / $words_per_minute);
    
    return $reading_time;
}

// Функция для отображения времени чтения
function mrt_display_reading_time($content) {
    // Проверяем, что мы на странице поста
    if (is_single()) {
        $post_id = get_the_ID();
        $reading_time = mrt_calculate_reading_time($post_id);
        
        // Формируем текст с временем чтения
        $reading_time_text = sprintf('<div class="reading-time">Время чтения: %d мин.</div>', $reading_time);
        
        // Добавляем текст перед содержимым поста
        $content = $reading_time_text . $content;
    }
    
    return $content;
}

// Добавляем фильтр к контенту
add_filter('the_content', 'mrt_display_reading_time');

Шаг 3: Активация плагина

  1. Зайдите в админку WordPress.
  2. Перейдите в раздел Плагины.
  3. Найдите плагин My Reading Time и активируйте его.

Шаг 4: Настройка стилей (опционально)

Чтобы время чтения выглядело более привлекательно, можно добавить стили. Для этого:

  1. Создайте файл style.css в папке плагина my-reading-time.
  2. Добавьте в него следующий код:
.reading-time {
    font-weight: bold;
    color: #333;
    margin-bottom: 20px;
    padding: 10px;
    background-color: #f9f9f9;
    border-left: 4px solid #0073aa;
}
  1. Подключите стили в плагине, добавив следующий код в my-reading-time.php:
// Функция для подключения стилей
function mrt_enqueue_styles() {
    wp_enqueue_style('mrt-reading-time-styles', plugins_url('style.css', __FILE__));
}

// Подключаем стили
add_action('wp_enqueue_scripts', 'mrt_enqueue_styles');

Шаг 5: Тестирование

  1. Создайте или откройте любой пост на вашем сайте.
  2. В начале содержимого поста должно появиться сообщение о времени чтения, например: «Время чтения: 5 мин.»

Дополнительные улучшения

Плагин уже работает, но его можно улучшить:

  1. Настройки в админке: Добавьте возможность изменять среднюю скорость чтения (слов в минуту) через настройки плагина.
  2. Отображение в минутах и секундах: Если время чтения меньше минуты, можно отображать его в секундах.
  3. Интеграция с мета-полями: Сохраняйте время чтения в мета-поле поста, чтобы использовать его в других местах сайта.

Заключение

Теперь у вас есть собственный плагин My Reading Time, который помогает пользователям оценить время, необходимое для чтения статьи. Это простой, но эффективный способ улучшить пользовательский опыт на вашем сайте.

Если вы хотите развивать плагин дальше, попробуйте добавить новые функции или опубликовать его в репозитории WordPress. Удачи в разработке! 🚀


Комментарии

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Сколько будет 1 + 2?