WordPress wp_nav_menu() 修改或自訂義文字及類別

WordPress modify wp_nav_menu() text and classes

<?php
/**
* WordPress modify wp_nav_menu text and classes
* https://v123.tw
*/
$args = array(
'theme_location' => 'main-menu',
'container' => 'v123-nav',
'container_id' => 'v123-menu-menu',
'menu_class' => 'v123-menu-div',
'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>',
'depth' => 5,
'link_before' => '<span>',
'link_after' => '</span>',
);
wp_nav_menu( $args );
/**
* Custom Nav Text
* https://v123.tw
*/
add_filter('nav_menu_item_title' , 'v123_nav_text' , 10 , 4 );
function v123_nav_text($title, $item, $args, $depth){
if(array_search('menu-item-has-children',$item->classes)){
$title.='<i class="icon-plus"></i>';
}
return $title;
}
/**
* Custom Nav Classes
* https://v123.tw
*/
add_filter('nav_menu_css_class' , 'v123_nav_class' , 10 , 2 );
function v123_nav_class ($classes, $item) {
if (in_array('current-menu-item', $classes) ){
$classes[] = 'active ';
}
return $classes;
}
/**
* 相關 hook 可參考
* https://developer.wordpress.org/reference/classes/walker_nav_menu/
*/

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料