亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > CMS建站 > 正文

WordPress中制作導航菜單的PHP核心方法講解

2020-03-22 17:01:27
字體:
來源:轉載
供稿:網友
WordPress 3.0 引入導航菜單功能, 讓頁面的導航和鏈接的管理變得簡單易用. WP 向用戶提供了菜單管理頁面和多種調用方法, 我們先來看一下一般WordPress 的導航菜單都具有哪些功能.
管理菜單頁面頁面路徑: Appearance Menus
由從界面來看, 能夠創建多個菜單, 并且可以向菜單中添加自定義鏈接, 頁面鏈接和分類鏈接.
但有一點需要注意, 如果將頁面鏈接和分類鏈接加入, 被帶入菜單的僅是鏈接, 而不是頁面和分類本身, 也就是說, 子頁面和子分類不會成為菜單的一部分.另外, 我們也不能在菜單中加入別的菜單, 所以這種自定義的菜單注定只存在一級. 在右邊排列菜單區塊中, 只要將某個菜單往右移一格, 就可以作為下級菜單. 所以是可以創建多級的.
創建菜單后, 我們就可以通過在 Widgets 頁面將這些菜單添加到側邊欄上了.
登記自定義菜單在菜單管理頁面中注意到 Theme Locations 區塊提示如下:The html' target='_blank'>current theme does not natively support menus, but you can use the "Custom Menu" widget to add any menus you create here to the theme's sidebar.意思是說, 現在你的主題不支持自定義菜單, 但可以通過 Widget 的方式將自定義加到主題的側邊欄. 那如何讓主題也能支持自定義菜單呢 請將以下代碼加到 function.php 中.register_nav_menus(array( 'primary' = 'Primary Navigation'這段代碼用于記錄一個自定義菜單, 你可以為它選擇具體的應用菜單, 其中 primary 應是唯一識別符, Primary Navigation 是菜單的名稱. 可以通過這個函數為主題添加多個自定義菜單. 如果在 function.php 添加登記方法如下:register_nav_menus(array('primary' = 'Primary Navigation'));register_nav_menus(array('secondary' = 'Secondary Navigation'));register_nav_menus(array('bottom' = 'Bottom Navigation'));在菜單管理頁面將會看到如下圖的內容.
主題調用菜單在主題中如何調用菜單呢 在主題的適合位置使用方法 wp_nav_menu();, 向頁面輸出菜單.
方法中提供參數 theme_location, 用于指定對應的自定義菜單. 如要調用第一個菜單, 則代碼如下:wp_nav_menu(array( 'theme_location' = 'primary'在默認情況下如果沒有定義任何菜單, 使用 wp_nav_menu 方法與 wp_list_pages (調用頁面列表) 方法無異, 但效率不及后者. 所以, 如果你準備用頁面列表或者分類列表作為導航菜單, 建議不要使用 wp_nav_menu.用法在主題調用導航菜單, 方法很簡單. 只需加入以下語句在頁面上輸出菜單. php wp_nav_menu(); 但其實這個方法提供了很多可配置的參數, 下面我們逐一描述.參數參數列表來自 WordPress Codex, 下面逐一翻譯, 并對不易理解的參數進行詳細說明.$menu
(字符串)(可選) 期望顯示的菜單; 接受 (按順序匹配的) id, slug, name
默認值: None我們看一下 WordPress 取菜單的方法. 就像 Codex 上的描述一樣, 它是按 id, slug, name 的順序去取的.function wp_get_nav_menu_object( $menu ) { // 沒有提供參數, 返回空 if ( ! $menu ) return false; // 根據 id 找 $menu_obj = get_term( $menu, 'nav_menu' ); // 如果找不到, 根據 slug 來找 if ( ! $menu_obj ) $menu_obj = get_term_by( 'slug', $menu, 'nav_menu' ); // 如果還找不到, 再根據 name 來找 if ( ! $menu_obj ) $menu_obj = get_term_by( 'name', $menu, 'nav_menu' ); // 最終沒找到, 返回空 if ( ! $menu_obj ) $menu_obj = false; return $menu_obj;$container
(字符串)(可選) ul 父節點的標簽類型
默認值: div千萬不要以為什么標簽都可以使用, 事實上只有 div 和 nav 會被采用, 如果輸入別的值, ul 父節點的標簽將不會顯示, 可見 Codex 的描述不夠詳盡. (從另一個角度看, WordPress 使用 nav 標簽說明它正在提升對 HTML5 的支持力度.)// 被允許使用的標簽只有 div 和 nav$allowed_tags = apply_filters( 'wp_nav_menu_container_allowedtags', array( 'div', 'nav' ) );$container_class
(字符串)(可選) ul 父節點的 class 屬性值
默認值: menu-{menu slug}-container$container_id
(字符串)(可選) ul 父節點的 id 屬性值
默認值: None$menu_class
(字符串)(可選) ul 節點的 class 屬性值
默認值: menu$menu_id
(字符串)(可選) ul 節點的 id 屬性值
默認值: menu slug, 自增長的$echo
(布爾型)(可選) 決定直接顯示菜單還是返回 HTML 片段
默認值: true (直接顯示)$fallback_cb
(字符串)(可選) 如果菜單不存在, 調用的回調函數
默認值: wp_page_menu (顯示頁面列表作為菜單)這是一個很重要的方法, 可以通過它去兼容老版本主題. 下面我們看看代碼. 關鍵是 $args 也被傳入 call_user_func 中. 例如, 我們將參數 'sort_column'= 'menu_order' 寫入 wp_nav_menu 的參數, 那它同樣會被傳到 call_user_func 方法中. 如果 call_user_func 是 wp_page_menu 方法, 那么顯示的頁面列表將以認為賦予的序號來排序輸出.// 如果找不到指定菜單, 或者菜單不存在任何條目并沒有指定自定義菜單, 使用 call_user_func 方法來進行處理if ( ( !$menu || is_wp_error($menu) || ( isset($menu_items) && empty($menu_items) && !$args- theme_location ) ) && ( function_exists($args- fallback_cb) || is_callable( $args- fallback_cb ) ) ) return call_user_func( $args- fallback_cb, (array) $args );$before
(字符串)(可選) 顯示在每個菜單鏈接前的文本
默認值: None$after
(字符串)(可選) 顯示在每個菜單鏈接后的文本
默認值: None$link_before
(字符串)(可選) 顯示在每個菜單鏈接文本前的文本
默認值: None$link_after
(字符串)(可選) 顯示在每個菜單鏈接文本后的文本
默認值: None我懷疑 Codex 對 $before 與 $link_before, $after 與 $link_after 的描述是不是倒過來了 $depth
(整型)(可選) 顯示菜單的深度, 當數值為 0 時顯示所有
默認值: 0$walker
(字符串)(可選) 自定義的遍歷對象
默認值: None$theme_locaton
(字符串)(可選) the location in the theme to be used--must be registered with register_nav_menu() in order to be selectable by the user
默認值: None如果主題在 function.php 中登記了 3 個自定義菜單, 如下:register_nav_menus(array('primary' = 'Primary Navigation'));register_nav_menus(array('secondary' = 'Secondary Navigation'));register_nav_menus(array('bottom' = 'Bottom Navigation'));要調用 Secondary Navigation 這個導航菜單, 則可以在 header.php 文件里使用以下語句:wp_nav_menu(array( 'theme_location' = 'secondary'也就是說, 這是用來指定調用某個自定義菜單的.PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧美日韩国产精品| 国产日韩在线免费| 亚洲国产一区二区三区在线观看| 日韩视频免费大全中文字幕| 91精品视频网站| 秋霞av国产精品一区| 国产精品久久久久久久app| 亚洲国产精品999| 91精品国产乱码久久久久久久久| 亚洲偷熟乱区亚洲香蕉av| 2021久久精品国产99国产精品| 91精品国产九九九久久久亚洲| 亚洲视频999| 青草青草久热精品视频在线网站| 久久久之久亚州精品露出| 精品日本高清在线播放| 国产日韩精品视频| 久久精品成人一区二区三区| 色妞色视频一区二区三区四区| 日韩美女免费视频| 98视频在线噜噜噜国产| 成人免费激情视频| 日韩av在线资源| 国产成人精品视频在线观看| 亚洲国产精品成人va在线观看| 国产精品永久在线| 97在线看免费观看视频在线观看| 亚洲美女精品成人在线视频| 欧美日韩国内自拍| 欧美色视频日本版| 亚洲精品欧美日韩专区| 日韩专区在线播放| 亚洲精品中文字幕有码专区| 日韩国产欧美精品在线| 97视频在线播放| 国产精品十八以下禁看| 91在线观看免费高清| 久久精品国产视频| 日韩禁在线播放| 色综合久久悠悠| 久久久国产精品一区| 日韩国产高清污视频在线观看| 欧美亚洲国产视频| 亚洲精品国产福利| 久久国产精品影片| 九九热视频这里只有精品| 欧美激情视频一区二区| 久久精品视频网站| 欧美老女人性视频| 日韩成人黄色av| 欧美视频在线免费| 国产91av在线| 国产精品成人在线| 亚洲综合最新在线| 久久久久久国产精品三级玉女聊斋| 亚洲国产精品一区二区久| 国产一区二区日韩精品欧美精品| 亚洲999一在线观看www| 中文字幕在线日韩| 不卡伊人av在线播放| 国产中文字幕91| 国产美女精品免费电影| 欧美一区二区三区图| 日韩av大片免费看| 欧美天天综合色影久久精品| 国产精品一区二区三区久久| 亚洲色图五月天| 日韩在线精品视频| 国模gogo一区二区大胆私拍| 2020欧美日韩在线视频| 久久免费精品日本久久中文字幕| 国产精品吴梦梦| 国产精品黄色影片导航在线观看| 久久视频中文字幕| 久久精品国产69国产精品亚洲| 国产丝袜一区二区三区免费视频| 91久久久久久久久久| 欧美在线视频a| 国产一区二区三区在线免费观看| 98精品在线视频| 亚洲一区二区国产| 亚洲国语精品自产拍在线观看| 欧美一级在线播放| 欧美资源在线观看| 欧美午夜www高清视频| 97在线视频观看| 亚洲高清福利视频| 中文字幕欧美精品在线| 91人人爽人人爽人人精88v| 国产精品jizz在线观看麻豆| 国产主播在线一区| 欧美另类高清videos| 日韩大陆欧美高清视频区| 精品自拍视频在线观看| www国产精品com| 国产视频精品va久久久久久| 国产主播精品在线| 久久久久久久久久av| 亚洲视频在线视频| 亚洲欧美日韩综合| 日韩高清a**址| 亚洲国产精品国自产拍av秋霞| 亚洲午夜av久久乱码| 久久97精品久久久久久久不卡| 久久手机免费视频| 在线视频欧美日韩| 日韩a**站在线观看| 亚洲精品乱码久久久久久金桔影视| 狠狠躁天天躁日日躁欧美| 亚洲国产精品系列| 欧美乱人伦中文字幕在线| 中文字幕日韩专区| 91网在线免费观看| 亚洲图片在线综合| 午夜精品久久17c| 亚洲黄色免费三级| 国产午夜精品理论片a级探花| 国产视频欧美视频| 国产精品电影网| 国产91精品久久久久久久| 在线观看久久久久久| 2023亚洲男人天堂| 欧美性xxxx极品高清hd直播| 日韩av在线网址| 欧美极品美女视频网站在线观看免费| 欧美日韩亚洲系列| 精品视频久久久久久久| 两个人的视频www国产精品| 伊人久久久久久久久久久| 日韩中文字幕视频在线观看| 国产欧美亚洲精品| 欧美天天综合色影久久精品| 91免费视频网站| 久久久国产成人精品| 一区二区亚洲欧洲国产日韩| 在线播放日韩av| 精品少妇一区二区30p| 久久免费少妇高潮久久精品99| 亚洲自拍偷拍网址| 亚洲精品视频二区| 久久久久久久久久久成人| 欧美激情国产精品| 日本成人免费在线| 日韩精品日韩在线观看| 97精品欧美一区二区三区| 欧美中文字幕精品| 亚洲最新av网址| 亚洲性生活视频在线观看| 最近2019中文字幕第三页视频| 亚洲欧美激情四射在线日| 久久久久中文字幕| 精品国产鲁一鲁一区二区张丽| 成人午夜在线视频一区| 国产精品视频精品视频| 91国自产精品中文字幕亚洲| 国产成人久久精品| 国产婷婷97碰碰久久人人蜜臀| 尤物精品国产第一福利三区| 亚洲第一福利视频| 久久精品男人天堂| 亚洲tv在线观看| 国产婷婷成人久久av免费高清| 亚洲综合中文字幕在线| 91最新在线免费观看|