PHP 學習筆記 (四),php學習筆記
Wordpress 架構中的一些函數:
wp_get_nav_menu($default): 根據條件$default 擷取menu, 預設擷取所有的menu
其中 $default 預設如下所示:
$default = array( ‘theme_location’ =>'', 'menu' =>'', 'container' =>'div', 'container_class' => 'menu-{menu_slug}-container', 'container_id' =>'', 'menu_class'=>'menu', 'echo' => true, 'fallback_cb'=>'wp_page_menu', 'before' =>'', 'after' =>'', 'link_before' =>'', 'link_after' =>'', 'items_wrap' =>'
, 'depth' =>0, 'walker' =>'');
參數的說明:
$theme_location: 預設為none, 指定註冊過的某一個導覽功能表,若未指定,則顯示第一個。 如primary, secondary等
$menu:預設為none, 使用導覽功能表的名稱調用菜單,可以使 term_id, slug, name 等屬性
$container: 預設為 div, 是ul的父節點,只支援div 和nav標籤,也可用false 去掉ul 父節點的標籤
$container_class: 預設為menu-{menu_slug}-container, 是ul 父節點的class屬性
$container_id: 預設為none , ul父節點的id
$menu_class: 預設為menu, ul節點的class屬性
$menu_id: 預設為menu slug, 自增長的ul節點的id屬性值
$echo: 預設為true 確定直接顯示導覽功能表韓式返回HTML片段,如果想將導航的代碼作為膚質使用,可以設定為false.
$fallback_db: 預設值為wp_page_menu, 用於沒有在後台設定導航時調的回呼函數
$items_wrap: 預設為none, 使用字串修改替換ul的class
$depth: 預設為0, 顯示菜單的層級深度, 為0時顯示所有深度的菜單
$walker: 預設使用 new Walker_Nav_Menu(), 自訂的遍曆對象,調用一個Walker子類對象定義顯示導覽功能表。
使用Walker 子類製作自訂菜單:
Walker 類是一個抽象類別,該類定義了如何顯示導航等,這個抽象類別包含4個屬性和6個方法:
屬性:
$tree_type , $db_fields, $max_pages, $has_children
方法:
start_lvl: 當Walker類達到結構頂層時執行該方法,可用於輸出開始元素
end_lvl: 關閉start_lvl輸出的元素標籤
start_el: 為每一個元素輸出一個開始標籤
end_el: 關閉start_el 的標籤
(核心)display_element: 定義如何顯示樹形結構中的元素
(核心)walk 根據$max_depth, 迴圈樹形結構中的每一個元素
如果需要自訂導航,可以直接寫一個類類繼承Walker, 但是這樣要重寫所有的方法。如果改動不大,可以直接繼承Walker_NAV_Menu類,重寫需要修改的類即可。
在重寫 display_element時, 參數$element 包含當前遍曆到的元素的所有資訊, 如可以用$element->object_id 來擷取當前元素的term_id
程式碼片段: 使用add_shorcode('name','function_name') 可在系統中產生一個程式碼片段 ['name'], 可以在wordpress的後台文章中直接使用,或者在代碼中使用 show_shortcode['[name]']; 直接執行
http://www.bkjia.com/PHPjc/1101865.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1101865.htmlTechArticlePHP 學習筆記 (四),php學習筆記 Wordpress 架構中的一些函數: wp_get_nav_menu($default): 根據條件$default 擷取menu, 預設擷取所有的menu 其中 $d...