Оглавление:
3 способа создания анонса записи в WP. Как ограничить длину анонсов.
Если вы никак не можете разобраться, как сделать так, чтобы на главной и в рубриках выводилось только начало статьи со ссылкой «Читать далее» (или и вовсе какой-нибудь уникальный текст), то этот пост специально для вас.
Ни в одном из нижеперечисленных способов плагинов нам не потребуется.
Тег «Далее»
Сначала разберём самый простой и самый часто использующийся способ. Работает практически для любых тем WordPress.
Хорош этот способ тем, что вы сможете обрезать содержимое поста в любом месте, в котором захотите. Для этого нужно:
- Перейти на страницу редактирования поста.
- Поставить курсор в то место в тексте, в котором вы хотите его обрезать и нажать кнопку в редакторе Вставить тег «Далее»
или кнопку more — в зависимости от того, каким редактором вы пользуетесь (Визуальным или HTML). - Обновить пост.
Записал видео для полной наглядности:
Применение: функция the_content()
Этот способ полностью реализует себя, если для вывода анонса постов используются функция the_content() или похожая функция get_the_content(), которая возвращает контент, а не выводит. В случае с последней фильтры также не будут применяться — текст не отформатируется, шорткоды не задействуются, однако тег «Далее» будет работать как положено.
При использовании the_content() весь HTML поста сохранится, картинки также будут в анонсе.
Вы вставили тег «Далее», но у вас всё равно выводится целиком весь пост? Смотрите решение проблемы здесь.
Цитата
Второй способ создания анонсов постов — использование поля «Цитата». Этот способ сработает только в том случае, если для вывода анонсов у вас используется
the_excerpt()
(её аналог
get_the_excerpt()
возвращает цитату, а не выводит).
Если вы не можете найти метабокс цитаты на странице редактирования записи, в правом верхнем углу откройте «Настройки экрана» и включите его там.
Пара слов о том как работают функция
the_excerpt()
:
- В первую очередь в качестве анонса поста берется содержимое поля «Цитата».
- Если цитата пуста, тогда анонсом станет неотформатированный текст поста, обрезанный до 55 слов.
- Если в этих 55 словах присутствует тег «Далее», то анонс станет ещё короче.
Постарался показать это на видео:
Собственная функция, обрезающая содержимое поста до определенного количества символов
Код функции представлен ниже, добавляем его в
functions.php
текущей темы WP.
function the_truncated_post($symbol_amount) { $filtered = strip_tags( preg_replace('@<style[^>]*?>.*?</style>@si', '', preg_replace('@<script[^>]*?>.*?</script>@si', '', apply_filters('the_content', get_the_content()))) ); echo substr($filtered, , strrpos(substr($filtered, , $symbol_amount), ' ')) . '...'; } |
Затем, в том месте, в котором нужно вывести анонс, вставляем:
the_truncated_post( 100 ); |
Если при использовании этого метода у вас появятся кракозябры, тогда рекомендую внутри функции
the_truncated_post()
, на 3й строке, произвести следующие замены:
substr()
=>
mb_substr()
,
strrpos()
=>
mb_strrpos()
. Если в итоге функция вообще перестанет работать, то это уже вопросы к вашему хостеру.
По теме
- the_content() — выводит контент постаРассмотрим также случаи, когда требуется вывести содержимое конкретного поста, изменить HTML или текст кнопки Далее, настроить вывод постов в виде анонсов.
- get_the_content() — возвращает содержимое поста (записи или страницы)Используйте эту функцию в цикле для того, чтобы получить контент текущего поста (записи или страницы) в том виде, в котором он находится в базе данных, без фильтров.
- get_extended() — возвращает по отдельности контент до и после тега <!‐‐more‐‐>Функция возвращает массив, состоящий из анонса поста, полной версии поста и текста ссылки перехода к посту.
- Как изменить ссылку «далее» в анонсах постовДва способа изменить текст ссылки (далее…) на блоге, с примерами.
https://truemisha.ru/blog/wordpress/anons-posta.html
Кандидат технических наук, доцент кафедры ИУ-6 (Компьютерные системы и сети) Московского государственного технического университета им. Н. Э. Баумана. Самый молодой в России PhD in Computer Science. Эксперт в области компьютерных технологий и программирования.
Стаж: 8 лет.
Образование: МГТУ им. Н. Э. Баумана, к.т.н.
- Автоматическое монтирование fstab и systemd - 24.02.2021
- Как в Linux подключить новый диск, разметить и отформатировать разделы - 24.02.2021
- Как сменить режим работы PHP - 24.02.2021