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

#wordpress

#wordpress

Вопрос:

У меня есть главное меню на сайте 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=amp;child_of=".$post->post_parent."amp;echo=0");
            else
                $children = wp_list_pages("title_li=amp;child_of=".$post->ID."amp;echo=0");
            if ($children) { ?>
                 <ul id="side-page-menu">
                    <?php echo $children; ?>
                </ul>
        <?php } ?>
  

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

Спасибо!

Ответ №1:

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

 <ul>
            <?php wp_list_pages('title_li=<h2>MAIN NAV</h2>amp;depth=1' ); ?>
            </ul>
            <?php
                if ($post->post_parent == 0) {
                $children = wp_list_pages("title_li=amp;child_of=".$post->ID."amp;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=amp;child_of=".$next_post_parent."amp;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 } ?>