Здравствуйте.
Есть структура меню:
Родитель
- Дочерняя страница 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 И нет деток
Всё равно не получается
Просто
Корень родителя (его вообще не вывожу )
Родитель 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), а если родители уровня выше выводить только детей, но если детей нету невыводить ничего.
Товарищ Ю.Б. прошу вашей помощи =)