Плагин Advanced Excerpt — улучшаем вывод анонсов на сайте

Под анонсом статьи понимается ее краткое содержание или введение. Обычно за него принимается начало записи определенной длины. В данной статье мы рассмотрим основные механизмы работы с анонсами в WordPress, используемые для этих целей функции и плагины.

Вывод анонсов на главной странице

WordPress по умолчанию позволяет два варианта главной страницы: либо как отдельную страницу, либо как список записей (анонсов). Чтобы на главной выводились анонсы страниц нужно перейти в Настройки — Чтение и установить переключатель «На главной странице отображать» — Ваши последние записи и затем сохранить изменения.

Advanced Excerpt

Однако совсем необязательно после этого на главной странице начнут выводиться именно анонсы (короткие выдержки) записей. В большинстве шаблонов WordPress на страницах, отображающих список записей (обычно, это главная страница, страницы категорий, меток, архивы и т.п.) анонсы будут отображаться только в том случае, если вы его указали при редактировании записи с помощью тега more (Далее). В противном случае запись отобразиться в полном объеме.

Это, конечно, не очень хорошо выглядит и нужно вручную указать, какой отрывок поста от его начала считать анонсом. Для простановки тега нужно поставить курсор в нужную позицию и нажать значок more («Далее»). После его установки тег появится в записи (выделено на картинке).

вставка тега more

Если вы публикуете свои посты достаточно часто, необходимость таких лишних действий начинает раздражать, но это довольно просто исправить.

Плагин Advanced Excerpt

WordPress позволяет автоматизировать формирование анонсов при помощи плагинов. Одним из лучших плагинов в этом деле является Advanced Excerpt. Рассмотрим его возможности (и кстати, на этом сайте работает именно этот плагин).

Плагин позволяет:

  1. Сохранять HTML разметку в анонсе (вы сами можете выбрать теги, которые следует сохранять).
  2. Формирует анонс в указанном вами размере (указывается количество символов или слов). При этом учитывается только реальный текст (без HTML тегов).
  3. Выводить последнее слово или предложение полностью завершенным.
  4. Добавить ссылку «читать дальше» в конце текста.
  5. Игнорировать пользовательский анонс.

Чтобы у нас были такие возможности, устанавливаем плагин (его можно найти в поиске добавления нового плагина в админке 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, который находится в папке вашей темы. Вот как это выглядело у меня

Заменяем функцию the_content функцией the_excerpt. Я у себя просто закомментировал прежнюю функцию. Получилось так:

Сохраняем измененный файл index.php в папке темы и все работает.

Оцените статью
Делаем сайт своими руками
Комментарии: 9
  1. Павел

    Привет. Подскажи, как настроить вывод анонсов так, чтобы они выводились в обратном порядке (новые снизу)?

    Ответить
  2. Ложников Андрей (автор)

    Павел, нужно перед циклом вывода анонсов вызвать процедуру wp_query с выборкой постов в убывающем порядке.

    Ответить
  3. МЖ

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

    В итоге в разделе анонс с миниатюрой выводится вместе с первым изображением поста.

    Как сделать чтобы в анонсе не было изображения с поста?

    Ответить
    1. Ложников Андрей (автор)

      МЖ: Вам нужно либо отключить в настройках плагина пометку у поля «Dont remove any markup». Тогда будут удаляться все теги из списка, который там есть. Либо в списке снять пометку у поля img. Тогда из анонса будут удаляться только картинки.

      Ответить
      1. МЖ

        Да, спасибо уже нашел. Сначала невнимательно посмотрел)

        Ответить
  4. Илья

    Хорошая статья!

    Ответить
  5. Денис

    Привет.
    А можно сделать так, что бы ссылка на полный текст была не только на заголовке анонса, но и на самом анонсе?
    Например…у меня анонс это просто картинка, я хочу на неё повесить ссылку на полный текст.

    Ответить
    1. Ложников Андрей (автор)

      Денис, в вашем случае не обойтись без дополнительного программирования. Можно предложить такой вариант — обернуть в коде вывод анонса ссылкой. То есть там, где у вас выводится функция — над ней написать открывающий тег ссылки <|a href='<|?php the_permalink(); ?>‘>, а после нее завершающий тег <|/a>
      В целом должно быть так
      <|a href='<|?php the_permalink(); ?>‘><|/a>
      Только здесь надо вертикальные палки убрать (иначе здесь код ссылки не отображается) и проследить, чтобы кавычки были одинаковыми.

      Ответить
  6. Янина

    Спасибо, очень хороший плагин, но мне понравился больше этот — Content Views

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