Advanced WordPress Ориентация с body_class_plus () 10 комментариев Так, например, когда вы вошли в WordPress и просмотра главной страницы вашего блога, body_class () тега приведет сомething так: <

Поскольку WordPress 2.8, мы можем направлены на определенные просмотров страниц с помощью CSS нового body_class () тег. Предназначенного для использования в элементе <body>, body_class () выводит различные атрибутов класса в соответствии с действующимТип просмотра страницы. Это позволяет применять странице конкретного Styling таких как текущая страница навигации выделения и другие отличный трюков CSS.

Преимущества и недостатки body_class () тега

Для непосвященных, здесь быстро ReviEW из body_class () тег. Когда используется следующим образом:

<тело <? PHP body_class ();?>>

Body_class () тега выведет следующие имена классов в зависимости от текущего типа странице:

. Главная страница - имя класса, для выхода на главную страницу. Архив --Класс имя выходного для любой странице архива. категорию - имя класса, выход для любой категории страницу. Поиск - имя класса, выход для любой страницы поиска. Tag - имя класса, выход для любой странице архива тега плюс многое другое ..

Так, например, когда вы вошли в системуна WordPress и просмотра главной страницы вашего блога, body_class () приведет к тегам в нечто вроде этого:

<body class="home блог logged-in">

Или, если вы были, и посещение вашего "категория Asides Архив", ваш источник сотрудничестводе будет включать следующее:

<body категорию class="archive category-asides">

Эта функциональность позволяет, например, применить стили к статье <h1> элементы на всех страницах поиска:

