Flector

Как изменить длину цитаты записи?

Цитата записи

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

//новая длина размера цитаты start
function wph_excerpt_length($length) {
    return 10; 
}
add_filter('excerpt_length', 'wph_excerpt_length');
//новая длина размера цитаты end

Где '10' это новая длина цитаты (в словах).

По умолчанию к цитате добавляются символы '[...]', которые можно легко заменить своим текстом с помощью следующего кода:

//замена [...] в цитатах start
function wph_new_excerpt_more($excerpt) {
    return str_replace('[...]', '...', $excerpt);
}
add_filter('excerpt_more', 'wph_new_excerpt_more');
//замена [...] в цитатах end

При желании символы '[...]' можно заменить ссылкой на запись с анкором "читать дальше...". Для этого надо использовать такой код:

//замена [...] на "читать дальше.." в цитатах start
function wph_new_excerpt_more($excerpt) {
    $plink = get_permalink($post->ID);
    return ' <a href="'. $plink . '">' . 'читать дальше...' . '</a>';
}
add_filter('excerpt_more', 'wph_new_excerpt_more');
//замена [...] на "читать дальше.." в цитатах end

Важно знать, что никакие фильтры на изменение цитаты не будут работать, если вы указали цитату вручную при редактировании записи. В этом случае цитата будет выведена ровно в том виде, в котором вы ее заполнили (даже html-разметка не будет удалена из текста цитаты).


Комментарии (9 комментариев)
  1. А как вывести цитату в анонсах? Наверное, для разных тем по-разному будет.

    • Flector:

      везде одинаково - меняется вывод the_content на the_excerpt и все.

  2. а как сделать так, чтобы вместо цитат был заголовок записи? То есть, чтобы заголовок был справа от миниатюры, а не сверху. А цитату я вообще убрал с помощью вашего кода, не надо лишний раз текст дублировать.

  3. автор видимо устал отвечать бесплатно на мои бесконечные вопросы ))

    • Flector:

      у вас вопрос не имеет однозначного ответа. надо сильно изменять шаблоны вывода - и выглядеть это будет очень криво.

      • Flector, тогда помогите мне закрыть циклические ссылки, нигде нету нормальной инфы. Обещаю, больше не буду тревожить )) или напишите статью про хук на циклические ссылки. А то бесит, что у меня на главной кнопка главной кликается. да и на рубриках тоже. хотелось бы избавиться.

        • Flector:

          нет никаких хуков.
          да и беды я в циклических ссылках не вижу.
          воспользуйтесь плагином Remove Redundant Links.

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

        • Flector:

          сейчас не 90-е, боты ходить по уже пройденным ссылкам не будут.

Написать комментарий

Для вставки кода воспользуйтесь кнопкой "Код". Используйте предпросмотр!