Показать подменю для определенного элемента родительского уровня в WordPress - PullRequest
0 голосов
/ 27 апреля 2011

У меня есть главное меню на WordPress-сайте с использованием wp_nav_menu, которое представляет собой 4 родительских элемента, и у каждого есть несколько пунктов подменю.

В конкретном шаблоне я хотел бы показать элементы подменю для одного из родительских элементов. Например:

  • Родительский элемент 1
    • Элемент списка 1
    • Элемент списка 2
  • Родительский элемент 2
    • Элемент списка 1
    • Элемент списка 2
  • Родительский элемент 3
    • Элемент списка 1
    • Элемент списка 2
  • Родительский элемент 4
    • Элемент списка 1
    • Элемент списка 2

В моем шаблоне я хотел бы показать элемент списка 1 и элемент списка 2 для родительского элемента 3. Каждый родительский элемент имеет уникальный идентификатор. На «страницах» я использую следующий код для этого:

            <?php
            if($post->post_parent)
                $children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0");
            else
                $children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0");
            if ($children) { ?>
                 <ul id="side-page-menu">
                    <?php echo $children; ?>
                </ul>
        <?php } ?>

Но это не работает для отдельных сообщений (по сравнению со страницами).

Спасибо!

1 Ответ

0 голосов
/ 15 марта 2012

попробовал с этим

<ul>
            <?php wp_list_pages('title_li=<h2>MAIN NAV</h2>&depth=1' ); ?>
            </ul>
            <?php
                if ($post->post_parent == 0) {
                $children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0");
                $parentpage = $wpdb->get_row("SELECT ID, post_title, post_name FROM $wpdb->posts WHERE ID = '".$post->ID."'");
                }
                if ($post->post_parent != 0) {
                $next_post_parent = $post->post_parent;
                while ($next_post_parent != 0) {
                $children = wp_list_pages("title_li=&child_of=".$next_post_parent."&echo=0");
                $parentpage = $wpdb->get_row("SELECT ID, post_title, post_parent, post_name FROM $wpdb->posts WHERE ID = '".$next_post_parent."'");
                $next_post_parent = $parentpage->post_parent;
                }
            }
            ?>
            <?php if ($children) { ?>
            <ul>
                <li>SUBNAV FOR: <a href="<?php echo get_permalink($parentpage->ID); ?>"><?php echo $parentpage->post_title; ?></a>
            <ul>
            <?php echo $children; ?>
            </ul>
            </li>
            </ul>
            <?php } ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...