Всем привет сегодня расскажу как сделать индивидуальный шаблон для постов внутри разных категорий в WordPress.
WordPress предусматривает индивидуальные шаблоны для отдельных постов, просто создав single-{id,slug}, однако, иногда необходимо, чтобы уникальный шаблон был для всех постов внутри определенной категории. Например, для вывода детальной новости – шаблон один, а для детальной записи в блоге – шаблон другой. Можно для каждой записи дублировать шаблон single-{id,slug}, но есть более удобное решение.
Для того, чтобы задать индивидуальный шаблон постов внутри определенной категории – необходимо править файлfunctions.php внутри вашей темы. Добавим следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 | add_filter('single_template', 'my_single_template'); function my_single_template($single) { global $wp_query, $post; foreach((array)get_the_category() as $cat) { if(file_exists(get_template_directory() . '/single-' . $cat->slug . '.php')) { return get_template_directory() . '/single-' . $cat->slug . '.php'; } elseif(file_exists('/single-' . $cat->term_id . '.php')) { return get_template_directory() . '/single-' . $cat->term_id . '.php'; } } } |
Данный код перед обращением к файлу single.php для генерации страницы пытается найти файлы single-{slug,term_id}, где slug и term_id – алиас категории или её идентификатор.
Например, у нас есть рубрика “Комнаты” с алиасом rooms, создадим single-rooms.php файл и теперь все записи внутри рубрики “Комнаты” будут выводиться по шаблону файла single-rooms.php.
Материал сайта: pyatilistnik.info
А не подскажите индивидуальные шаблоны сайтов?
Скромно, но со вкусом
Спасибо за отличный пост.
Спасибо, хорошая статья.
А вы можете такой сделать?
Ну если нужно могу помочь.