НАВИГАЦИЯ

АПТЕКА

ПОПУЛЯРНЫЕ НОВОСТИ

Партнеры

Реклама

Полезная информация » CMS » WordPress » ID родительской страницы верхнего уровня: расширяем функцию body_class

ID родительской страницы верхнего уровня: расширяем функцию body_class

Небольшая информация
Название: ID родительской страницы верхнего уровня: расширяем функцию body_class
Категория: CMS » WordPress
Просмотров: 2164
Тип использование и скачивания: Бесплатный если с Файлообменников.
Добавлен: 30-05-2012, 20:52
Автор: fakel
Мнение людей: Обсудить на форуме

Поделиться новостью
Подписка на файлы
Дополнительная информация
ID родительской страницы верхнего уровня: расширяем функцию body_class

Столкнулся с одним интересным примером, показывая, поскольку возможно расширить функцию body_class () (см. описание).

body_class был введен в версии 2.7 и очень удобен для стилизации определенных должностей, страниц, присоединил страницы и т.д. Один из minuses стилизации связанных страниц — она, если мы смотрим на связанную страницу 3, 4, 5... уровни, мы будем видеть, что описание класса рядом, выдерживающим родительскую страницу, вместо родительской страницы высшего уровня, добавлено. Но что сделать, если мы должны облокотиться на родительскую страницу высшего уровня и если текущая страница — присоединилась к нему (не очень хорошо что уровень), чтобы определить им специальные стили.

Подобная проверка, которую возможно вывести, позволял нам принимать, любой блок в сайдбаре только для страниц одного "отделения" — для родительской страницы и для всех ее предков любого уровня.

Для просто реализации такой задачи есть встроенный WordPress — get_post_ancestors функция (). C его помощь мы можем получить удостоверение личности родительской страницы высшего уровня.

Давайте смотреть на пример, показывая относительно стандартных классов body_class (), чтобы добавить родителя уровня вершины класса pageid 123. Кодекс, как обычно, вставлен в файл шаблона функций
add_filter('body_class','top_level_parent_id_body_class');
function top_level_parent_id_body_class($classes) {
    global $wpdb, $post;
    if (is_page()) {
        if ($post->post_parent)  {
            $ancestors=get_post_ancestors($post->ID);
            $root=count($ancestors)-1;
            $parent = $ancestors[$root];
        } else {
            $parent = $post->ID;
        }
        $classes[] = 'top-level-parent-pageid-' . $parent;
    }
    return $classes;
}


После того, как мы вставим этот кодекс в functions.php, функция body_class (), кроме другого, выведет класс "главный родитель уровня pageid 123", где 123 — удостоверение личности родительской страницы высшего уровня.






Место для Вашей рекламы - баннер - обращаться в КОНТАКТЫ