Как изменить длину цитаты записи?
По умолчанию длина цитаты записи ограничена первыми 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-разметка не будет удалена из текста цитаты).
А как вывести цитату в анонсах? Наверное, для разных тем по-разному будет.
везде одинаково - меняется вывод the_content на the_excerpt и все.
а как сделать так, чтобы вместо цитат был заголовок записи? То есть, чтобы заголовок был справа от миниатюры, а не сверху. А цитату я вообще убрал с помощью вашего кода, не надо лишний раз текст дублировать.
автор видимо устал отвечать бесплатно на мои бесконечные вопросы ))
у вас вопрос не имеет однозначного ответа. надо сильно изменять шаблоны вывода - и выглядеть это будет очень криво.
Flector, тогда помогите мне закрыть циклические ссылки, нигде нету нормальной инфы. Обещаю, больше не буду тревожить )) или напишите статью про хук на циклические ссылки. А то бесит, что у меня на главной кнопка главной кликается. да и на рубриках тоже. хотелось бы избавиться.
нет никаких хуков.
да и беды я в циклических ссылках не вижу.
воспользуйтесь плагином Remove Redundant Links.
а зря. нельзя лишний раз гонять робота по этим ссылкам. не должен он на них тратить время. а плагин этот я знаю, но он сильно устарел, и его даже нельзя установить с админки. нету его в поиске.
сейчас не 90-е, боты ходить по уже пройденным ссылкам не будут.
Автор, а как вообще удалить все цитаты из под миниатюры? Использую популярный код
add_filter('the_excerpt', 'my_the_excerpt');
function my_the_excerpt($more) {
return '';
}
но почему-то не помогает, так как тема весьма специфичная. Я думаю только вы сможете помочь. сайт kriptoarb.ru
ссылку на вашу тему дайте.
тема Root
сайт kriptoarb.ru
судя по коду темы:
выводить или не выводить отрывок записи настраивается в теме (переменная $is_show_excerpt явно об этом говорит). ищите, где оно настраивается.
есть в настройках галочка, но почему-то не реагирует. В любом случае спасибо за наводку!
тогда просто удалите этот код.
он в файле root/template-parts/posts/content-card.php
как предотвратить сохранение поста, если не задан отрывок? Иногда журналисты забывают заполнить цитату (отрывок), и это не есть хорошо. Как можно запретить сохранение поста, если цитата не заполнена? Пусть там будет хотя бы символов 50 - а если их нет, то предотвратить сохранение и указать журналисту на необходимость заполнить отрывок (а даже, возможно, предложить в качестве цитаты первое предложение создаваемого поста, до первой точки)?