Ограничиваем длину текста в анонсе wordpress

Здравствуйте,  уважаемые читатели!  Давно я ничего не писал в блог,  со дня написания моего последнего поста (где мы говорили о выводе названия категорий в шаблоне wordpress) прошло уже почти месяц, что конечно же очень плохо, совсем уже разленился я :).  В будущем постараюсь, чтобы новые статьи выходили по чаще,  а то с такими темпами за год и дюжины статей не наберется, что там можно говорить о новых читателях. Ну да ладно, сейчас  не об этом…

А поговорим мы сегодня о том, каким образом можно ограничить или, как еще часто говорят, обрезать стандартную длину анонса (цитаты) в вордпрес. Здесь я вам покажу несколько  способов, а точнее три способа  обрезки цитаты. Первых два стандартных , предусмотрены в wordpress по умолчанию, а третий (тот которым чаще всего пользуюсь я ), представляющий собой небольшую php функцию, которая обрезает текст до заданной величины. Но обо всем по порядку.

Как вы наверняка знаете стандартная длина анонса в вордпрес составляет 55 слов, что, в принципе, нормально, если говорить об обычном блоговом представлении материала. Чтобы ограничить данную длину можно воспользоваться специальным фильтром, который  выглядит таким образом:

  function my_excerpt_length($length) {
    return 20;
  }
  add_filter('excerpt_length', 'my_excerpt_length');

 

Где 20 — количество слов отображаемых в новой цитате. Данный код нужно вставить в файл functions.php в папке вашей темы.

Это был первый способ обрезки текста. Второй способ появился в вордпрес с  версии 3.3 и выше. Данный способ можно легко назвать универсальным, так как с помощью него можно ограничить количество слов не только для функции the_excerpt() но и для the_content(), мало того, с помощью него можно ограничить количество выводимых слов для названия поста (the_title()). Здесь все выполняется с помощью одной простой функции — wp_trim_words(), которая принимает три параметра, первый — текст который нужно ограничить, второй — количество слов, которое нужно выводить и третий — строка, которая нужно выводить вконец обрезанной строки. Во пример:


wp_trim_words( get_the_excerpt(), 20, '...' ); // post excerpt
wp_trim_words( get_the_content(), 20, '...' ); // post content
wp_trim_words( get_the_title(), 20, '...' ); // post title

И третий вариант обрезки анонса, который, как я уже говорил выше чаще всего я использую, выполняется с помощью функции:

function limit_words($str, $limit)
{
  $words = explode(' ', $str, ($limit + 1));
  if(count($words) > $limit) {
  array_pop($words);
  return implode(' ', $words)."..."; } else {
  return implode(' ', $words); }
}

Данная функция принимает два параметра:

$str – строка которую нужно обрезать;
$limit — количество слов до которого нужно обрезать указанную строку.

Подробно описывать каждую строку функции не буду, так как если вы хоть немного знакомы с php, то и так все поймете.

Как и с функциями описанными выше данный код нужно вставить в файл functions.php вашей темы. Что касается вызова данной функции,  то в том месте где вы обычно выводите цитату — это функция:

the_excerpt();

Нужно прописать вызов нашей функции с передачей нужных параметров:

echo limit_words(get_the_excerpt(), 20)

Я думаю вы поняли, что функция get_the_excerpt() (это стандартная функция вородрес) возвращает нам цитату, а вторым параметром мы указываем, что наша цитата должна быть ограничена 20 -тью словами.

Все, на этом буду заканчивать, теперь вы знаете как обрезать поле цитата в wordpress. До новых встреч!!!