Цитата записи (excerpt) выводится внутри цикла таким кодом:
По умолчанию, она обрежется длиной в 55 слов и в конце будут такие символы […]
, что не очень красиво и не совсем понятно для юзера, можно ли на это кликнуть (можно, но ничего не произойдет).
Итак, пример кода, чтобы цитата заканчивалась многоточием и ссылкой на запись:
/* Excerpt more */
function new_excerpt_more($more) {
global $post;
return '... <a class="read-more" href="'. get_permalink($post->ID) . '">[Read more]</a>';
}
add_filter('excerpt_more', 'new_excerpt_more');
В таком случае текст цитаты и ссылка будут внутри тега <p></p>
, что позволит проще использовать инлайновые стили для кнопки «Читать далее«.
Если цитата указана через админку, тогда ссылка «Читать далее» не будет выводиться с этим кодом, будет выводиться только тот текст, который указан в отрывке.
Как вариант, можно сделать так, чтобы цитата заканчивалась просто многоточием, а ссылку в нужном формате задать уже в коде:
/* Excerpt more */
function new_excerpt_more($more) {
global $post;
return '...';
}
add_filter('excerpt_more', 'new_excerpt_more');
Задаем ссылку на пост после цитаты в коде:
<?php the_excerpt(); ?>
<a href="<?php the_permalink(); ?>">Read more</a>
Только надо учитывать, что в таком варианте цитата будет внутри тега <p></p>
, а ссылка после него. Что так же может быть удобно для определенного дизайна, когда кнопка читать далее вынесена из цитаты. И, в этом случае, ссылка Read more будет выводиться всегда, даже если Цитата указана в админке в поле Отрывок.
Как задать определенную длину для цитаты (excerpt)
По умолчанию в цитате выводится 55 слов (не символов), если сама цитата не задана в админке в настройках поста (Отрывок).
Добавляем в файл functions.php
такую функцию, где 24
— это количество слов в цитате:
/* Excerpt more length */
function new_excerpt_length($length) {
return 24;
}
add_filter('excerpt_length', 'new_excerpt_length');
Если цитата указана через админку в поле «Отрывок«, тогда она не будет обрезаться и будет использоваться в том виде, в котором указана в админке.