Иерархию постоянных страниц образуют дочерние страницы.
Функция wp_list_pages по умолчанию выводит иерархию страниц в виде древовидного списка ссылок на все постоянные страницы вместе с их дочерними страницами с заголовком "Страницы".
Если считать, что дочерние страницы - это подразделы, посетителя сайта могут заинтересовать эти подразделы, поэтому добавим в пользовательский шаблон страницы или в шаблон страницы page.php такой код после строки с вызовом функции the_content():
Вывод ссылок на дочерние страницы
// дочерние страницы текущей страницы
<?php
$postID=$post->ID;
$children = wp_list_pages('title_li=&child_of='. $postID .'&echo=0');
if ($children) { ?>
<h3>В разделе "<?php the_title() ?>":</h3>
<ul>
<?php echo $children; ?>
</ul>
<?php }?>
Кроме того, на других дочерних страницах родительской страницы могут рассматриваться родственные темы, также интересные посетителю сайта, поэтому добавим:
Вывод ссылок на дочерние страницы той же самой родительской страницы
// дочерние страницы родительской страницы
<?php
$parentID= $post->post_parent; // return the ID of the parent post
if($parentID){ //$parentID =$ancs[0];
$siblings=wp_list_pages('depth=1&exclude=' . $postID .
'&echo=0&child_of=' . $parentID . '&title_li=');
if ($siblings) {
echo('<h3>В разделе "'. get_the_title($parentID) .'" также: </h3>');
?>
<ul>
<?php echo $siblings; ?>
</ul>
<?php }
}?>
Хлебные крошки
Остается только добавить навигацию вверх по иерархии страниц - breadcrumbs (хлебные крошки). Для этого используем функцию get_post_ancestors(), которая возвращает предков заданной страницы, перед вызовом функции the_content():
<?php
$ancs=get_post_ancestors($post); // array of IDs
$parentID=$ancs[0];
if ($parentID){
$ancs=array_reverse($ancs);
foreach($ancs as $anc) {
$anc_title = get_the_title($anc);
echo '<a href="' . get_permalink($anc). '" title="' .
$anc_title . '">' . $anc_title . '</a> » ';
}
}
?>
Получаем примерно такой результат:

Огромное спасибо! Задолбалась сама писать эту функцию, а тут такое ЩАСЬЕ.... :)
ЩАСЬЕ.... каждый понимал по-своему...
Пользуйтесь на здоровье
Спасибище... !
:-)
Спасибо!
1) а как у последнего элемента в хлебных крошках убрать лишние кавычки?
либо/лучше
2) отобразить название текущей страницы в последнем элементе хлебных крошек? куда необходимо добавить get_the title();?
3) если у меня страница записей не на главной, а под нее заточен отдельный шаблон (static page, например, /articles/), то как сделать, чтобы крошки тоже отображались в index.php (я добавил функцию в index, но не выводятся в результате) и чтобы при переходе на запись, страница вывода ленты записей (/articles/) тоже учитывалась?
Пояснение к пункту "3"
Сейчас у меня в записях крошки выглядят так:
Главная » тестовая-запись
А хотелось бы:
Главная » Статьи » тестовая-запись
Статьи - это index.php (лента записей)
Добрый день!
Подскажите, пожалуйста, а как сделать вывод на дочерние, но без поддочерних страниц?
Пример:
У вас
В разделе:
-Дочерняя 1
-дочерняя 1.1
-дочерняя 1.2
-Дочерняя 2
а мне нужно
В разделе:
-Дочерняя 1
-Дочерняя 2
Спасибо!
Чтобы ограничить уровень вложенности страниц, используется параметр depth.
depth=1 – будут получены только страницы верхнего уровня
depth=2 - верхнего и следующего уровня и т.д.
см. http://wordpress.howtoo.ru/wordpress-guide/wordpress-functions/wp_list_pages/
Спасибо!
Скажите есть способ вывести хлебные крошки по следующей схеме?
главная-вторая страница-категория-подкатегория
Вторая страница выпадает из схемы
У страниц (Page) и записей (Post) разные иерархии.
В этой статье рассматриваются хлебные крошки для страниц, которые имеют родительские и дочерние страницы.
Категории (иначе говоря, рубрики) могут содержать подкатегории и записи. См. в статье http://wordpress.howtoo.ru/blog/post-breadcrumbs/ (Хлебные крошки для рубрик и записей блога)
Огромный респект, чуть не убил кучу времени на реализацию задуманного. А тут контрл ц - контрл в
Большое спасибо. Хлебные крошечки красавицы :)