Как сделать вывод страниц последнего уровня вложенности в WordPress?

Допустим существует такая иерархия вложенных страниц:
Каталог
	- Оборудование
		-- Трансформаторы
			--- Масляные трансформаторы
				---- Масляный трансформатор 1
				---- Масляный трансформатор 2
			--- Сухие трансформаторы
				---- Сухой трансформатор 1
				---- Сухой трансформатор 2

Нужно реализовать вывод страниц (не список, а с выводом заголовков, текста и т.д.) в максимальном уровне вложенности.

Т.е. Когда мы находимся на странице -- Трансформаторы, на странице мы должны видеть информацию следующих страниц:
---- Масляный трансформатор 1
---- Масляный трансформатор 2
---- Сухой трансформатор 1
---- Сухой трансформатор 2

Если же мы перейдем на подстраницу --- Масляные трансформаторы, то должны увидеть только:
---- Масляный трансформатор 1
---- Масляный трансформатор 2

По аналогии --- Сухие трансформаторы.

У функции wp_list_pages есть удобный атрибут depth в котором можно указать глубину вложенности, но увы эта функция выводит только списки, а мне же требуется самому сформировать вывод записей.
  • Вопрос задан
  • 4465 просмотров
Пригласить эксперта
Ответы на вопрос 5
get_pages делает тоже самое что wp_list_pages только выводит все данные о странице
Ответ написан
Комментировать
PavelK
@PavelK
Может свой Walker написать к wp_list_pages? Будет как вы напишите.
Ответ написан
Комментировать
redc0de
@redc0de
Однозначно писать свой Walker.

https://github.com/twittem/wp-bootstrap-navwalker/...

Вот тут для bootstrap, вставите где надо условие чтобы только для текущей страницы отображал.
Ответ написан
Комментировать
CodeByZen
@CodeByZen
php, js, my/mssql, sqlite, html, css, it-consult
Скорее всего у вас Каталог, Оборудование, Трансформаторы, Масляные трансформаторы это не страницы а рубрики. А Масляный трансформатор 1 и т.д. это записи в рубриках. Если записи распологаются только в конечнх рубриках то есть простая конструкция.

// узнаем id данной рубрики
$id = get_category(get_query_var('cat'))->cat_ID;
// смотрим все посты рубрики
$posts_array = get_posts( array('category'=>$id) );


и соответственно получаем массив с нашими записями.
Ответ написан
Комментировать
@Pic
Дизайнер
function myPagesparent($mypageID,$MyID){ 
			 $myargs = array(
			 	'numberposts' => -1,
			 	'post_parent' => $mypageID,
			 	); 
			 $pages = get_children($myargs); 
			 foreach ($pages as $pagg) {
				 if($pagg->post_parent == $MyID ){
				 	myPagesparent($pagg->ID,$MyID);
				 }else{
              $option = '<a href="'.get_page_link($pagg->ID).'">';
              $option .= $post->ID;
              $option .= $pagg->post_title;
              echo '<li>'.$option.'</a></li>';
				 }
			}
		}
myPagesparent($post->ID,$post->ID);


это конечно выполнит поставленную задачу!) Но это не самый красивый способ!) Если у кого есть лучше поделитесь
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы