2014-02-12 54 views
1

你好,我有我的網站如何在菜單中更改自定義項目順序

Home | How to start | about | contact | categories 

主菜單,但我想補充一個項目如何我可以列出所有類別的functions.php

add_filter('wp_nav_menu_items', 'category_list', 10, 2); 
function category_list($items, $args) 
{ 
    if($args->theme_location == 'header') 
    { 
     $items .= '<li id="menu-item-184" class="parent menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-home menu-item-184"><a href=""#"">Kategorie</a><ul class="sub-menu">'; 
     $categories = get_categories(); 
     foreach ($categories as $category) 
     { 
      $option = '<li><a href="'.get_category_link($category->term_id).'">'; 
      $option .= $category->cat_name; 
      $option .= '</a></li>'; 
      $items .= $option; 
     } 

     $items .= '</ul></li>'; 
    } 
    return $items; 
} 
How 

改變這個項目的順序。我無法在外觀 - >菜單中看到它,我想將它移到菜單中的第二個位置。

Home | Categories | How to start | about | contact 
+0

你爲什麼不嘗試創建自定義WP菜單? – Ares

+0

因爲我需要自動添加到菜單的類別。 –

+0

@ user3211948看看你的更好的方法[**添加一個類別菜單**](http://wordpress.org/support/topic/adding-a-category-to-menu) –

回答

0

我使用了一種解決方法,可能對您的情況有用。我使用customItem變量而不是項目來構建自定義菜單項。然後我將原始菜單分成一個數組。創建一個計數器,以正確的順序添加自定義菜單項。

function category_list($items, $args) 
{ 
    if($args->theme_location == 'header') 
    { 
     $customitem .= '<li id="menu-item-184" class="parent menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-home menu-item-184"><a href=""#"">Kategorie</a><ul class="sub-menu">'; 
     $categories = get_categories(); 
     foreach ($categories as $category) 
     { 
      $option = '<li><a href="'.get_category_link($category->term_id).'">'; 
      $option .= $category->cat_name; 
      $option .= '</a></li>'; 
      $customitem .= $option; 
     } 

     $customitem.= '</ul></li>'; 

     //Here is the ordering part: 
     $newMenu=''; 
     $originalMenu=explode("</li>",$items); 
     $count=0; 
     foreach($originalMenu as $orgMenuItem){ 
      $count++; 
      if($count==2) $newMenu.= $customitem; 
      $newMenu.= $orgMenuItem.'</li>'; 
     } 
     $items=$newMenu; 


    } 
    return $items; 
} 
相關問題