Просмотров: 1 552

WordPress. Настройка функции the_excerpt для вывода первого предложения текста заметки.

Функция the_excerpt, позволяет в цикле выводить определенную часть содержимого заметок блога на движке WordPress. Но, как правило, средства WordPress позволяют с ее помощью выводить, какое-то определенное число символов (25, 33, и.т.д.)

Но, что делать, если с помощью этой функции нужно вывести целое предложение? Количество символов в разных предложениях может быть совершенно разным.

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

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

function excerpt_read_more_link($output) {
global $post;
$output = preg_replace('/(.*?[?!.](?=\s|$)).*/', '\\1', $output);
if(mb_strlen($output) > 150) {
$output = mb_substr($output, 0, 150);
}
return $output . '<br><a href="'. get_permalink($post->ID) . '"> Читать полностью...</a>';
}
add_filter('the_excerpt', 'excerpt_read_more_link');

Выбор первого предложения происходит с помощью регулярного выражения:

$output = preg_replace('/(.*?[?!.](?=\s|$)).*/', '\\1', $output);

Условие

if(mb_strlen($output) > 150) {
$output = mb_substr($output, 0, 150);
}

Отвечает за то, чтобы обрезать слишком длинные предложения, если количество символов в этом предложении больше 150.

Надеюсь, что этот код сэкономит вам время на решении подобных задач. Успехов.