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

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

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

В файл 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.

Комментарии (30)

  1. Мне помог 2 вариант! Потратил пол дня пока не нашел ответ на вашем блоге..:)

  2. Да второй вариант сработал на УРА) спасибо огромное!

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

    это в functions.php

    <?php the_excerpt('new_excerpt_length', 10); ?>

    а это в свой код вывода и все супер)

  3. А куда именно вставлять этот код в файл functions.php?

  4. Не получилось. Делал всё как Вы писали. Возможно что тема не позволяет это осуществить?

  5. Здравствуйте! Способ замечательный! Только вот мне нужно, чтобы это было не количество слов, а количество символов. Подскажите пожалуйста, можно ли такое провернуть с этим скриптом?

  6. Здравствуйте Дмитрий. Воспользовалась вашим способом, хотя искала как увеличить количество слов при выводе на главную.

    Спасибо.

  7. Спасибо большое! Ограничение для обрезки по символам — это именно то, что я искал!

  8. Доброго дня! Подскажите пожалуйста, можно ли выбирать не только количество (длину) анонса, но и устанавливать его начало (с какого места начинать)?

  9. Скажите, а к анонсам в разделе категории эта функция применима? если да, то в каком месте вставлять этот код? Долбусь и не могу понять. Пока что новичёк

  10. Спасибо! второй вариант сработал! В качестве лайка — 2 перехода по рекламе )

  11. Спасибо!

  12. Подскажите пож. как сделать так чтобы на странице отображался только аннонс комментария, а дальше при желании…по ссылке перейти на страницу где уже полный текст?

  13. Здравствуйте, вывод анонса обрезается вот такой конструкцией […], как изменить ее? Чтобы было просто ….

  14. Огромное спасибо, помогли. Буду рад, если поможете сделать вывод заголовков справа от картинки. Весь интернет обыскал уже.

Ваш комментарий