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

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

У каждой категории есть свой 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

Кодинг, дизайн, wordpress

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

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

    Ответить
  2. zetrider автор

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

    Ответить
  3. answersolid

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

    Ответить
  4. Михаил

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

    Ответить