Настраиваем вывод анонсов записей в блоге

Категории: Как сделать?

На многих блогах вместо полных записей, на главной странице и в архивах выводятся анонсы записей. Для этого в шаблонах блога используется функция the_excerpt().

Эта функция выводит первые 55 слов из записи, обрезая все форматирование и ссылки.

Очень часто, клиенты просят чтобы анонс был длинее, или чтобы в конце анонса небыло странных […] а также активные ссылки и форматирование в виде переноса строк, жирного шрифта и тп. Я уже писал о том, как можно усовершенствовать функцию the_excerpt под свои нужды, но как оказалось можно сделать еще больше.

Для этого необходимо добавить в файл function.php, следующую функцию:

function improved_trim_excerpt($text) {
	global $post;
	if ( '' == $text ) {
		$text = get_the_content('');
		$text = apply_filters('the_content', $text);
		$text = str_replace(']]>', ']]>', $text);
		$text = preg_replace('@]*?>.*?@si', '', $text);
		$text = strip_tags($text, '

'); $excerpt_length = 80; $words = explode(' ', $text, $excerpt_length + 1); if (count($words)> $excerpt_length) { array_pop($words); array_push($words, '[...]'); $text = implode(' ', $words); } } return $text; }

Теперь необходимо отключить стандартный the_excerpt и включить наш усовершенствованный добавляем в том же файле:

remove_filter('get_the_excerpt', 'wp_trim_excerpt');
add_filter('get_the_excerpt', 'improved_trim_excerpt');

Теперь разберемся что мы сделали:

Строка:

$text = strip_tags($text, '

');

отвечает за обрезание html тегов в анонсе, сюда можно добавить другие теги, например:

$text = strip_tags($text, '

,,
,');

таким образом мы получим вполне полноценный анонс записи с форматированием и ссылками.

В строке

$excerpt_length = 80;

мы можем указать сколько слов нам необходимо выводить в анонсе.

Если строку

array_push($words, '[...]');

мы сделаем вот такой,

array_push($words, '');

то не будет выводится […] в конце каждого анонса, а можно туда добавить что-то другое.

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

А в сегодняшнем постовом, у нас продолжается тематика фотошопа, как всегда уроки фотошопа, графика и другие полезности для тех кто хочет рисовать.

Комментарии: 1Напишите свой комментарий!

  1. Дадон Написал(а):

    Кстати, этот длинный код можно вставлять не в файл функтион.рнр, а сразу в нужное место, например в виджет или в футер и уже там плясать.

    Я так сделал разные футеры и виджеты, где то вставил анонс из 5 слов и картинку, где то анонс из 20 слов и картинку больше, потом вставил 5 маленьких картинок + только заголовок, они отражали свежие 5 записей, но не те записи, что на главной, а что были до них. Тоесть 5 на главной и 5 в боковом виджете уменьшенные, а внизу просто вставил блок из 10 случайных картинок (без текста) и ещё просто интересные ссылки.

    Незнаю можно ли тут вставлять ссылку на сайт чтобы показать. Так что если надо покажу.

    Так что функция полезная, если её доработать то можно использовать для разных целей не вставляй в функтионс.

Оставьте комментарий Ваш шанс быть услышанным!