Индивидуальный шаблон для рубрики

Всем привет :arrow:

Сегодня хочу рассказать об очень интересной вещи, а именно о различном оформлении каждой рубрики сайта, работающего на WordPress. Уже давно хотел об этом написать. Кроме того, недавно один из моих читателей, Александр,  задал мне вопрос :

А можно ли таким образом сделать вывод разных изображений для трёх разных категорий вместо названия категории?

Если вам нужно для каждой рубрики вывести статический текст, то вам стоит почитать статейку – вывод описания категории, которая достаточно плотно связана с инструкцией про title для категории без плагина. В этом же посте пойдет речь о более сложных вещах, таких как:

  1. разные картинки для каждой рубрики
  2. разный фон или цветовое оформление для каждой категории
  3. разные шаблоны для рубрик
  4. и прочие схожие вещи

Если вас интересует конкретно визуальное оформление, то вам стоит почитать - разный CSS для категорий

Начну с общей системы решения этой задачи.

Уникальное оформление для рубрики

Для начала работы нам потребуется узнать id категории, для которой будем делать индивидуальный шаблон, если вы не знаете как его узнать, что читайте – как узнать id рубрики

Для того, чтобы делать оформление категорий уникальным, нам потребуется вставить условие в код категории:

<?php 
if (in_category('ID')) {****}
?>

if=если

in_category(‘id’) – вместо id нужно вписать id той категории, для которой мы делаем изменение.

*** – вместо звездочек вписываем то, что нужно сделать для категории с указанным id.

Такое условие нужно вставить столько раз, сколько категорий нужно сделать различными.

Если у вас появится вопрос, связанный с этим постом, а именно "как сделать разные ***** для разных категорий", то пишите в комментариях, и я буду дополнять этот пост и заодно помогать вам :idea:

Вставить в каждую категорию свою картинку

Начну с ответа на вопрос Александра.

Нам нужно в три категории вставить три разные картинки. Допустим id этих категорий 4,5 и 1.

Открываем редактор категории "админка-внешний вид-редактор-category.php" и сразу после  кода:

<?php get_header(); ?>

Вставляем код:

 

<?php 
if (in_category('1')) {
?><img src="ссылка на картинку 1"><?php
}
if (in_category('2')) {
?><img src="ссылка на картинку 2"><?php
}
if (in_category('3')) {
?><img src="ссылка на картинку 3"><?php
}
?>

Как это выглядит на примере темы Twenty Eleven:

разные картинки в категориях wordpress

Так же к этим картинкам можно добавить стили прямо в коде, например, выровнять по центру:

if (in_category('3')) {
?><div align="center"><img src="ссылка на картинку 3"></div><?php
}
?>

Важное замечание: не называйте "Ярлык рубрики", т.е. то обозначение которое попадает в url цифрами, в противном случае может произойти конфликт.

ярлык рубрики wordpress

Дело в том, что функция "in_category(‘ID’)" в роли ID может выбрать один из двух параметров:

  1. Id рубрики
  2. ярлык рубрики

Пример конфликта:

у вас ID рубрики = 5, ярлык этой же рубрики вы ранее назвали "7 ". После чего вы вставляете условия:

<?php 
if (in_category('5')) {
?><img src="ссылка на картинку 1"><?php
}
if (in_category('7')) {
?><img src="ссылка на картинку 2"><?php
}
?>

В этом случае в категории с ID 5 (первое условие) отобразится картинка 1,  при этом, пройдя второе условие, в этой же категории выведется картинка 2, потому что ярлык этой рубрика называется "7″.

Таким образом, вы можете делать индивидуальные вещи для разных рубрик ( категорий). Не обязательно, чтобы это была картинка, вы можете вставлять ссылки для разных рубрик:

if (in_category('id')) {
?><a href="тут ваша ссылка"></a><?php
}
?>

Так же это может быть текст:

if (in_category('3')) {
?>
<p>здесь будет</p>
<p>разный текст</p>
<?php
}
?>

Все упирается лишь в ваши потребности и фантазию

Разные шаблоны для рубрик (категорий)

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

Чтобы это реализовать,  подготовьте заранее нужный шаблон. Отдельный шаблон ( или шаблоны, если их несколько) должны быть расположены в той же папке, что и файл category.php.

Для примера сделаем особый шаблон для рубрики с id=4, шаблон будет называться category1.php (он у меня точно такой же как и оригинал) и для проверки работоспособности сделаем так(какое-нибудь отличие, у меня это текст):

разные шаблоны для рубрики

Если все будет правильно, то в рубрике с id=4 будет выводится текст "йа особая рубрика".

