這是一個控制Wordpress主題菜單顯示的函數,這也是在Wordpress主題開發中比較重要的一個函數,詳細的了解此函數有利于學習Wordpress的主題開發。
此文來源于:《官方函數文檔:wp_nav_menu()》
輸入內容格式如下:
wp_nav_menu( array $args = array() )
顯示導航菜單
這是現成的代碼片段(不是真正的貢獻,比其他任何快捷方式都重要):
wp_nav_menu( array $args = array(
'menu' => "", // (int|string|WP_Term) 所需菜單。接受菜單ID、slug、name或object。
'menu_class' => "", // (string) CSS類,用于構成菜單的ul元素。默認menu。
'menu_id' => "", // (string) 應用于構成菜單的ul元素的ID。默認為menu slug,遞增。
'container' => "", // (string) 是否包裝ul,以及用什么包裝ul。默認div。
'container_class' => "", // (string) 應用于容器的類。默認“menu-{menu slug}-container”。
'container_id' => "", // (string) 應用于容器的id。
'fallback_cb' => "", // (callable|bool) 如果菜單不存在,將啟動回調函數。默認為wp_page_menu。設置為false表示沒有回退。
'before' => "", // (string) 鏈接標記前的文本。
'after' => "", // (string) Text after the link markup.
'link_before' => "", // (string) 鏈接文本之前的文本。
'link_after' => "", // (string) Text after the link text.
'echo' => "", // (bool) 是回顯菜單還是返回菜單。默認為true。
'depth' => "", // (int) 要包含多少層次結構。0表示全部。默認值0。
'walker' => "", // (object) 自定義walker類的樣式。
'theme_location' => "", // (string) 要使用的主題位置。必須使用register_nav_menu()注冊,以便用戶可以選擇。
'items_wrap' => "", // (string) 列表項應如何包裝。默認值是具有id和類的ul。使用帶編號占位符的printf()格式。
'item_spacing' => "", // (string) 是否在菜單的HTML中保留空白。接受“preserve”或“discard”。默認preserve。
) );
參數
$ args
(array)?(可選)?導航菜單參數的數組。
- 'menu'
(int | string |?WP_Term)所需菜單。接受菜單ID,段,名稱或對象。 - 'menu_class'
(字符串)?CSS類,用于形成菜單的ul元素。默認為“菜單”。 - 'menu_id'
(字符串)應用于構成菜單的ul元素的ID。默認為菜單項,遞增。 - 'container'
(字符串)是否包裝ul,以及包裝什么。默認為“ div”。 - 'container_class'
(字符串)應用于容器的類。默認為“菜單-{菜單子彈}-容器”。 - 'container_id'
(字符串)應用于容器的ID。 - 'fallback_cb'
(callable | bool)如果菜單不存在,則將觸發回調函數。默認值為“ wp_page_menu”。設置為false不會回退。 - 'before'
(字符串)鏈接標記之前的文本。 - “之后”
(字符串)鏈接標記之后的文本。 - 'link_before'
(字符串)鏈接文本之前的文本。 - 'link_after'
(字符串)鏈接文本之后的文本。 - 'echo'
(布爾)是回顯菜單還是返回菜單。默認為true。 - 'depth'
(int)要包含多少個層次結構。0表示全部。默認值0 - 'walker'
(對象)自定義walker類的實例。 - 'theme_location'
(字符串)要使用的主題位置。必須向register_nav_menu()注冊,以便用戶選擇。 - 'items_wrap'
(字符串)應該如何包裝列表項。默認值為帶有ID和類的ul。使用帶編號占位符的printf()格式。 - 'item_spacing'
(字符串)是否保留菜單HTML內的空格。接受“保留”或“丟棄”。默認為“保留”。
默認值:array()
返回
(string | false | void)如果$ echo為false,則菜單輸出,如果沒有項目或沒有找到菜單,則為false。
更多信息
用法
1個 | wp_nav_menu( $args ); |
給定一個theme_location參數,該函數將顯示分配給該位置的菜單。如果不存在這樣的位置或沒有為其分配菜單,則參數fallback_cb將確定顯示的內容。
如果未提供theme_location參數,則函數顯示
- 與菜單參數給定的ID,子段或名稱匹配的菜單;
- 否則,第一個非空菜單;
- 否則(或者如果menu給定的菜單為空),則輸出fallback_cb參數給定的函數(默認為wp_page_menu());
- 否則什么都沒有。
菜單項CSS類
以下類適用于菜單項,即HTML生成的HTML <li>標簽wp_nav_menu()
:
所有菜單項
.menu-item
此類添加到每個菜單項。.menu-item-has-children
此類已添加到具有子項的菜單項。.menu-item-object-{object}
此類添加到每個菜單項,其中{object}是發布類型或分類法。.menu-item-object-category
此類已添加到與類別相對應的菜單項中。.menu-item-object-tag
此類已添加到與標簽相對應的菜單項中。.menu-item-object-page
此類已添加到與靜態頁面相對應的菜單項中。.menu-item-object-{custom}
此類已添加到與自定義帖子類型或自定義分類法相對應的菜單項。.menu-item-type-{type}
此類添加到每個菜單項,其中{type}是“ post_type”或“分類”。.menu-item-type-post_type
此類被添加到與帖子類型相對應的菜單項中:靜態頁面或自定義帖子類型。.menu-item-type-taxonomy
將此類添加到與分類法相對應的菜單項:即類別,標簽或自定義分類法。
當前頁面菜單項
.current-menu-item
此類已添加到與當前呈現的頁面相對應的菜單項中。
當前頁面父菜單項
.current-menu-parent
此類已添加到與當前呈現的頁面的層次結構父級相對應的菜單項中。.current-{object}-parent
此類被添加到與當前渲染的對象的層次父級相對應的菜單項中,其中{object}對應于.menu-item-object- {object}所使用的值。.current-{type}-parent
此類已添加到與當前呈現的類型的層級父級相對應的菜單項中,其中{type}對應于.menu-item-type- {type}所使用的值。
當前頁面祖先菜單項
.current-menu-ancestor
此類被添加到與當前呈現的頁面的層次祖先相對應的菜單項中。.current-{object}-ancestor
此類已添加到與當前渲染的對象的層級祖先相對應的菜單項中,其中{object}對應于.menu-item-object- {object}所使用的值。.current-{type}-ancestor
此類被添加到與當前呈現類型的層次結構祖先相對應的菜單項中,其中{type}對應于.menu-item-type- {type}所使用的值。
網站首頁菜單項
.menu-item-home
此類已添加到與網站首頁相對應的菜單項中。
并且向后兼容wp_page_menu()
添加了以下類以保持與[[Function Reference / wp_page_menu |?wp_page_menu()?]]函數輸出:
.page_item
此類已添加到與靜態頁面相對應的菜單項中。.page_item_has_children
此類被添加到具有子頁面的菜單項中。.page-item-$ID
此類被添加到與靜態頁面相對應的菜單項中,其中$ ID是靜態頁面ID。.current_page_item
此類被添加到與當前呈現的靜態頁面相對應的菜單項中。.current_page_parent
此類已添加到與當前呈現的靜態頁面的層次結構父級相對應的菜單項中。.current_page_ancestor
此類已添加到與當前呈現的靜態頁面的分層祖先相對應的菜單項中。