Смена стиля WP в зависимости от рубрики
Написал маленькую функцию смены стилей в зависимости от рубрики. Хотя «написал» — сказано с натяжкой.
Если попутешествовать по раздела моего блога можно увидеть, что некоторые разделы приобретают свою «раскраску».
Так же и главная страница блога приобретает цвет в зависимости от рубрики последней записи.
От слова к действию
В файле шаблона, в хедер вставляем вот такой простенький код
<?php
$category = get_the_category();
$category = $category[0]->cat_name;
if ($category == "jQuery"){echo '<link rel="stylesheet" href="';bloginfo('template_url');echo'/jquery.css" type="text/css" media="all">';}
if ($category == "WordPress"){echo '<link rel="stylesheet" href="';bloginfo('template_url');echo'/wordpress.css" type="text/css" media="all">';}
?>
Объяснять думаю не имеет смысла и так всё ясно. Если будут вопросы, спрашивайте в комментариях.
Если у Вас не получается определить рубрику, то поможет простой код:
<?php
$category = get_the_category();
echo $category[0]->cat_name;
?>
Вставьте его в любом месте шаблона, например сразу после открывающего тега body.
Затем перейдите в нужную рубрику и Вам в верху страницы выведется название рубрики, которое необходимо вписать в код.
Усё! 🙂
А как сделать тоже самое, но в зависимости от страниц?
Что бы у каждой страницы можно было сделать свой css стиль…
Для отдельной страницы, равно как и для отдельной записи можно через get_the_ID()
Создаем сначала переменную для удобства в которую заносим ID записи
Затем уже добавляем условие:
Если будешь добавлять в условие, то соответственно надо встраивать через elseif
Вместо 999 разумеется ID записи. Посмотреть можно через
Так же для отдельной страницы, можно сделать индивидуальный дизайн/верстку. Для этого создаешь в папке шаблонов файл nazvanie_faila.php, в нём создаешь нужный дизайн (в смысле шапку свою если надо, и прочее…смотри как другие файлы сделаны, например page.php). Затем на странице редактирования записи в админке в «Атрибуты страницы» выбираешь свой новосозданный шаблон. ВНИМАНИЕ, если там не появится шаблон с названием твоего файла, то возможно ты назвал его системным именем, возможно надо будет переименовать файл.
Да! Спасибо! Получилось!
Кстати, в гугле я больше не нашел ни у кого, как это делается…
Может стоит подробную статью написать про css и страницы? Вообще, вопросы разного графического оформления разных страниц в WP, как-то совершенно не проработаны…
На здоровье 🙂
Спасибо! Ну я и стараюсь писать то, чего нет. Не занимаюсь рерайтами. Разве что переводами иногда.
Я планировал продолжить эту тему…продолжение есть в Скрипт смены стиля пользователем в WP и не только, в черновиках весит ещё продолжение не дописанное, но так руки и не доходят дописать.
Или ты про другое?!
Какие? Если есть вопросы, то спрашивай. Если есть предложения какие-то по более обширной теме — то с удовольствием выслушаю.
Спасибо!
Да, есть вопрос…
Возможно ли прикрутить к странице «Рубрику» или «Метку»? Что бы название страницы тоже попала в список рубрик.
Хочется, что бы в облаке меток (которое WP-Cumulus) крутились не только имена рубрик и меток записей, но и имена страниц…
Думаю что такого нельзя или я этого способа не знаю. Ведь не просто так сделали разделение на страницы и рубрики. Хотя конечно можно всё, но заниматься я этим вопросом не буду, ибо нецелесообразно. Есть другой, более оптимальный способ — это в админке зайти в Дизайн -> Меню и создать своё меню, в которое можно поместить как страницу, так и запись.
А смысл? Зачем смешивать мух с котлетами? Лучше вот на основе этой статьи сделать свой виджет. Может с помощью функции wp_get_recent_posts() можно попробовать и добавить, но я этим плагином (WP-Cumulus) не пользуюсь, поэтому подсказать не смогу. И вообще, я бы порекомендовал отказаться от этого плагина, ибо флеш уже пережиток прошлого, единственное где он еще имеет вес — это видео/аудио и игры.
Решено!
Спасибо за участие в проблеме
Решение простое до безобразия))) Плагин Simple Tags
Спасибо! Очень полезно! А как сделать так, чтобы просто менялось название блога (то есть то, что выводит bloginfo и description в зависимости от того, на какой я странице?
Заранее спасибо!
Антон, для этого есть СЕО плагины. Я пользуюсь HeadSpace2
рррр… писала такое длинное обращение, и, на тебе, картинки выставила неверно (
Напишу покороче. 🙂
Помогите, пожалуйста, модифицировать Ваш замечательный код, чтоб зависимость была не от названия рубрики (они на русском), а от ярлыка родительской рубрики, с проверкой — не является ли эта рубрика первым родителем. Как-то так. У меня не получилось сделать это самостоятельно (
Заранее спасибо!
get_the_category()
Проверка на родителя
Получить ярлык, он же slug
Стоит обратить внимание на НОЛЬ — дело в том, что может быть несколько категорий у одной статьи и в данном случае мы берем только первую категорию, игнорируя остальные. Если надо и остальные проверять, то надо цикл делать.
Ага… Нет, вложенность будет линейная. Надеюсь. 🙂
Спасибо! Но вот это:
$category = get_the_category();
$category = $category[0]->slug;
Это же для текущей категории. Да? А как вывести ярлык именно родителя? То есть, как я это вижу по-человечески:
Если это родитель, то переменная = ярлык рубрики, если — нет, то переменная = ярлык первого родителя. Так возможно?
Нет, неправильно я написала. Если это ПЕРВЫЙ родитель. Так, наверное, невозможно… 🙁 А, если и возможно, то код наверняка сложный
Как-то так
Вот так лучше условие
Ух ты!… Но, скорее всего, я недопоняла, совсем уж тупка в программировании. Вот, я в футер вставила такое:
Захожу в категорию wood, пишет: нет категории, захожу в wood\wood1, пишет: нет категории.
Проверил, работает. Только обязательно — рубрика не должна быть пустая, в ней должна быть запись.
Если будут ошибки, обращайся.
Вроде, работет. По крайней мере, в футер выводится нужная инфа. Я неделю уже мучаюсь, а Вы так быстро всё решили! Восторгу моему нет предела! Спасибо! Огромное, преогромное! :))