body.search h1 (background-BOTTOM: 1px Sзловонный # FFFF99; COLOR: # FFFF99;)

Аналогичным образом, вывод имен классов по body_class () тега позволяет целевой Условно любого элемента на любом типе страниц, тем самым значительно увеличивая стилистическая гибкость WordPress. Однако, несмотря на своюAwesomeness, body_class () является по существу "все или ничего" предложение. Мы можем применить стили для всех страниц категорий, всех страниц поиска, все страницу страниц, и так далее. Мы даже можем использовать CSS сцепления для всех категорий целевых мнения, когда пользователь регистрируется иN:

. home.logged в (background: 100px твердыми красными;)

Это мощная, да, но что, если мы хотим, чтобы цели, скажем, всех категорий, которые включают термин "услуги" в категории пули? Конечно, мы могли бы заявить каждого из них в отдельности, ЛикE следующим образом:

. Категория-кофе-службе (цвет: красный;). Категория-бранч-услуг (цвет: красный;). Категория-сервизы (цвет: красный;). Категория-закуски услуги (цвет: красный;). категорию напитки услуги (цвет: красный;). Категория-услуг внутри (COlor: красный;). категорию-дизайн-услуги (цвет: красный;). Категория-служб медико-санитарной (цвет: красный;). категорию услуг-инфо (цвет: красный;). категорию услуг данными (COLOR: Red;). категорию услуг стоимостью (цвет: красный;)

Но это очень неэффективно.Плюс, что если пользователь / клиент, необходимых для создания новых ", связанные с услугами" категорий? Удачи объяснив им, как редактировать файл CSS с соответствующими правилами.

Мы могли бы, я полагаю, используя CSS-3 Wildcard подстрока сопоставления атрибут selectoR:

тела [класс *= "услуг"] (цвет: красный;)

Определенно чище, но существует большое число браузеров, не поддерживающих CSS 3, так что это меньше, чем идеальное решение.

Лучшим решением было бы добавить паттерн функцииtionality к body_class () тег. В конце концов, body_class () отслеживает только о всех возможных типов страниц зрения имеющихся на вашем сайте. Так почему бы не фильтра выходе body_class () для любых случаев "услуг" и выхода определенного классаАтрибут для всех соответствующих страницах. Это позволит нам оценить и применить стили практически любое подмножество просмотров страниц, в том числе новые "услуги, связанные" категории, для наших клиентов сайта. Скажите "до свидания" ручного обновления кода и сказать "чEllo "для автоматизированного Расширенный таргетинг с body_class_plus ().

Расширенный таргетинг с body_class_plus ()

Body_class_plus () тега расширяет функциональность body_class () с помощью выходного РНР буферизации условно оценить ее содержаниеС. Эта функциональность позволяет образцу соответствует конкретной фразы, и выполнить условных операциях на основе содержания body_class ().

Вот body_class_plus (), которая может быть помещена в вашем файле functions.php:

УНОСTe: Существует новая & улучшенную версию этого кода через плагин!

<PHP / / http://digwp.com/2009/08/wordpress-body-class-plus/ функция body_class_plus () (if (function_exists ( 'body_class')) (ob_start (); body_class (); $ класс= Ob_get_contents класс (); ob_end_clean (), если ($ класс) (if (preg_match ( "/ Услуги / I", $ класс)) (эхо '= "Услуги"';) ElseIf (preg_match ( "/ Продукция / I ", $ класс)) (эхо 'класс =" Продукты "';) ElseIf (preg_match (" / Бизнес / I ", $ CLASS)) (эхо 'классу "бизнес"';) ElseIf (preg_match ( "/ удовольствия / я", $ класс)) (эхо 'класс = "удовольствие"';) (другое эхо 'класс = "Нет тела -Class-матч " ';)) другого класса (эхо' =" теле-класс-не-доступны " ';)))?>

ТО вызове этой функции в вашей теме шаблон, включить следующий тег в элемент по своему выбору (например, в элементе <body>):

<? если PHP (function_exists ( 'body_class_plus')) (body_class_plus ();)?>

Это пример В.Е.rsion из body_class_plus (), которая позволит нам оценить и применения конкретных атрибутов класса на любую страницу или категорию, содержащие следующие термины в URL / Page-пули:

"Услуги" - будут применяться классу "услуги" "продукты" - будетприменять класс = "продукты" "Бизнес" - будет применяться классу "бизнес" "удовольствия" - будут применяться класс = "удовольствия"

Это облегчает чтобы соответствовать конкретным группам категорий, страниц, должности, или любую их комбинацию. Даже лучше, body_class_pluS () функция позволяет сделать больше, чем применять классы целевым типам страниц. В дополнение или вместо того, чтобы, применяя к конкретным классам группы страниц, вы можете реализовать любые функциональные лучшего. Например, вы могли показать темпконце метки, эхо содержание или выполнить пользовательские сценарии в зависимости от типа страницы. Возможности бесконечны.

Скачать плагин

Если пользовательские функции не являются вашими Тханг, и вы предпочитаете осуществлять такую функциональность с помощью плагинов, вы можете захватить егоздесь:

теле-Class-plus_v02.zip (последняя версия) теле-Class-plus_v01.zip (оригинал-релиз)

Благодаря Петру Kahoun за вклад своим опытом и повышение функциональности этого плагина.

Забирать домой сообщении

Принимать, я домой сообщенииS что body_class_plus () функция расширяет функциональность body_class () метки для целей и применять стили к любой конкретной подмножества или комбинации типов страниц. Кроме того, body_class_plus () принимает body_class () вне сферы CС.С., позволяющие применить шаблон теги, PHP, и другие сценарии практически любые пользовательские определенным набором страниц и типы страниц.

Полный список body_class () значения атрибутов

Вот полный список доступных классов для body_claSS () тега:

RTL Главная Блог Архив поиск по дате Paged вложений error404 одного дан-(ID) Номер вложения-(ID)-вложений (MIME-тип) Автор Автор-(user_nicename) категория категория-(пули) TAG-тегов (пули) страницу родителем-страница ребенка родителю-PageID-(ID) волE-шаблон страницы-шаблона (шаблон имени файла) поиск результатов поиска результатов не вошедшего в выгружаемый-(номер страницы) одно-страничных-(номер страницы) Page-страничных-(номер страницы) Категория-страничных-( номер страницы) TAG-страничных-(номер страницы) Дата-страничных-(номер страницы) автор-страница D-(номер страницы) Поиск-страничных-(номер страницы)

Дополнительные способы динамического набора тело удостоверений, проверить мою статью 9 способов установить динамичное тело идентификаторов через PHP и WordPress.

PX 10px; "> Как стать? Получить книгу!
Узнайте, как отвечать на ваши навыки веб-дизайна на новый уровень путем создания сайтов с WordPress.
Подпишитесь сейчас специальная скидка - Coming Эта осень!

© 2009 копаться в WordPress | Permalink| 14 комментариев | Добавить в Delicious
Категория: Дизайн, Плагины | Tagged: тело, CSS, функции PHP, плагин, теги