Меняем шаблон для всех записей рубрики в WordPress

16 августа 2016 133

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

Reg.ru: Регистрируем домены в любой зоне мира
Reg.ru: Регистрируем домены в любой зоне мира

Один внимательный читатель совершенно верно заметил, что в WordPress нельзя сделать шаблон для всех записей рубрики. Имеется в виду single.php. Да, действительно, привычным способом это сделать не получится.

В single.php можно задать индивидуальный шаблон лишь для конкретных записей. Например, сверстав его заранее, назначать каждый раз при публикации. Что применимо далеко не во всех случаях. С недавних пор, а именно начиная с WordPress версии 4.4, появился встроенный механизм шаблонов записей такого вида: single-{post-type}-{slug}.php. Где {post-type} — тип данных, а {slug} — короткое имя записи. То есть для стандартных записей, нужно указывать тип данных post, для кастомных (CPT) соответствующие им имена. Ну, а {slug}, напомню, это короткое имя записи, которое указывается в URL записи.

Так как же в WordPress создать шаблон для записей конкретной категории?

На самом деле всё очень просто. Для этого можно воспользоваться небольшим хуком, который традиционно размещаем в файле functions.php активной темы или в функциональном плагине сайта.

add_filter('single_template', create_function(
	'$the_template',
	'foreach( (array) get_the_category() as $cat ) {
		if ( file_exists(TEMPLATEPATH . "/single-{$cat->slug}.php") )
			return TEMPLATEPATH . "/single-{$cat->slug}.php"; }
		return $the_template;' )
);

В результате, мы сможем создавать шаблон для записей рубрик следующим образом: single-{cat-slug}.php. Где {cat-slug} — короткое имя рубрики.

И всё.

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

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

Комментарии

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

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

Подробнее