Наткнулся на один интересный пример, показывающий как можно расширить функцию body_class() (см. описание).
body_class была введена в версии 2.7 и очень удобна для стилизации определенных постов, страниц, дочерних страниц и т.д. Один из минусов стилизации дочерних страниц — это, если мы посмотрим на дочернюю страницу 3, 4, 5 ... уровней, то мы увидим, что добавляется класс описывающий рядом стоящую родительскую страницу, а не родительской страницы верхнего уровня. Но что делать, если нам нужно опираться именно на родительскую страницу верхнего уровня и если текущая страница — дочерняя к ней (неважно какой уровень), то указывать ей особые стили.
Аналогичной проверкой можно выводить, допустим, какой-то блок в сайдбаре только для страниц одной "ветки" — для родительской страницы и для всех её предков любого уровня.
Для просто реализации такой задачи существует встроенная функция WordPress — get_post_ancestors(). C её помощью мы можем получить ID родительской страницы верхнего уровня.
Давайте посмотрим пример, показывающий как к стандартным классам body_class() добавить свой класс top-level-parent-pageid-123. Код как обычно вставляется в файл шаблона functions.php:
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(), кроме прочих, будет выводить класс "top-level-parent-pageid-123", где 123 — ID родительской страницы верхнего уровня.
Установить в коттедж натяжные потолки в москве и ближайшем подмосковье
Установить в коттедж натяжные потолки в москве и ближайшем подмосковье
www.pureline.ru
Окна veka
Лучшие предложения на окна veka можно найти только в этой оконной фирме
www.multiokna.ru