Теперь, чтобы в разных рубриках отображался нужный нам шаблон, требуется редактировать файл category.php. Для этого заходим "админка > внешний вид > редактор > ищем category.php"

<?php 
if (in_category('4')) {
 include(TEMPLATEPATH.'/category1.php');}
else { ?>
**** тут стандартный код вашего category.php****
<?php }; ?>

Как это выглядит на практике?

Вот скриншот изначального кода рубрики:

уникальный шаблон категории

Как правильно вставить код:

Свой шаблон для рубрики wordpress

Красным выделен код, который нужно вставить, чтобы для рубрики с id=4 отображался шаблон category1.php

Синим – стандартный код вашего category.php, он будет работать на вывод постов рубрики, если эти посты не относятся к категории с id=4!

Обратите особое внимание на зеленые области. Весь код, который мы вставляем, должен быть обязательно заключен в открывающие и закрывающие теги php кода.

Получаем вот такой результат:

 индивидуальный шаблон рубрики

Если требуется сделать уникальный шаблон для большего количества рубрик, то это можно сделать аналогичным образом, вставив такой код (суть точно такая же, как и с примером выше):

<?php 
if (in_category('4')) {
 include(TEMPLATEPATH.'/category1.php');}
elseif (in_category('5')) {
 include(TEMPLATEPATH.'/category2.php');}
elseif (in_category('1')) {
 include(TEMPLATEPATH.'/category3.php');}
elseif (in_category('7')) {
 include(TEMPLATEPATH.'/category4.php');}
else { ?>
****тут основной код вашего category.php
 
<?php ;} ?>

Если у вас есть вопросы, то буду рад вас видеть в комментариях!

vsepro100.net был атакован и восстановлен недавно!
У вас быстро открывается сайт vsepro100.net

Добавить статью в соц сеть

Комментарии к: Индивидуальный шаблон для рубрики

  1. Сначала пыталась сделать оформление разделов магазинчика по этой инструкции, но потом почитала соседнюю тему и решила , что все-таки отдельный ксс дает больше возможностей!!

  2. Подскажите пожалуйста, при заходе на рубрику, открывается страница со списком всех записей. Причем записи выводятся полностью. А хотелось бы видеть только анонсы статей в рубрике. Например только 80 слов или первые 150 символов. Тема Twenty Thirteen, пример рубрики без анонсов http://kafenavolne.ru/category/obzor
    Вопрос: куда копать, целый вечер гуглил, но так и не нашел ответа. Может надо править category.php ??

  3. уфф, сделал)) действующий рецепт для создания анонса:
    1. Заходим в консоль -> параметры -> чтение
    2. Меняем "Полный текст" на "Анонс" для каждой статьи в ленте.
    3. В статье поставить тег "далее". Всё )) Ноль кодинга, и после обновления, все останется на своих местах.
    Для тех, кто любит экзотику или анонсы не отображаются:
    Ищем файл для рубрики, в моем случае "category.php" и меняем значение в цикле Loop, после тега пишем две строчки, первую для миниатюры
    ‘alignleft’));?>
    и вторую для анонса статьи

    • Павел Гаврилин

      то что у вас получилось на блоге – это аналог read more, а то что я вам линк кидал – это именно уникальные цитаты, чтобы не было % неуникальности внутри сайта

  4. Светлана Ковалева

    А что делать, если в шаблоне нет файла category.php?

  5. Здравствуйте Павел, у меня вопрос более сложный, как сделать свитчер для рубрик, грубо говоря 2-3 кнопки/надписи не важно (1-шаблон 2-шаблон 3-шаблон) практикуют в интернет магазинах, вывод товара сеткой-списком-таблицей). Реализовал с подключением новых CSS, но страница перезагружается да и плагин грузит сайт. Хочу чтоб прогружался шаблон с другими классами. И CSS был один. Как то так. Жду ответа делал по вашей статье хотя работаю фрилансером, но статья интересная! Спасибо

  6. Подскажите пожалуйста, возможно ли в описание категории вставить музыку, или может после описания?!

  7. подскажите пожалуйста как на определённую категорию сделать вывод постов из шаблона loop.php

  8. статья супер, осталось проверить работает ли на практике

  9. Обожаю вас!!!
    Подключена какая-то тема, и используются шаблоны не category.php, а content.php и стандартная иерархия не работает.. уже весь инет перерыла в поисках как сделать отдельный шаблон для рубрики, include(TEMPLATEPATH.’/category1.php’);} – вот эта строка подключения другого темплейта помогла, т..к совсем не хотелось темплейт вписывать в этот же файл основной… знаний пхп почти ноль, но статья помогла и все заработало!! :!:

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Captcha Captcha Reload

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Подписаться, не оставляя комментарий