Меню WordPress - не показывать подстраницы - PullRequest
0 голосов
/ 29 октября 2011

Я создал пользовательское боковое меню, используя Wordpress> Внешний вид> Параметры меню.Вот структура:

About Us
Our Leadership Team
    Name #1
    Name #2
    Name #3
Our Staff and Advisory Board
    Name #1
    Name #2
    Name #3
    Name #4

Меню показывает на страницах, которые я хочу, но оно отображается полностью развернутым.Как бы я хотел, чтобы это работало: если я в разделе «О нас», то отображаются только подопции верхнего уровня.(О нас, нашей руководящей группе, наших сотрудниках и консультативном совете)

Если я нажму на «Наша руководящая группа», отобразятся три названия под ней.Надеюсь, что это имеет смысл.

Это код, который я использую для вызова этого меню с нескольких страниц:

                            <?php if( is_page(array(11,354,304,302,297,232,319,317,311,309)) ) :?>
                                <? wp_nav_menu( array('menu' => 'main-about' )); ?>
                            <?php endif;?>

Любая помощь будет принята.

1 Ответ

1 голос
/ 29 октября 2011

Я только что закончил веб-сайт, на котором требовалось иметь главное меню и подменю на боковой панели

То, как я выполнил задачу, состояло в том, чтобы главное меню было там, где оно было с глубиной 1 (отображать только родительские элементы). Обратите внимание, измените «menu» на свой идентификатор меню.

<?php wp_nav_menu( array( 'container_class' => 'menu', 'theme_location' => 'primary', 'depth' => '1', 'menu' => '3' ) ); ?>

Тогда все, что мне нужно было сделать, это опубликовать дочерние элементы. Вместо создания меню мне пришлось динамически генерировать меню. Таким образом, вместо использования операторов if или switch для каждого отдельного подменю, это следующий фрагмент кода, который я использовал. И это может быть за пределами цикла.

ПРИМЕЧАНИЕ: этот код был взят из Интернета и изменен, я не знаю оригинального автора.

<?PHP
// Get the parent's title (For display purpose)
$str_parenttitle = get_the_title($post->post_parent);

// This will display the child items of the parent
// And if it's a child item, display it's siblings
if($post->post_parent)
    $children = wp_list_pages("title_li=&sort_column=menu_order&child_of=".$post->post_parent."&echo=0&depth=1&exclude=73"); 
else
    $children = wp_list_pages("title_li=&sort_column=menu_order&child_of=".$post->ID."&echo=0&depth=1&exclude=73");
?>

Затем отобразить меню

<?PHP if ($children && is_page()): ?>
    <ul class="menu">
        <li <?php if ( is_page() && $post->post_parent ) {} else { ?>class="current_page_item"<?php } // Shows the parent item on the sub menu ?>>
            <a href="<?php echo get_permalink($post->post_parent) ?>"><?php echo $str_parenttitle;?></a>
        </li>
        <?php echo $children; ?>
    </ul>
<?PHP endif; ?>

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...