Вывод анонса с заданным количеством слов

3 февраля 2010 г.

Не раз сталкивался с ситуацией, когда необходимо было выводить анонс, ограничив его длину заданным количество слов.

Для этого я использую нижеследующую простенькую функцию.

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

function do_excerpt($string, $word_limit) {
	$words = explode(' ', $string, ($word_limit + 1));
	if (count($words) > $word_limit)
	array_pop($words);
	echo implode(' ', $words).' ...';
}

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

<?php do_excerpt(get_the_excerpt(), 50); ?>

Здесь цифра 50 – это количество слов, которым мы хотим ограничить длину анонса.

Другой вариант

Если вы используете WordPress версии 2.9 или выше, то можно использовать следующую более упрощенную конструкцию:

function new_excerpt_length($length) {
	return 50;
}
add_filter('excerpt_length', 'new_excerpt_length');

Код также необходимо вставить в файл functions.php.

  3 Мне понравилось!

Koммeнтapии (22):

  1. работает, но дает конфликт с Theme My Login

  2. Начиная с версии 2.9 имеет смысл делать следующим образом:
    function new_excerpt_length($length) {
    return 50;
    }
    add_filter(’excerpt_length’, ‘new_excerpt_length’);

  3. Благодарю, с этим “хаком” главная страница и страницы архивов выглядят гораздо аккуратнее. Теперь можно точно отрегулировать длину блока контента с длиной сайдбаров.

  4. А если надо у the_title() вывести только первые 3 слова, то как сделать, не подскажете? А то do_excerpt(the_title(), 1) не работает! (((

  5. Привет, с символами и словами все понятно, а как вывести первые, к примеру, 3 строки поста?

  6. :) так дело в том, что смысл подгона пропадает, ведь можно просто прятать под кат. Жаль конечно, а что делать, буду ручками править…

  7. Ммм, почему-то вываливает

    AKPC_IDS += “2077,”; …

    вместо анонсов..

  8. Подскажите пожалуйста решение для полного скрытия анонса в основной статье
    Блог с видео контентом и нужна миниатюра только на главной странице

  9. Интересует не много другое, как убрать “читать далее”, но вывод анонса оставить. Необходимо убрать сам текст или не выводить ссылку “читать далее”. Любой шаблон позволяет показывать название поста в начале статьи. Одной ссылки для поста вполне достаточно. Спасибо.

  10. приветствую,
    а как вывести на главную текст поста без форматирования (без html тегов), чистый текст…
    спасибо

Oтпpaвить кoммeнтapий

Облако тегов