Функция the_excerpt() — полезная и популярная среди разработчиков тем для ворпдресс, но все-таки далека от идеала. Эта статья об улучшении функции, которое заключается в том, что цитата будет выводится строго определенной длины и не будет обрезать половину предложения.
Первое, что необходимо сделать, это создать функцию. Открываем файл functions.php в папке вашей текущей темы и вставляем следующий код:
// Переменные и умная длина цитаты. function print_excerpt($length) { // Максимальная длина цитаты. Длина задается в символах global $post; $text = $post->post_excerpt; if ( '' == $text ) { $text = get_the_content(''); $text = apply_filters('the_content', $text); $text = str_replace(']]>', ']]>', $text); } $text = strip_shortcodes($text); // опционально, рекомендуется $text = strip_tags($text); // используйте' $text = strip_tags($text,'<p><a>'); ' если хотите оставить некоторые теги $text = substr($text,0,$length); $excerpt = reverse_strrchr($text, '.', 1); if( $excerpt ) { echo apply_filters('the_excerpt',$excerpt); } else { echo apply_filters('the_excerpt',$text); } } function reverse_strrchr($haystack, $needle, $trail) { return strrpos($haystack, $needle) ? substr($haystack, 0, strrpos($haystack, $needle) + $trail) : false; }
Теперь можно использовать функцию print_excerpt() в файлах вашей темы, задавая длину цитаты; пример ниже:
<?php print_excerpt(50); ?>