程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP 學習筆記 (四),php學習筆記

PHP 學習筆記 (四),php學習筆記

編輯:關於PHP編程

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' =>'<ul id=''%1s'>%3$s</ul>,
  '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]']; 直接執行

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved