WordPress: Улучшаем функцию the_excerpt()

Функция the_excerpt() — полезная и популярная среди разработчиков тем для ворпдресс, но все-таки далека от идеала. Эта статья об улучшении функции, которое заключается в том, что цитата будет выводится строго определенной длины и не будет обрезать половину предложения.

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

1// Переменные и умная длина цитаты.
2function print_excerpt($length) { // Максимальная длина цитаты. Длина задается в символах
3    global $post;
4    $text = $post->post_excerpt;
5    if ( '' == $text ) {
6        $text = get_the_content('');
7        $text = apply_filters('the_content', $text);
8        $text = str_replace(']]>', ']]>', $text);
9    }
10    $text = strip_shortcodes($text); // опционально, рекомендуется
11    $text = strip_tags($text); // используйте' $text = strip_tags($text,'<p><a>'); ' если хотите оставить некоторые теги
12 
13    $text = substr($text,0,$length);
14    $excerpt = reverse_strrchr($text, '.', 1);
15    if( $excerpt ) {
16        echo apply_filters('the_excerpt',$excerpt);
17    } else {
18        echo apply_filters('the_excerpt',$text);
19    }
20}
21 
22function reverse_strrchr($haystack, $needle, $trail) {
23    return strrpos($haystack, $needle) ? substr($haystack, 0, strrpos($haystack, $needle) + $trail) : false;
24}

Теперь можно использовать функцию print_excerpt() в файлах вашей темы, задавая длину цитаты; пример ниже:

VN:F [1.9.22_1171]
Rating: 5.0/5 (2 votes cast)

Об авторе ADv

Занимаюсь разработкой сайтов и магазинов на WordPress. Оказываю платные помощь и консультации. Skype: advokat_b
Scroll To Top