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. Сергей
    5 лет назад

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

  4. Сергей
    5 лет назад

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

    • От темы не должно зависеть. Я много раз использовал оба варианта в разных темах — всегда работает.

      • Dimox, пробовал и с другими темами, но результат отрицательный. Вывод, что то я делаю не так. Вы не могли мне помочь? Если я вышлю файл functions.php, или название темы, а Вы пришлёте исправленный файл functions.php.

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

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

    Спасибо.

  7. Сергей
    4 года назад

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

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

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

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

  11. Спасибо!

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

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

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

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