Разная длина анонсов записей рубрики WordPress

15 августа 2016 2

Рубрики (categories) — одна из стандартных таксономий WordPress, с помощью которой можно группировать между собой тематически связанные публикации. 

20 новейших лендингов для Вордпресс 2018 года

Благодаря рубрикам, заметно упрощается поиск, восприятие материала посетителями сайта. Сложно представить полноценный информационный ресурс без нормального рубрикатора. В WordPress кроме всего прочего рубрики поддерживают многоуровневую структуру, что позволяет создавать сложные иерархии и более точно структурировать контент сайта.

Рубрики в WordPress доступны по-умолчанию и используются практически на всех сайтах. Причём часто рубрики — единственная используемая на сайте таксономия. В связи с чем, бывает необходимость для разных рубрик делать разный вывод контента. В WordPress такие вещи очень легко реализуются с помощью соответствующих файлов-шаблонов архивов рубрик: category-{ID}.php и category-{slug}.php. Например, для изменения шаблона архива записей рубрики «Новости» с ID = 1 можно создать шаблон category-1.php или category-news.php (для slug = news) и внести в нём все необходимые изменения.

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

Напомню, что длина анонса записей в WordPress регулируется с помощью фильтра excerpt_length. К примеру, чтобы увеличить дефолтные 55 слов до 64-х, в файл functions.php необходимо добавить следующий код.

function custom_excerpt_length() {
	return 64;
}
add_filter('excerpt_length', 'custom_excerpt_length');

Немного его модернизировав, можно задать длину анонса для любой из рубрик. Например, для записей из рубрики с ID = 1 будут выводиться анонсы из 64-х слов, из рубрики с ID = 2 — 128, а из остальных — дефолтные 55. Причём это будет работать во всех стандартных циклах сайта.

add_filter('excerpt_length', 'my_excerpt_length');
function my_excerpt_length($length) {
	if(in_category(1)) {
		return 64;
	} elseif (in_category(2)) {
		return 128;
	} else {
		return 55;
	}
}

Разумеется, можно пойти дальше и кастомизировать не только длину анонса, но и другие атрибуты записей. Причем, условия могут касаться не только присвоенных рубрик, а быть самыми разными.

Всё самое новое и интересное я публикую в своём Телеграм-канале. Подписывайтесь!

Иван Данилин
Автор: Иван Данилин

Практикующий веб-разработчик, специализируюсь на платформе Вордпресс.

Комментарии
  1. Добавил
    function custom_excerpt_length() {
    return 64;
    }
    add_filter(‘excerpt_length’, ‘custom_excerpt_length’);

    Но ничего не поменялось. Использую Divi

Добавить комментарий

Лидер среди российских регистраторов доменных имён и хостинг-провадейров
Подробнее