Иерархия постоянных страниц и breadcrumbs (хлебные крошки)


Результат работы функции wp_list_pages() по умолчаниюИерархию постоянных страниц образуют дочерние страницы.

Функция 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> &raquo; ';
   }
 }
?>

Получаем примерно такой результат:

Запись опубликована в рубрике Навигация с метками , , , , , . Добавьте в закладки постоянную ссылку.

2 комментария: Иерархия постоянных страниц и breadcrumbs (хлебные крошки)

  1. Екатерина говорит:

    Огромное спасибо! Задолбалась сама писать эту функцию, а тут такое ЩАСЬЕ.... :)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

* Copy this password:

* Type or paste password here:

3,247 Spam Comments Blocked so far by Spam Free Wordpress