簡體   English   中英

如何在函數中定位特定的wp_nav_menu?

[英]How to target specific wp_nav_menu in function?

我通過function.php在我的wp_nav_menu上添加了一個特定的類但是我無法定位特定的菜單:這就是我得到的

function add_menuclass_active($ulclass) {
   return preg_replace('/<a /', '<a class="list-group"', $ulclass, 1);
}
 add_filter('wp_nav_menu', 'add_menuclass_active');

我也嘗試過沒有運氣

function add_menuclass_active($ulclass) {
  if( $ulclass['theme_location'] == 'CUSTOM MENU' )
   return preg_replace('/<a /', '<a class="list-group"', $ulclass, 1);
}
add_filter('wp_nav_menu', 'add_menuclass_active');

感謝wordpress stack回答,我得到了這個解決方案:

將此添加到您的functions.php中

register_nav_menus(array(
'top-menu' => __('Menu1', 'twentyfourteen'),
'side-menu' => __('Menu2', 'twentyfourteen'),
'footer-menu' => __('Menu3', 'twentyfourteen')
)
);

function my_walker_nav_menu_start_el($item_output, $item, $depth, $args) {
    $menu_locations = get_nav_menu_locations();

    if ( has_term($menu_locations['top-menu'], 'nav_menu', $item) ) {
       $item_output = preg_replace('/<a /', '<a class="list-group" ', $item_output, 1);
    }

    return $item_output;
}
add_filter('walker_nav_menu_start_el', 'my_walker_nav_menu_start_el', 10, 4);

最后,您必須為特定菜單選擇“Menu1”選項,您必須從儀表板外觀 - >菜單中添加錨定制類。 [選擇menu2或menu3用於其錨鏈接不需要自定義類的其他菜單]

要將“活動類”添加到特定菜單的第一個菜單項,請嘗試以下方法:

function my_walker_nav_menu_start_el($item_output, $item, $depth, $args) {
    $menu_locations = get_nav_menu_locations();


    if ( has_term($menu_locations['top-menu'], 'nav_menu', $item) ) {
       $item_output = preg_replace('/<a /', '<a class="list-group" ', $item_output, 1);
if ($item->menu_order == 1){
 $item_output = preg_replace('/<a /', '<a class="list-group active" ', $item_output, 1);
}
    }

    return $item_output;
}
add_filter('walker_nav_menu_start_el', 'my_walker_nav_menu_start_el', 10, 4);

如果必須將活動類添加到所有菜單的第一個菜單項中,請使用以下命令:

function my_walker_nav_menu_start_el($item_output, $item, $depth, $args) {
    $menu_locations = get_nav_menu_locations();


    if ( has_term($menu_locations['top-menu'], 'nav_menu', $item) ) {
       $item_output = preg_replace('/<a /', '<a class="list-group" ', $item_output, 1);
    }
 if ($item->menu_order == 1){
 $item_output = preg_replace('/<a /', '<a class="active" ', $item_output, 1);
}
    return $item_output;
}
add_filter('walker_nav_menu_start_el', 'my_walker_nav_menu_start_el', 10, 4);

主題位置存儲在導航菜單參數中,您需要將其添加到您的函數參數中:

function add_menuclass_active( $nav_menu, $args ) {
    if( $args->theme_location == 'CUSTOM MENU' )
        return preg_replace( '/<a /', '<a class="list-group"', $nav_menu, 1 );
    return $nav_menu;
}
add_filter( 'wp_nav_menu', 'add_menuclass_active', 10, 2 );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM