Под анонсом статьи понимается ее краткое содержание или введение. Обычно за него принимается начало записи определенной длины. В данной статье мы рассмотрим основные механизмы работы с анонсами в WordPress, используемые для этих целей функции и плагины.
Вывод анонсов на главной странице
WordPress по умолчанию позволяет два варианта главной страницы: либо как отдельную страницу, либо как список записей (анонсов). Чтобы на главной выводились анонсы страниц нужно перейти в Настройки — Чтение и установить переключатель «На главной странице отображать» — Ваши последние записи и затем сохранить изменения.
Однако совсем необязательно после этого на главной странице начнут выводиться именно анонсы (короткие выдержки) записей. В большинстве шаблонов WordPress на страницах, отображающих список записей (обычно, это главная страница, страницы категорий, меток, архивы и т.п.) анонсы будут отображаться только в том случае, если вы его указали при редактировании записи с помощью тега more (Далее). В противном случае запись отобразиться в полном объеме.
Это, конечно, не очень хорошо выглядит и нужно вручную указать, какой отрывок поста от его начала считать анонсом. Для простановки тега нужно поставить курсор в нужную позицию и нажать значок more («Далее»). После его установки тег появится в записи (выделено на картинке).
Если вы публикуете свои посты достаточно часто, необходимость таких лишних действий начинает раздражать, но это довольно просто исправить.
Плагин Advanced Excerpt
WordPress позволяет автоматизировать формирование анонсов при помощи плагинов. Одним из лучших плагинов в этом деле является Advanced Excerpt. Рассмотрим его возможности (и кстати, на этом сайте работает именно этот плагин).
Плагин позволяет:
- Сохранять HTML разметку в анонсе (вы сами можете выбрать теги, которые следует сохранять).
- Формирует анонс в указанном вами размере (указывается количество символов или слов). При этом учитывается только реальный текст (без HTML тегов).
- Выводить последнее слово или предложение полностью завершенным.
- Добавить ссылку «читать дальше» в конце текста.
- Игнорировать пользовательский анонс.
Чтобы у нас были такие возможности, устанавливаем плагин (его можно найти в поиске добавления нового плагина в админке WordPress или на официальной странице плагина http://wordpress.org/plugins/advanced-excerpt/) и активизируем его.
Идем в настройки плагина в меню «Параметры — Excerpt».
- excerpt length — количество символов/слов в анонсе (если не активирована пометка «use words, то это количество символов, если активирована, то слов);
- ellipsis — символ многоточия (выводится в конце анонса). Можете указать свой символ;
- finish — заканчивать на слове (если помечено «word») или на предложении (помечено «sentense»);
- read-more text — текст который будет выводиться в конце анонса. Если помечено «add link to excerpt», то этот текст будет в виде ссылки. Можете посмотреть, как это выглядит на этом сайте;
- no custom excerpts — если отметите, то анонс будет формироваться автоматически по своим правим, даже если вы указали в записи анонс вручную;
- strip shortcodes — удаляет шорткоды;
- keep markup — сохранять html разметку. Если пометите «don’t remove any markup», вся разметка будет сохраняться. Можете также указать конкретно какие теги оставлять — надо в списке тегов оставить на них пометку, а с других пометку снять.
Жмем Save Changes для сохранения наших изменений.
Если вы проверите автоматическое формирование анонсов после этого, то заметите, что ничего не поменялось, записи так и выводятся в полном размере. Все дело в том, что плагин воздействует на функцию wordpress, выводящую анонс the_excerpt(), в то время как у вас в шаблоне, скорее всего, используется функция вывода записи the_content().
Таким образом вам нужно заменить в шаблоне в том месте, где выводится список записей функцию the_content() на the_excerpt().
Сделать это очень просто. Обычно список записей выводится в файле index.php, который находится в папке вашей темы. Вот как это выглядело у меня
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php if (have_posts()) : while (have_posts()) : the_post(); ?> <!-- begin post --> <div class="blogPost clearfix"> <div class="metaLeft"> ... <?php the_content('далее'); ?> </div> </div> <!-- end post --> <?php endwhile; ?> |
Заменяем функцию the_content функцией the_excerpt. Я у себя просто закомментировал прежнюю функцию. Получилось так:
1 2 |
<?php the_excerpt(); //the_content('далее'); ?> |
Сохраняем измененный файл index.php в папке темы и все работает.
У нас вы можете заказать сайт на Wordpress по низкой цене или доработать сайт на wordpress.
Привет. Подскажи, как настроить вывод анонсов так, чтобы они выводились в обратном порядке (новые снизу)?
Павел, нужно перед циклом вывода анонсов вызвать процедуру wp_query с выборкой постов в убывающем порядке.
Добрый день. У меня в посте первое изображение стоит сразу после заголовка, а после него идет текст.
В итоге в разделе анонс с миниатюрой выводится вместе с первым изображением поста.
Как сделать чтобы в анонсе не было изображения с поста?
МЖ: Вам нужно либо отключить в настройках плагина пометку у поля «Dont remove any markup». Тогда будут удаляться все теги из списка, который там есть. Либо в списке снять пометку у поля img. Тогда из анонса будут удаляться только картинки.
Да, спасибо уже нашел. Сначала невнимательно посмотрел)
Хорошая статья!
Привет.
А можно сделать так, что бы ссылка на полный текст была не только на заголовке анонса, но и на самом анонсе?
Например…у меня анонс это просто картинка, я хочу на неё повесить ссылку на полный текст.
Денис, в вашем случае не обойтись без дополнительного программирования. Можно предложить такой вариант — обернуть в коде вывод анонса ссылкой. То есть там, где у вас выводится функция — над ней написать открывающий тег ссылки <|a href='<|?php the_permalink(); ?>‘>, а после нее завершающий тег <|/a>
В целом должно быть так
<|a href='<|?php the_permalink(); ?>‘><|/a>
Только здесь надо вертикальные палки убрать (иначе здесь код ссылки не отображается) и проследить, чтобы кавычки были одинаковыми.
Спасибо, очень хороший плагин, но мне понравился больше этот — Content Views