Добавить подменю в тему Wordpress - PullRequest
3 голосов
/ 16 сентября 2010

Я хочу добавить подменю WordPress меню в мою тему. Я хочу использовать функцию wp_nav_menu в Wordpress 3.0. Иными словами, я хочу видеть подменю, а не подстраницы, что означает, что wp_list_pages не является правильной функцией, потому что я хочу подменю, а не подстраницы.

Давайте предположим, что структура меню выглядит следующим образом:

  • Дом
  • entry1
    • Entry3
    • Entry4
  • entry2
    • Entry5
    • Entry6

Я хочу, чтобы, если кто-то нажимает на Entry1 (и делает его родительским), тема просто показывает подменю этой записи. В случае Entry1 это:

  • Entry3
  • Entry4

Я знаю, что есть такой код:

<?php 
    $children = ($post->post_parent) ? wp_list_pages('title_li=&child_of='.$post->post_parent.'&echo=0') : wp_list_pages('title_li=&child_of='.$post->ID.'&echo=0'); 
    if($children) { echo('<ul>'.$children.'</ul>'); } 
 ?> 

Однако дело в том, что я говорю о структуре меню, а , а не о структуре страницы. Да, и параметр глубины не работает, потому что он означает до здесь, а не с здесь.

Я думаю, что могло бы быть решение с пользовательским ходунком, но я не знаю, как это реализовать.

Ссылка на функцию для wp_nav_menu http://codex.wordpress.org/Template_Tags/wp_nav_menu

Я так долго ищу решение этой проблемы, поэтому, пожалуйста, помогите мне. Большое спасибо.

Ответы [ 3 ]

0 голосов
/ 09 апреля 2012

Одним из решений является размещение на странице другой функции wp_nav_menu и изменение css для скрытия неактивных пунктов меню.

0 голосов
/ 15 сентября 2012

Чтобы заставить это работать, я должен был скрыть .sub-меню, как только страница загрузилась. Затем покажите только соответствующее подменю, настроив таргетинг на ".current_page_item .sub-menu"

$(document).ready(function() {
        $(".sub-menu").hide(); // hide the submenu on page load
    $(".current_page_item .sub-menu").show();
)};
0 голосов
/ 16 сентября 2010

Это должно помочь: с http://www.svennerberg.com/2009/02/creating-a-submenu-in-wordpress/

<?php
$has_subpages = false;
// Check to see if the current page has any subpages
$children = wp_list_pages('&child_of='.$post->ID.'&echo=0');
if($children) {
    $has_subpages = true;
}
// Reseting $children
$children = "";

// Fetching the right thing depending on if we're on a subpage or on a parent page (that has subpages)
if(is_page() && $post->post_parent) {
    // This is a subpage
    $children = wp_list_pages("title_li=&include=".$post->post_parent ."&echo=0");
    $children .= wp_list_pages("title_li=&child_of=".$post->post_parent ."&echo=0");
} else if($has_subpages) {
    // This is a parent page that have subpages
    $children = wp_list_pages("title_li=&include=".$post->ID ."&echo=0");
    $children .= wp_list_pages("title_li=&child_of=".$post->ID ."&echo=0");
}
?>
<?php // Check to see if we have anything to output ?>
<?php if ($children) { ?>
<ul class="submenu">
    <?php echo $children; ?>
</ul>
<?php } ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...