Разделение записи блога на части с помощью more, noteaser и nextpage

Что это за разделение записи?

  • Текст в начале записи можно отделить специальным тегом, чтобы использовать его как анонс этой записи (теги <!-–more–->, <!--noteaser–->)
  • А текст очень длинной записи можно разделить на страницы (тег <!--nextpage-->)

Анонс записи блога

Для того чтобы на странице записей  запись была представлена не полностью, а как анонс, можно

  1. вставить тег <!-–more–->
  2. добавить текст анонса в поле "Цитата"

<!-–more–->

Если в текст записи вставить тег <!-–more–-> (вручную или с помощью кнопки редактора), все, что находится до этого тега, станет анонсом, т.е. будет появляться на странице записей после заголовка записи и перед ссылкой на страницу блога с полным текстом записи (например, "Читать далее").

*** Обычно в файле темы style.css задется стиль этой ссылки .more-link

Анонс, добавленный этим способом, дублируется в блоге, т.к. появляется как на странице записей, так и на странице с полным текстом записи.

<!--noteaser–->

Тег <!--noteaser–-> позволяет избежать дублирования.  Текст записи, расположенный до <!-–more–->, не будет появляться на странице с полным текстом записи, если сразу после <!--more–->  добавить тег <!--noteaser–->.  Это нужно сделать вручную в HTML-редакторе, т.к. в редакторе WordPress нет  кнопки, которая добавляла бы тег <!--noteaser–->.

*** Добавив в запись <!--more–-><!--noteaser–->, получаем практически "Цитату".

Текст ссылки <!-–more–->

Интересно, что текст ссылки <!-–more–->, который задан в  шаблоне темы для записи ("Читать далее" или "Подробнее"),  можно изменить для данной записи, добавив новый текст ссылки внутрь тега:

<!--more Читать продолжение истории-->

Конечно, для этого нужно переключиться в HTML-редактор.

Текст для <!-–more–-> как значение произвольного поля

Небольшое изменение кода шаблона одиночной записи single.php, и вы сможете изменять текст ссылки <!-–more–->, не выходя из визуального редактора,  а добавив его как значение произвольного поля custom_more.

Итак вместо строки кода <?php the_content("Читать далее »"); ?> нужно добавить:

<?php $custommore = get_post_meta($post->ID, 'custom_more', true); ?>
<?php if (!$custommore) { $custommore = 'Читать далее »'; } ?>
<?php the_content($custommore); ?>

Затем остается только добавить произвольное поле custom_more и его значение - новый текст ссылки для записи.

Дополнительно о <!-–more–->: Customizing the Read More

Разделение статьи на страницы

Тег <!--nextpage--> позволяет вручную разделять запись на страницы. Для того чтобы появлялись ссылки на страницы записи, в файле одиночной записи single.php после the_content(); должна быть строка

<?php wp_link_pages(); ?>

По умолчанию ссылки на страницы выводятся в виде "Page 1, 2, 3", но это можно изменить (см. описание функции wp_link_pages). Например:

<?php wp_link_pages('before=Страницы: '); ?>

выводит ссылки на страницы в виде "Страницы: 1, 2, 3"

Плагины на эту тему:

  • Автоматическое разделение больших записей на страницы - плагин Paging (требуется расширение PHP  mbstring)
  • Плагин Number My Post Pages добавляет ссылки на предыдущую и следующую страницу, надпись вроде "Страница 2 из 10" и/или раскрывающийся список для выбора номера страницы.

Один комментарий: Разделение записи блога на части с помощью more, noteaser и nextpage

  1. Андрей говорит:

    Нашел как вывести список страниц как анонс в WordPress по ссылке
    Очень помогло

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

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