2010-09-15 7 views
3

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

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

  • Главная
  • 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

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

+0

Вы нашли решение для этого? У меня также есть проблемы с этим. – Bajlo

ответ

0

Для того, чтобы это сработало, мне пришлось скрыть .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

Приятная идея сделать это в js вместо сервера. Это не совсем то, что я хочу, но буду работать.Я принимаю это, пока кто-то не придумает другое решение ;-) – dominik

0

Это должно помочь: От 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 } ?> 
+0

Спасибо за помощь, но это не то, что я ищу, потому что код показывает вспомогательные страницы, но не суб-навигацию. – dominik

0

Одно из решений поставить другую функцию wp_nav_menu на страницу и изменить CSS, чтобы скрыть неактивные пункты меню.

Смежные вопросы