Как сделать свой шаблон для всех записей из категории

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

У каждой категории есть свой ID и SLUG.
ID – представляет из себя «уникальный порядковый номер» категории
SLUG – это название категории на английском языке

В файл functions.php вашей темы нужно прописать один из ниже представленных кодов, первый определяет шаблон для всех записей находящихся в категории по SLUG, а второй по ID:

ПО SLUG:

// single для категорий по SLUG
add_filter('single_template', create_function('$t', 'foreach( (array) get_the_category() as $cat ) 
{ 
if ( file_exists(TEMPLATEPATH . "/single-{$cat->slug}.php") ) return TEMPLATEPATH . "/single-{$cat->slug}.php"; 
} 
return $t;' ));

ПО ID:

// single для категорий по ID
add_filter('single_template', create_function('$t', 'foreach( (array) get_the_category() as $cat ) 
{ 
if ( file_exists(TEMPLATEPATH . "/single-{$cat->term_id}.php") ) return TEMPLATEPATH . "/single-{$cat->term_id}.php"; 
} 
return $t;' ));

Что-то не понятно? Спрашивай в комментариях.

Автор zetrider 32 Articles
Кодинг, дизайн, wordpress

4 Комментарии

  1. Спасибо – интересное решение. Я пользуюсь вот этим способом – https://n-wp.ru/5960.
    Насколько я понял, single-ID.php или single-SLUG.php должны быть предварительно созданы?

  2. Да конечно, просто даем wordpress понять что для категории N задаем всем записям шаблон single-ID.php или single-SLUG.php
    p.s. завтра выложу плагин связанный с этой записью.

  3. А как сделать единый шаблон записи для нескольких категорий без создания одинаковых single-SLUG.php для каждой?

  4. В дочерней теме не работает, приходится кидать файлы в родителскую тему, а это не удобно. Можно ли изменить функцию так, чтобы файлы можно было поместить в дочернюю тему

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*