簡體   English   中英

如何在功能中定位特定的wordpress菜單(wp_nav_menu)?

[英]How to target specific wordpress menus (wp_nav_menu) in a function?

我想創建一個函數,該函數自動用圖標替換一個特定菜單中的菜單項。 到目前為止,一切正常。 但是我只希望該功能以某個特定菜單為目標,而不是頁腳菜單為目標。

我找到了類似的帖子( 如何在功能中定位特定的wp_nav_menu? )。 但是我必須說,我對PHP和wordpress主題開發還不太陌生,因此無法將其他帖子解決方案轉移到我的代碼中。

// Register Navigation
add_action('after_setup_theme', 'cwb_register_nav');

function cwb_register_nav() {
    register_nav_menus(array(
        'header_nav_main' => 'Header Main Navigation Menu',
        'header_nav_social' => 'Header Social Menu',
        // 'posts_categories_menu' => 'Posts Categories Menu',
        'footer_sitemap_menu' => 'Footer Sitemap Menu',
        'footer_legal_menu' => 'Footer Legal Menu',
        'footer_social_menu' => 'Footer Social Menu'
    ));
}

// Replacing Text with Icons in the Navigation, for example Facebook & Twitter

add_filter('wp_nav_menu', 'my_page_menu_link_names');

function my_page_menu_link_names($menu) {
    $menu = str_replace('Facebook', '<i class="icon facebook"></i>', $menu);
    $menu = str_replace('Twitter', '<i class="icon twitter"></i>', $menu);
    $menu = str_replace('Instagram', '<i class="icon instagram"></i>', $menu);
    $menu = str_replace('LinkedIn', '<i class="icon linkedin"></i>', $menu);
    $menu = str_replace('Google Plus', '<i class="icon googleplus"></i>', $menu);
    $menu = str_replace('Pinterest', '<i class="icon pinterest"></i>', $menu);
    $menu = str_replace('RSS', '<i class="icon rss"></i>', $menu);
    $menu = str_replace('Whatsapp', '<i class="icon whatsapp"></i>', $menu);
    return $menu;
}

同樣,我希望“ my_page_menu_link_names”功能僅影響“ header_nav_social”菜單,而不會影響“ footer_social_menu”,例如到目前為止。

我自己找到了解決方案。 我不知道為什么以前使用“ theme_location”的嘗試沒有奏效。

// Replacing Text with Icons in the Navigation, for example Facebook & Twitter
    add_filter( 'wp_nav_menu_items', 'my_page_menu_link_names', 10, 2 );
    function my_page_menu_link_names( $menu, $args ) {
        if ($args->theme_location == 'header_nav_social') {
            $menu = str_replace( 'Facebook', '<i class="icon facebook"></i>', $menu );
            $menu = str_replace('Twitter', '<i class="icon twitter"></i>', $menu );
            $menu = str_replace('Instagram', '<i class="icon instagram"></i>', $menu );
            $menu = str_replace('LinkedIn', '<i class="icon linkedin"></i>', $menu );
            $menu = str_replace('Google Plus', '<i class="icon googleplus"></i>', $menu );
            $menu = str_replace('Pinterest', '<i class="icon pinterest"></i>', $menu );
            $menu = str_replace('RSS', '<i class="icon rss"></i>', $menu );
            $menu = str_replace('Whatsapp', '<i class="icon whatsapp"></i>', $menu );
            return $menu;
        }
        return $menu;
    }

暫無
暫無

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

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