Вывод анонса статьи без цитаты и тега more
01.07.2012
| function content($limit) { $content = explode(' ', get_the_content(), $limit); if (count($content)>=$limit) { array_pop($content); $content = implode(" ",$content).'...';\ } else { $content = implode(" ",$content); } $content = preg_replace('`\[[^\]]*\]`','',$content); return $content; }
Вызов функции осуществляется следующим образом:
<?php echo content(25); ?>
где 25 — количество слов в цитате. Функция вызывается в шаблоне и при этом уже нет необходимости использования тега «more» («далее») или цитаты.
Но у этой функции есть недостаток. Если в начале статьи есть ссылка и наша функция обрежет ее, то часть сайта находящаяся ниже анонса будет одной сплошной ссылкой, т.е. останется не закрытый тег <а>. Чтобы такого не происходило, нужно модифицировать функцию:
function content($limit) { $tempcontent = strip_tags (get_the_content()); $content = explode(' ', $tempcontent, $limit); if (count($content)>=$limit) { array_pop($content); $content = implode(" ",$content).'...'; } else { $content = implode(" ",$content); } $content = preg_replace('/\[.+\]/','', $content); $content = apply_filters('the_content', $content); $content = str_replace(']]>', ']]>', $content); return $content; }
Функция strip_tags удаляет все теги из текста, устраняя таким образом возникающую проблему.
Вызов функции остается прежним.