How to translate menu items?

时间:2015-01-14 作者:Code357

当我选择网站语言时,有没有办法翻译菜单?有没有人能在不使用插件的情况下解决这个问题?

3 个回复
SO网友:Vincent Wong

您可以使用其他语言创建菜单。然后使用条件代码切换菜单。也可以使用菜单的标题属性。

if($language==\'us\'):
wp_nav_menu(menu1);
else:
wp_nav_menu(menu2);
endif;
enter image description here

SO网友:elicohenator

您可以使用Polylang插件,它将为每种语言创建不同的模板,并为每种语言集成不同的菜单。

从这里开始阅读并深入了解:https://wordpress.org/plugins/polylang/

SO网友:Sam Bull

我只是写了一个简单的钩子来使用普通的翻译函数,我只是把它添加到我的主题functions.php 文件

/** Translate menu items. */
function translate_menu_item_frontend($item_output, $item) {
    if (property_exists($item, \'title\')) {
        $parts = explode(\'|\', $item->title);
        $context = count($parts) > 1 ? $parts[0] : null;
        $text = end($parts);

        return preg_replace(
            \'/(<.*?>).*(<\\/.*?>)/s\', \'$1\' . _x($text, $context) . \'$2\', $item_output, 1);
    }

    return $item_output;
}
add_filter(\'walker_nav_menu_start_el\', \'translate_menu_item_frontend\', 20, 2);
add_filter(\'megamenu_walker_nav_menu_start_el\', \'translate_menu_item_frontend\', 20, 2);
例如,这意味着您可以将菜单项导航标签设置为“主页”,并使用内置核心翻译进行翻译。还可以指定用分隔的上下文|, 因此,例如,“主题初学者内容|联系人”将使用内置核心翻译来表示“联系人”。

如果您还想提供自己的翻译,那么可以轻松地将其调整为支持自定义域。

结束

相关推荐

Problem with custom menus

在菜单上,我说的是自定义菜单,我有一个带有几列的页脚,每列都有一个项目列表,每列菜单都需要从wp admin上的菜单选项进行更新,所以我创建了关于函数的部分。调用菜单并在页脚上添加每个菜单的php。php文档,类似于:<?php wp_nav_menu( array(\'menu\' => \'f-1\', \'menu_class\' => \'\', \'container\' => \'nav\' )); ?> <?php wp_nav_menu( arr