Функция the_excerpt() — полезная и популярная среди разработчиков тем для ворпдресс, но все-таки далека от идеала. Эта статья об улучшении функции, которое заключается в том, что цитата будет выводится строго определенной длины и не будет обрезать половину предложения.
Первое, что необходимо сделать, это создать функцию. Открываем файл functions.php в папке вашей текущей темы и вставляем следующий код:
2 | function print_excerpt( $length ) { |
4 | $text = $post ->post_excerpt; |
6 | $text = get_the_content( '' ); |
7 | $text = apply_filters( 'the_content' , $text ); |
8 | $text = str_replace ( ']]>' , ']]>' , $text ); |
10 | $text = strip_shortcodes( $text ); |
11 | $text = strip_tags ( $text ); |
13 | $text = substr ( $text ,0, $length ); |
14 | $excerpt = reverse_strrchr( $text , '.' , 1); |
16 | echo apply_filters( 'the_excerpt' , $excerpt ); |
18 | echo apply_filters( 'the_excerpt' , $text ); |
22 | function reverse_strrchr( $haystack , $needle , $trail ) { |
23 | return strrpos ( $haystack , $needle ) ? substr ( $haystack , 0, strrpos ( $haystack , $needle ) + $trail ) : false; |
Теперь можно использовать функцию print_excerpt() в файлах вашей темы, задавая длину цитаты; пример ниже:
1 | <?php print_excerpt(50); ?> |
VN:F [1.9.22_1171]
Rating: 5.0/5 (2 votes cast)