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