Intereting Posts
Добавление подменю на страницу пользовательского плагина, созданного с помощью функции add_menu_page () Является ли исследование user_meta чувствительным к регистру или нет Святой Грааль плагинов управления событиями? WooCommerce: НДС на сгруппированные продукты Есть ли способ рефакторировать эту оболочку jQuery? Как скрыть кнопку «Главная» от появления на сайтах – двадцать одиннадцать тем Есть ли крючок между нажатием «Добавить новый» и экраном редактирования нового сообщения? Однословные шаблоны Получить список ACF Repeater-Fields как массив Укажите размеры изображения Как редактировать содержимое нижнего колонтитула Предоставьте доступ к простому .html-файлу пользователям, которые купили определенный «цифровой продукт», Форма страницы опциона не работает Особый порядок Просмотр вывода при срабатывании «Вспышка сгенерирована x символов неожиданного выхода при активации»

как правильно перечислить дочерние страницы на боковой панели?

Меню «Мои страницы» имеет максимум 3 уровня, и мне сложно определить, как правильно перечислить дочерние страницы на боковой панели.

Если страница является родительской, я хочу перечислить ее прямые дочерние страницы, и заголовок должен быть этим родителем.

Если страница является дочерним элементом и имеет детей сама по себе, я хочу перечислить только ее дочерние элементы, а заголовок должен быть этой страницей

Если страница является внуком, я хочу перечислить ее братьев и сестер, и титул должен быть этим внуком.

На данный момент я использую (из Кодекса):

<?php if($post->post_parent) { $children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0&depth=1&sortcolumn=menuorder"); } else { $children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0&depth=1&sortcolumn=menuorder"); } ?> <?php if ($children) { ?> <div class="left-bar-content"> <h2><?php _e('More ','sunchine') ?><?php echo get_the_title($post->post_parent);?></h2> <ul class="leftbar-list"> <?php echo $children;?> </ul> </div><!-- .left-bar-content --> <?php } ?> 

И это почти правильно. Почти, потому что мой он не выполняет мой второй критерий.

В Codex есть множество вариантов, но я не могу понять, что будет применимо к тому, что я хочу выполнить. Использование виджетов и / или плагина не является вариантом.

Буду признателен за любую оказанную помощь.

Вот код, который удовлетворяет всем вашим требованиям 3 выше.

 <?php /* * get_page_depth * Gets the page depth, calls get_post on every iteration * https://gist.github.com/1039575 */ if ( !function_exists( 'get_page_depth' ) ) { function get_page_depth( $id=0, $depth=0 ) { global $post; if ( $id == 0 ) $id = $post->ID; $page = get_post( $id ); if ( !$page->post_parent ) { // this page does not have any parent return $depth; } return get_page_depth( $page->post_parent, $depth+1 ); } } $target_page = get_page_depth( $post->ID ) > 1 ? $post->post_parent : $post->ID; $children = wp_list_pages("title_li=&child_of={$target_page}&depth=1&echo=0&sort_column=menu_order"); ?> <div class="left-bar-content"> <h2><?php _e('More ','sunchine'); ?><?php echo get_the_title( $target_page ); ?></h2> <ul class="leftbar-list"> <?php echo $children; ?> </ul> </div><!-- .left-bar-content -->