Длинные статьи и записи в WordPress могут негативно влиять на удобство чтения и скорость загрузки страницы. Разделение длинных постов на несколько страниц помогает улучшить пользовательский опыт и оптимизировать загрузку контента. В этой статье расскажем, как автоматически разбивать длинные посты на страницы, используя встроенные возможности WordPress и сторонние плагины, а также приведём примеры кастомного кода для решения этой задачи.
Почему стоит разбивать длинные посты на несколько страниц
Разделение длинных статей на страницы полезно по нескольким причинам:
- Улучшение читаемости: Пользователю проще воспринимать информацию, если она разбита на логические блоки.
- Снижение времени загрузки: Вместо загрузки одной большой страницы грузится несколько маленьких, что уменьшает нагрузку на сервер и ускоряет отображение страниц.
- Увеличение вовлечённости: Пагинация побуждает пользователей переходить по страницам и проводить больше времени на сайте.
Однако ручное добавление тегов <!--nextpage--> в каждом посте неудобно, особенно если контент постоянно обновляется. Поэтому автоматизация этого процесса с помощью кода или плагинов — оптимальный вариант.
Автоматическое разделение постов с помощью плагина WP Page Navi
Плагин WP Page Navi — классическое решение для улучшения навигации по страницам и пагинации в WordPress. Однако сам плагин не разбивает посты на страницы. Его можно использовать в паре с автоматическим разбиением контента, чтобы обеспечить удобную навигацию.
Для автоматического разбиения контента подойдёт плагин Auto Pagination, но он редко обновляется. Лучше использовать кастомные решения, о которых расскажем ниже.
Кастомное решение: автоматическое добавление пагинации в длинные посты
Вы можете написать функцию, которая будет автоматически вставлять тег <!--nextpage--> в содержание поста по количеству слов или символов. Например, разбивать пост каждые 1000 слов.
Пример функции для автоматического добавления пагинации
function wpzoom_auto_paginate_content($content) {
// Проверяем, что это одиночный пост и основной запрос
if (!is_singular('post') || !is_main_query()) {
return $content;
}
// Если уже есть пагинация, ничего не меняем
if (strpos($content, '<!--nextpage-->') !== false) {
return $content;
}
$words = preg_split('/(\s+)/u', $content, -1, PREG_SPLIT_DELIM_CAPTURE);
$word_count = 0;
$new_content = '';
$page_limit = 1000; // количество слов на страницу
foreach ($words as $word) {
$new_content .= $word;
if (preg_match('/\S/u', $word)) {
$word_count++;
}
if ($word_count >= $page_limit) {
$new_content .= '<!--nextpage-->';
$word_count = 0;
}
}
return $new_content;
}
add_filter('the_content', 'wpzoom_auto_paginate_content', 5);Эта функция разбивает контент поста на страницы примерно по 1000 слов, вставляя тег <!--nextpage--> в нужных местах. Фильтр the_content с низким приоритетом (5) обеспечивает корректную работу перед выводом.
Отображение пагинации в шаблоне темы
Чтобы навигация по страницам работала, нужно добавить функцию wp_link_pages() в файл шаблона, отвечающий за вывод поста (обычно это single.php или content-single.php).
<?php
wp_link_pages(array(
'before' => '<div class="page-links"><span>' . __('Страницы:', 'wpzoom') . '</span>',
'after' => '</div>',
'link_before' => '<span>',
'link_after' => '</span>',
'pagelink' => '%',
));
?>Эта функция выводит навигацию по страницам, которая появляется при использовании пагинации внутри поста. Можно стилизовать контейнер .page-links через CSS под дизайн сайта.
Использование плагина Clearfy Pro для управления пагинацией
Плагин Clearfy Pro предлагает множество инструментов оптимизации для WordPress, включая управление пагинацией и настройками вывода длинных записей. С его помощью можно упростить задачу пагинации и улучшить SEO.
Clearfy Pro позволяет автоматически разбивать длинные записи и оптимизировать навигацию между страницами, а также отключать пагинацию там, где она не нужна.
Рекомендации по оптимизации пагинации
При автоматическом разбиении постов на страницы важно учитывать:
- Удобство пользователя: Не стоит разбивать текст слишком мелко — 800-1200 слов на страницу оптимально.
- SEO: Пагинация делит ссылочный вес, поэтому используйте rel="next" и rel="prev" в заголовках страниц.
- Кэширование: Убедитесь, что ваш кеш-плагин корректно работает с пагинацией, чтобы не показывать одинаковый контент на всех страницах.
- Аналитика: Следите за поведением пользователей, чтобы понять, насколько пагинация улучшает вовлечённость.
Вывод
Автоматическое разделение длинных постов на страницы в WordPress — эффективный способ улучшить читаемость и производительность сайта. Используя кастомный код, вы можете гибко настроить количество слов на страницу и интегрировать пагинацию с шаблоном темы. Для расширенных возможностей подойдут плагины вроде Clearfy Pro, которые упрощают управление пагинацией и оптимизацией.
Не забудьте добавить навигацию по страницам с помощью wp_link_pages() в шаблоне, чтобы посетители могли легко переходить между частями статьи.