如何以编程方式更改Wordpress中的菜单?

时间:2014-09-26 09:44:19

标签: php wordpress

我用挪威语menu_no创建了一个菜单,用英语menu_en创建了一个菜单。

enter image description here

我可以看到我的主题只支持一个菜单,但我不打算一次使用多个菜单。因此,当用户选择英语时,如何更改活动菜单?

我在Google上找不到任何内容,但我在nav-menu.php找不到合适的功能。

更新
我找到了一个解决我问题的简单方法。我只是想有点不同。在我的functions.php中,我添加了以下代码:

add_action('init', 'register_menus');

function register_menus(){
    register_nav_menus( array(
        'menu_no' => 'Norwegian menu',
        'menu_en' => 'English menu',
    ) );
}

在我的header.php文件中我使用此代码:

global $lang;

$args = array(
    'theme_location' => 'menu_'.$lang,
    'container'         => false
);


<?php wp_nav_menu($args); ?>

瞧。我会稍后将其发布为答案 - 如果没有其他人提出更好的想法。

1 个答案:

答案 0 :(得分:0)

以下是如何做到这一点。

将此代码发送到function.php文件

// Register Navigation Menus
function custom_navigation_menus() {
$locations = array(
    'first_menu' => __( 'Menu for English language', 'text_domain' ),
    'second_menu' => __( 'Menu for Other Language', 'text_domain' ),
);
register_nav_menus( $locations );

}

// Hook into the 'init' action

add_action( 'init', 'custom_navigation_menus' );

您可以自定义上述代码。 现在使用wp_nav_menu函数显示你想要的任何地方

                              <?php
                             wp_nav_menu( array(
                                'menu'              => 'primary',
                                'theme_location'    => 'first_menu',
                            );

                             ?>

                            <?php
                             wp_nav_menu( array(
                                'menu'              => 'secondary',
                                'theme_location'    => 'second_menu',
                            );

                             ?>

您可以在不同的地方显示每个菜单。现在,您可以在菜单中选择主要和辅助