Вывод страниц родителя!

Здравствуйте.
Есть структура меню:

Родитель

  • Дочерняя страница 1
  • Дочерняя страница 2
  • Дочерняя страница 3

При нажатии на родитель получаю меню (использую его в центральном блоке контента)
Дочерняя страница 1 / Дочерняя страница 2 / Дочерняя страница 3

Использую код в page.php после

 <?php if (have_posts()) : while (have_posts()) : the_post(); ?>

такой:

<div id="menu_con"><ul><?php wp_list_pages('title_li=0&child_of='.$post->ID,); ?></ul></div>

Но когда жму на дочернюю страницу

$post->ID
  • ID берется её, тоесть ничего не выводит (так как у дочерней страницы нет подстраниц).

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

Что-то типа
if ( wp_list_pages(‘title_li=&child_of=’.$post->ID . ‘&echo=0’) )
wp_list_pages(‘title_li=0&child_of=’.$post->ID);
else
wp_list_pages(‘title_li=0&child_of=’.$post->post_parent);

Так работает, но я если нажму на родитель в котором нету дочерей – выводит всё меню )
Мне необходимо чтобы если нажимаешь на родителя и в нем нет дочерей – ничего не выводило вообще…

Получаеться меню идёт так
Корень родителя (его вообще не вывожу )
Родитель 1
– Дочерняя страница 1
– Дочерняя страница 2
– Дочерняя страница 3
Родитель 2
– Дочерняя страница 1
– Дочерняя страница 2
– Дочерняя страница 3
Родитель 3

Родитель 3 пуст и при нажатии на него мне выдаёт меню типа
Родитель 1 / Родитель 2 / Родитель 3

Ну вот подумайте, чем "Родитель 3" отличается от, скажем, "Дочерняя страница 3", и добавьте условие.

Просто к концу рабочего дня не думается.
вроде так прокатило

<? if ( wp_list_pages(‘title_li=&child_of=’.$post->ID . ‘&echo=0’) )
wp_list_pages(‘title_li=0&child_of=’.$post->ID);
else if ( wp_list_pages(‘title_li=&child_of=0&echo=0’) )
{} else { wp_list_pages(‘title_li=0&child_of=’.$post->post_parent); }?>

Не – непрокатило он теперь невыводит в дочерней… Помогите плиз советом, чтото немогу додумать…

Покрутите условие $post->post_parent == 0. Это условие страницы первого уровня. То есть попробуйте сначала на словах сформулировать что-то типа "если страница первого уровня и у нее есть дети, вывести их список; если страница не первого уровня и у нее есть сестры, то…."

Блин немогу догнать

<? if ($post->post_parent == 0 and wp_list_pages(‘title_li=&child_of=’.$post->ID . ‘&echo=0’)) {
wp_list_pages(‘title_li=0&child_of=’.$post->ID);}
else if ($post->post_parent == 0 and wp_list_pages(‘title_li=&child_of=’)) {
echo "123";
} else {
wp_list_pages(‘title_li=0&child_of=’.$post->post_parent);
}
?>

так непашет.

Немогу понять как составитьусловие для "сестер".

У мамы есть дети = есть сестры 🙂

НЕ сильно помогло )

Нард кто может подсказать готовое решение?

Как написать условие "если есть родители, но нет детей"?
Родители понятно, а вот нет детей чтото недодумываю….

$post->post_parent AND !wp_list_pages(‘title_li=&echo=0&child_of=’.$post->ID)
родитель не 0 И нет деток

Всё равно не получается

  <div id="menu_con"> <ul> <?php
  if ( wp_list_pages('title_li=&child_of='.$post->ID . '&echo=0') ) {
  $children = wp_list_pages('title_li=0&child_of='.$post->ID);
  } else if ($post->post_parent == 0 AND !wp_list_pages('title_li=&echo=0&child_of='.$post->ID)) {
  $children = "123";    
   } else {
  $children = wp_list_pages('title_li=0&child_of='.$post->post_parent); 
    }
  if ($children) { ?>
  <ul>
  <?php echo $children; ?>
  </ul>
  <?php } ?></div>

Просто

Корень родителя (его вообще не вывожу )
Родитель 1
– Дочерняя страница 1
– Дочерняя страница 2
– Дочерняя страница 3
Родитель 2
– Дочерняя страница 1
– Дочерняя страница 2
– Дочерняя страница 3
Родитель 3

У меня же есть ещё корень родителей значит условие корня будет post->post_parent == 0, а не Родителя….
Получается что у родителя есть ещё верхний родитель….. но я его не вывожу

А как будет выглядеть условеие если
Родитель 1
Родитель 1.1
Родитель 1.1.1
Родитель 1.1.2
Родитель 1.1.3
Родитель 1.2
Родитель 1.2.1
Родитель 1.2.2
Родитель 1.2.3

Выводить при нажатии на родителей 1.1.x и 1.2.x только сестёр (1.1.x и 1.2.x), а если родители уровня выше выводить только детей, но если детей нету невыводить ничего.

Товарищ Ю.Б. прошу вашей помощи =)

Anonymous
Отправить
Ответ на: