PHP 學習筆記 (四),php學習筆記_PHP教程

來源:互聯網
上載者:User

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' =>'
 
    %3$s
, '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...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.