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

15 августа 2016 51

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

Kwork: Все онлайн-услуги по 500 руб.
Kwork: Все онлайн-услуги по 500 руб.

Благодаря рубрикам, заметно упрощается поиск, восприятие материала посетителями сайта. Сложно представить полноценный информационный ресурс без нормального рубрикатора. В 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;
	}
}

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

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

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

Комментарии

Разгоните свой WordPress

Хостинг-провайдер номер один в России — REG.RU

Подробнее