Разные шаблоны для категорий и страниц записей

27
Июль
2011

Разные шаблоны для категорий и страниц записей в WordPress

На днях, при верстке сайта под WordPress, я столкнулся с вопросом: «как для разных страниц записей и, соответственно, категорий выводить определенный шаблон?». Решение не заставило себя долго ждать и немножко поgoooogleв, я нашел как провернуть эту манипуляцию. Но, просто узнать и запомнить о данном решении мне мало, и я хочу поделиться этим со своими читателями. Возможно, кто-то и знает об этих методах, тогда он молодец! :-D

Не знаю, может в WordPress 3.x этот вопрос можно решить в несколько кликов, но я, по крайней мере, не в теме. Так что будем реализовывать проверенными методами.

Шаблон для категории

Все мы знаем, что для отображения категорий могут использоваться шаблоны: «category.php», «archive.php», «index.php». Но так как «category.php» не часто встречается в темах WP, то используются обычно два остальных файла.

Давайте начнем!

  1. Для начала заходим в админку WP в раздел с категориями (Записи > Рубрики) и узнаем ID требуемой категории (жмем «Редактировать» возле категории, открывается страница, адрес которой в браузере выглядит приблизительно так: http://www.АДРЕС_ВАШЕГО_САЙТА/wp-admin/categories.php?action=edit&cat_ID=32). Цифры в конце ссылки и есть ID категории. Для примера возьмем вымышленную категорию с ID=32.
  2. Теперь создаем файл и называем его «category-32.php». Не трудно догадаться, что 32 - это ID требуемой категории. В Вашем случае ID явно будет другим.

Также мною лично было проверено, что вместо ID можно использовать название ссылки категории. К примеру, категория с ID=32 называется «Портфолио» и её ссылка (которая указывалась при создании) имеет название «portfolio». Тогда название файла шаблона будет таким: «category-portfolio.php». По крайней мере, у меня все сработало :)

Всё! Осталось только отверстать свежеиспеченный файл под ваш вкус и категория, которую Вы указали, будет выглядеть не так, как все.

Шаблон для страницы записи

Для страницы записи собственный шаблон задается немножко по другому. Для этого вам нужно:

  1. Создать файл шаблона и назвать его «single-portfolio.php»;
  2. Сделать копию файла «single.php» и назвать её, к примеру, «single-default.php».
  3. Открыть файл «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».

Надеюсь, Вам все было понятно. Если что, спрашивайте в комментариях! ;)

Запланирована свадьба? Не определились еще с фотографом? Фотограф на свадьбу в Самаре нужен?

Подписаться на RSSВы можете подписаться на RSS или на E-mail рассылку:

Оставить комментарий с помощью формы ВКонтакте

Комментариев (56) к “Разные шаблоны для категорий и страниц записей”

  1. Ruson пишет:

    И еще один вопрос, когда я добавил подкатегории в уже новой измененной категории, то новый созданный шаблон на них не влияет, как сделать чтобы все вложенные подкатегории тоже брали шаблон с уже нового созданного файла?

  2. slava пишет:

    Не пойму как подключать созданный файл category-32.php ? В вордпресс указывать шаблон можно только для страниц page, а для категорий выбора шаблона нет.

  3. jack пишет:

    спасибо, что-то мозги не смекнули, идейка класс

  4. Игорь пишет:

    А кто подскажет как изменить в коде комментариев для новых рубрик. Вот создал я две новые рубрики и хочу чтобы на страницах в этих категориях комментарии выглядели по разному, ведь по логике это возможно. Скорее всего нужно создать и новые single.php (single2.php) и уже в них вместо прописать соответственно и в новых рубриках также изменить на . Если я прав ответьте. Ну а автору думаю есть ещё что писать на эту тему. И чем подробнее именно с действия куда воткнуть как изменить будет только большой плюс.

  5. Sergey пишет:

    Шаблон для страницы записи:

    Просто надо создать свой темплейт wp-content/themes/ в папке своей темы вида custom-template-xxxxxxxxxxxxxx.php, где xxxxxxxxxx это название шаблона будущей страницы страницы. Делаете там свои headers и footers, т.е. содержимое как в файле single.php или page.php. Единственное отличие – в начале файла пишем:

    А потом заходите на любую страницу в админке -> pages и видите что у вас доступен новый пункт – выбрать шаблон по умолчанию или тот что вы создали, т.е. Праздники – Feasts.

  6. Sergey пишет:

    Единственное отличие – в начале файла пишем:

    в коде сверху пробелы убрать!