n-wp.ru — блог о WordPress
Основы работы с WordPress: цитата поста | n-wp.ru

Основы работы с WordPress: цитата поста

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

В WordPress есть встроенная функция, с помощью которой можно выводить краткий текстовый анонс поста. Эта функция называется цитата. Современные темы все чаще используют цитату поста, давайте и мы рассмотрим основные приемы работы с этой функцией.

Основы работы с WordPress: цитата поста

Поле для ввода текста цитаты поста

Текст цитаты поста можно вставить при создании записи. Для этого нужно активировать текстовое поле для вставки: в настройках экрана нужно отметить чекбокс «Цитата» — появится поле для ввода текста.

Если вы хотите снабдить поле для ввода текста цитаты такими же кнопками, как и в визуальном редакторе, то можете воспользоваться способом Как добавить кнопки визуального редактора в поле редактирования цитат.

Интеграция цитаты поста в тему

Большинство современных тем поддерживает работу с цитатами постов. Если же этого нет, но вы хотите выводит цитату поста, то можно внедрить ее вывод в тему. За вывод цитаты поста отвечает функция [code inline=»yes»]

. Вы можете заменить стандартный вывод содержимого поста, который производится функцией [code inline=»yes»]

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

Обратите внимание на то, что если содержимое цитаты не заполнено, но в теме указано все равно выводить цитату поста, то в качестве текста будет выведен основной текст поста в сокращенном виде. Если же цитата выводится в шаблонах изображений или вложений (за это отвечают файлы image.php и attachment.php), то в качестве цитаты будет отображаться текст описания вложения.

Настройка длины текста цитаты и вида ссылки на продолжение поста

По умолчанию цитата поста имеет длину 55 слов. Если вы хотите изменить это значение (например, установить длину цитаты поста в 120 слов), то можно использовать специальный фильтр. Вставьте этот код в файл functions.php используемой вами темы:

Обычно в конце текста цитаты, чтобы показать, что это только краткий анонс, имеющий продолжение, вставляется […]. Если вы хотите убрать эти символы, или заменить их на другие (например, просто на троеточие в обычных скобках (…)), вставьте следующий код в файл functions.php используемой вами темы:

Некоторым блоггерам нравится, когда такое троеточие является не просто текстом, а ссылкой на полную версию поста, как бы приглашающую открыть его. Можно превратить символы в конце цитаты в ссылку на пост (читать полностью …) — для этого слегка модернизируйте код вышеописанного фильтра:

Нестандартное использование цитаты поста

Помимо выводы цитаты поста на главной странице блога, в архивах и категориях, можно так же использовать эту функцию и в нестандартных условиях. Например, для улучшения информативности ссылок на следующий/предыдущий посты можно выводить цитаты предыдущего и последующего постов в одиночной записи.

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

tiaurus

Являюсь создателем n-wp.ru — блога о WordPress для новичков. Мне интересно многое, поэтому еще я сделал 123-box.ru — блог о программах для Windows, и tiaurus.info — блог о красоте.

17 комментариев

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

    Я думаю все дело в functions.php…

    Вот что у меня там:

    По видимому сделано из плагина..Помогите плиз вывести в категориях текст именно из поля цитата…

    • Не совсем понял, что вы хотите в результате получить? Вы хотите, чтобы на странице архива постов из определенной категории в постах выводилась цитата поста, а во всех остальных местах — часть контента до тега more? Тогда удалите из functions.php Excerpt Link Modifier, вместо него используйте чистый вывод the_excerpt, только вместо

      используйте код с проверкой условия

      • Это я понял как сделать..Я бы хотел что бы посты на главной выводились функцией < ?php the_excerpt(); ?>, допустим 55 первых слов. А категории и архивы из формы цитата..Красиво когда посты одинаково и аккуратно выводятся, тем более не нужно париться с тегом «more». Такая вот задумка..Надеюсь поможете разобраться..Гугл с вопросом не справился))), два дня усиленно искал, все одно и тоже..

        • Это я понял как сделать..Я бы хотел что бы посты на главной выводились функцией < ?php the_excerpt(); ?>, допустим 55 первых слов. А категории и архивы из формы цитата.

          Вы хотите одно и то же. Функция the_excerpt выводит цитату поста. Если цитаты поста нет (вы не заполнили), то она берет первые насколько слов из основного содержимого поста.
          Я не до конца понял, что же вы хотите увидеть? Вы хотите на главной странице видеть цитаты поста длиной 55 символов, а на других страницах цитаты другой длины?

          • У меня везде сейчас стоит < ?php the_excerpt(); ?> и за счет вот этого:

            и на главной и в архивах с рубриками выводится 55 первых слов основного текста поста, независимо заполнено поле цитата или нет. То есть если заполняешь цитату, ничего не происходит. Выводится те же 55 первых слов текста поста.. Я бы хотел, что бы на главной все так и осталось, а в архивах и категориях все таки выводилось содержимое из формы с цитатой. Можно как нибудь такое дело организовать?

            • Закомментируйте 30 и 32 строчку, вот так:

              и воспользуйтесь кодом из этого поста, ограничивающего длину цитаты.

  • Нельзя ли вот это дело подправить..

    Обычный хтмл и ксс я еще могу читать и разбираться, но от такого кода я еще далек..

  • А как сделать, чтобы в записях, если они содержат вывод «похожих постов» с использованием функции

    анонсы выводились бы другой длинны, нежели на главной и категориях?

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

    • Можно сократить длину цитаты поста до нужного количества символов, ведь есть PHP-функция mb_substr.

      150 — количество символов

      • А как сделать тоже самое, но чтобы обрезалось не по количеству символов, а слов, с многоточием на конце?

        • Посмотрите плагин Advanced Excerpt. Он умеет:
          — задавать длину цитаты поста в символах или словах (на выбор)
          — добавлять любые символы после цитаты, в том числе и многоточие
          — если нет цитаты поста, то формировать ее из текста поста, при этом вырезая HTML разметку и шорткоды

          Использовать элементарно. Например, вам нужно вывести цитату поста не длиннее 50 слов с многоточием на конце — вставляете в то место, где должна быть цитата поста код

  • Здравствуйте. Бьюсь над проблеммой уже 7-ой час, но цитата в шаблоне нкак не выводится. В php полный ноль.
    Необходимо чтобы цитаты выводились в блоках на главной с определенным количеством символов и заканчивались целым словом, а в категориях с другим количеством.
    Но уже согласен и на одинаковое количество, главное чтобы цитаты выводились, а не кусок текста из статьи.

    Для справки: Шаблон Felici
    То, что удалось обнаружить:

    Блок похожий на новостной слайдер в index.php

    Пробовал подставлять

    для плагина Advanced Excerpt.Вместо

    подставил

    Количество символов в плагине стало регулироваться плагином, но вот цитата все-равно так и не появилась

    На главной есть еще 3 блока разного вида с выводом различных категорий. Но исходник к ним я даже не нашел где можно было по эксперементировать.

    Также нашел такие строчки в category.php

    и также упоминающийся исходник shortcodes.php в functions.php

    У меня уже опускаются руки Помогите, пожалуйста! Уж очень не хочется менять этот шаблон. Он как нельзя лучше подходит для моего сайта.

  • Проблему частично решил плагином Auto Excerpt everywhere Он стал выводить цитаты, но только в категориях и подсчет идет в символах которые не настраиваются не Auto Excerpt everywhere не Advanced Excerpt, а только здесь

    Где 200-количество символов. Пробовал в файле shortcodes.php поменять

    на

    но ничего не вышло

/* ]]> */