wordpress刪除選單多餘的CLASS和ID沉餘

wordpress刪除選單多餘的CLASS和ID沉餘

1wordpress增加模板選單方法

在functions。php檔案加上以下程式碼,

if(function_exists(‘register_nav_menus’)){

register_nav_menus(

array(

‘header-menu’ => __( ‘選單名字A’ ),

‘footer-menu’ => __( ‘選單名字B’ ),

‘sider-menu’ => __(‘選單名字C’)

);

}

最簡單的呼叫方式,前臺加上下面程式碼

<?php wp_nav_menu; ?>

也可以對這個選單進行更多的控制,程式碼如下

<?php wp_nav_menu(

array(

‘theme_location’ => ‘’ //指定顯示的導航名,如果沒有設定,則顯示第一個

‘menu’ => ‘header-menu’,

‘container’ => ‘nav’, //最外層容器標籤名

‘container_class’ => ‘primary’, //最外層容器class名

‘container_id’ => ‘’,//最外層容器id值

‘menu_class’ => ‘sf-menu’, //ul標籤class

‘menu_id’ => ‘topnav’,//ul標籤id

‘echo’ => true,//是否列印,預設是true,如果想將導航的程式碼作為賦值使用,可設定為false

‘fallback_cb’ => ‘wp_page_menu’,//備用的導航選單函式,用於沒有在後臺設定導航時呼叫

‘before’ => ‘’,//顯示在導航a標籤之前

‘after’ => ‘’,//顯示在導航a標籤之後

‘link_before’ => ‘’,//顯示在導航連結名之後

‘link_after’ => ‘’,//顯示在導航連結名之前

‘items_wrap’ => ‘

    %3$s
’,

‘depth’ => 0,////顯示的選單層數,預設0,0是顯示所有層

‘walker’ => ‘’// //呼叫一個物件定義顯示導航選單 ));

?>

2如何刪除選單選擇器沉餘

預設Wordpress選單生成的Html程式碼

wordpress刪除選單多餘的CLASS和ID沉餘

程式碼在選單列表中li有多個Id,也有多個Class的類,而且定義整個選單樣式,根本不需要這麼多選擇器,下面介紹刪除Wordpress沉餘選擇器的方法,程式碼如下

add_filter(‘nav_menu_css_class’, ‘my_css_attributes_filter’, 100, 1); //刪除Class選擇器

add_filter(‘nav_menu_item_id’, ‘my_css_attributes_filter’, 100, 1); //刪除Id選擇器

add_filter(‘page_css_class’, ‘my_css_attributes_filter’, 100, 1);

function my_css_attributes_filter($var) {

return is_array($var) ? array_intersect($var, array(‘current-menu-item’,‘current-post-ancestor’,‘current-menu-ancestor’,‘current-menu-parent’)) : ‘’; //刪除當前選單的四個選擇器

}

效果如下:

wordpress刪除選單多餘的CLASS和ID沉餘