Показывать меню на основе родителя и предка


Попытка показать меню wp на основе родительского. Отлично работает на родительских/дочерних страницах, но на страницах внуков это не работает. Как я должен изменить структуру селектора меню, чтобы включить поднавигационное меню на основе основного родителя?

<?php
if ( wp_get_nav_menu_object( $post->post_title ) ) {
wp_nav_menu( array( 
'menu' => $post->post_title,
'menu_class' => 'subnav',
'container' => ''
) );
} else {

   if ( wp_get_nav_menu_object( get_the_title( $post->post_parent ) ) ) {
wp_nav_menu( array( 
'menu' => get_the_title( $post->post_parent ),
'menu_class' => 'subnav',
'container' => ''
) );
}
 }

?>

Author: Matt Adams, 2012-03-20

1 answers

Обходите стороной.

if (is_page( 'pagename' ) || in_array("5", $post->ancestors)) {
wp_nav_menu( array( 'container_class' => 'subnav', 'menu' => 'visit' ));

}

5 - идентификатор рассматриваемой страницы.

Таким образом, хотя это немного больше работы, требующей и если/если: оператор else для каждой страницы, он будет масштабироваться, чтобы разрешить столько страниц для детей/внуков, сколько необходимо

 2
Author: Matt Adams, 2012-03-20 19:54:16