Изучаем функцию the_excerpt() в WordPress

Этот пост больше предназначен для тех, кто любит самостоятельно ковырять шаблоны для WordPress блога.

Функция the_excerpt() отвечает за вывод сокращенной версии поста, например сокращенный вывод постов, чаще всего настраивают на страницах архивов, категорий или тегов.

Изначально эта функция показывает первые 55 слов из записи, после чего пишет […] для дальнейшего прочтения записи, Вам необходимо щелкнуть на заголовке записи.

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

Практически в любом случае, нужно просто добавить кусочек кода в файл functions.php в папке с шаблоном блога.

Регулируем количество слов:

<?php
function new_excerpt_length($length) {
return 20;
}
add_filter('excerpt_length', 'new_excerpt_length');
?>

В данном случае цифрой 20 задается количество слов, которое будет выводить функция the_excerpt ().

Или другой вариант:

В файл functions.php WordPress-темы необходимо вставить следующий код:

function do_excerpt($string, $word_limit) {
$words = explode(' ', $string, ($word_limit + 1));
if (count($words) > $word_limit)
array_pop($words);
echo implode(' ', $words).' ...';
}

После этого в то место шаблона, где нужно отобразить анонсы постов, вставить вот такой код:

<?php do_excerpt(get_the_excerpt(), 50); ?>

Здесь цифра 50 — это количество слов, которым мы хотим ограничить длину анонса.

Играем с троеточием:

Для блогов которые работают на WordPress > 2.9 код выглядит вот так:

<?php
function new_excerpt_more($more) {
return '[.....]';
}
add_filter('excerpt_more', 'new_excerpt_more');
?>

Попробуйте изменить […..]

Для блогов на WordPress < 2.8 этот же код будет выглядеть вот так:

<?php
function new_excerpt_more($excerpt) {
return str_replace('[...]', '...', $excerpt);
}
add_filter('wp_trim_excerpt', 'new_excerpt_more');
?>

В данном случае функцией str_replace меняется «[…]» на «…» собственно вместо обычного троеточия, можно поставить что угодно.

Как нам известно, функция эта выводит краткую версию поста, но не выводит ссылку типа «Читать далее…», для этого воспользуемся следующим хаком:

<?php
function new_excerpt_more($more) {
return '<a href="'. get_permalink($post->ID) . '">' . ' читать далее ..' . '</a>';
}
add_filter('excerpt_more', 'new_excerpt_more');
?>

Не забываем, что этот код добавляется в файл functions.php в папке шаблона WordPress блога, если такого файла не существует, создайте его самостоятельно.

h++p://blogproblog.com/kovyryaemsya-v-the_excerpt/
h++p://wphacks.name/tag/the_excerpt/
h++p://codex.wordpress.org/Template_Tags/the_excerpt

2 комментария

  1. Как изменить функцию .get_permalink(). на функцию, которая даст ссылку на изображение, выводящееся в посте

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*


2 × 4 =