На днях, при верстке сайта под WordPress, я столкнулся с вопросом: «как для разных страниц записей и, соответственно, категорий выводить определенный шаблон?». Решение не заставило себя долго ждать и немножко поgoooogleв, я нашел как провернуть эту манипуляцию. Но, просто узнать и запомнить о данном решении мне мало, и я хочу поделиться этим со своими читателями. Возможно, кто-то и знает об этих методах, тогда он молодец!
Не знаю, может в WordPress 3.x этот вопрос можно решить в несколько кликов, но я, по крайней мере, не в теме. Так что будем реализовывать проверенными методами.
Шаблон для категории
Все мы знаем, что для отображения категорий могут использоваться шаблоны: «category.php», «archive.php», «index.php». Но так как «category.php» не часто встречается в темах WP, то используются обычно два остальных файла.
Давайте начнем!
- Для начала заходим в админку WP в раздел с категориями (Записи > Рубрики) и узнаем ID требуемой категории (жмем «Редактировать» возле категории, открывается страница, адрес которой в браузере выглядит приблизительно так: http://www.АДРЕС_ВАШЕГО_САЙТА/wp-admin/categories.php?action=edit&cat_ID=32). Цифры в конце ссылки и есть ID категории. Для примера возьмем вымышленную категорию с ID=32.
- Теперь создаем файл и называем его «category-32.php». Не трудно догадаться, что 32 - это ID требуемой категории. В Вашем случае ID явно будет другим.
Также мною лично было проверено, что вместо ID можно использовать название ссылки категории. К примеру, категория с ID=32 называется «Портфолио» и её ссылка (которая указывалась при создании) имеет название «portfolio». Тогда название файла шаблона будет таким: «category-portfolio.php». По крайней мере, у меня все сработало
Всё! Осталось только отверстать свежеиспеченный файл под ваш вкус и категория, которую Вы указали, будет выглядеть не так, как все.
Шаблон для страницы записи
Для страницы записи собственный шаблон задается немножко по другому. Для этого вам нужно:
- Создать файл шаблона и назвать его «single-portfolio.php»;
- Сделать копию файла «single.php» и назвать её, к примеру, «single-default.php».
- Открыть файл «single.php», удалить все содержимое и вставить следующий код:
<?php $post = $wp_query->post; if (in_category('32')) { include(TEMPLATEPATH.'/single-portfolio.php'); } else { include(TEMPLATEPATH.'/single-default.php'); } ?>
или вместо ID категории можете вставить название ссылки категории:
<?php $post = $wp_query->post; if (in_category('portfolio')) { include(TEMPLATEPATH.'/single-portfolio.php'); } else { include(TEMPLATEPATH.'/single-default.php'); } ?>
Как видите, мы указываем WP: если категория с ID=32 (или с названием «portfolio» - см. 2 вариант кода), тогда следует использовать шаблон для страниц записей «single-portfolio.php», но если категория имеет другой ID, тогда следует использовать шаблон «single-default.php».
И на этом также всё, Вам осталось только отверстать файл «single-portfolio.php» и все записи в указанной категории будут иметь свой вид.
Конечно же, можете называть файлы как хотите, кроме «single.php».
Надеюсь, Вам все было понятно. Если что, спрашивайте в комментариях!
Запланирована свадьба? Не определились еще с фотографом? Фотограф на свадьбу в Самаре нужен?
И еще один вопрос, когда я добавил подкатегории в уже новой измененной категории, то новый созданный шаблон на них не влияет, как сделать чтобы все вложенные подкатегории тоже брали шаблон с уже нового созданного файла?
Не пойму как подключать созданный файл category-32.php ? В вордпресс указывать шаблон можно только для страниц page, а для категорий выбора шаблона нет.
спасибо, что-то мозги не смекнули, идейка класс
А кто подскажет как изменить в коде комментариев для новых рубрик. Вот создал я две новые рубрики и хочу чтобы на страницах в этих категориях комментарии выглядели по разному, ведь по логике это возможно. Скорее всего нужно создать и новые single.php (single2.php) и уже в них вместо прописать соответственно и в новых рубриках также изменить на . Если я прав ответьте. Ну а автору думаю есть ещё что писать на эту тему. И чем подробнее именно с действия куда воткнуть как изменить будет только большой плюс.
Шаблон для страницы записи:
Просто надо создать свой темплейт wp-content/themes/ в папке своей темы вида custom-template-xxxxxxxxxxxxxx.php, где xxxxxxxxxx это название шаблона будущей страницы страницы. Делаете там свои headers и footers, т.е. содержимое как в файле single.php или page.php. Единственное отличие – в начале файла пишем:
А потом заходите на любую страницу в админке -> pages и видите что у вас доступен новый пункт – выбрать шаблон по умолчанию или тот что вы создали, т.е. Праздники – Feasts.
Единственное отличие – в начале файла пишем:
в коде сверху пробелы убрать!