1wordPress/ target=_blank class=infotextkey>WordPress增加模板菜單方法
在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' => '<ul id="%1$s">%3$s</ul>',
'depth' => 0,////顯示的菜單層數,默認0,0是顯示所有層
'walker' => ''// //調用一個對象定義顯示導航菜單 ));
?>
2如何刪除菜單選擇器沉余
默認Wordpress菜單生成的html代碼
代碼在菜單列表中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')) : ''; //刪除當前菜單的四個選擇器
}
效果如下: