[英]WordPress, how translate two different menus correctly with Polylang?
我需要菜单翻译方面的帮助。 我为两个页面“ Landing”和“ Blog”创建了两个不同的菜单。 在开始使用Polylang进行翻译之前,我的代码运行良好。
这是菜单代码:
<?php
if ( is_page( 'landing' ) ) {
wp_nav_menu( array(
'menu' => 'landing',
'menu_class' => 'nav navbar-nav darka',
'container' => 'false',
) );
} else {
wp_nav_menu( array(
'menu' => 'blog',
'menu_class' => 'nav navbar-nav darka',
'container' => 'false',
) );
}
?>
此代码创建菜单,如果有帮助:
add_theme_support( 'menus' );
function register_theme_menus() {
register_nav_menus(
array(
'landing-menu' => __('Landing Menu'),
'blog-menu' => __('Blog Menu')
)
);
}
add_action('init', 'register_theme_menus');
UPD :
我解决了这个问题!
的functions.php
<?php
add_theme_support( 'menus' );
// create menu
function register_theme_menus() {
register_nav_menus(
array(
'primary' => __('Primary Menu', 'nameyourtheme'),
'second' => __('Second Menu', 'nameyourtheme')
)
);
}
add_action('init', 'register_theme_menus');
?>
header.php文件
<?php
if (is_front_page()) {
wp_nav_menu( array(
'theme_location' => 'primary',
'menu_class' => 'nav navbar-nav darka',
'container' => 'false',
) );
}
else {
wp_nav_menu( array(
'theme_location' => 'second',
'menu_class' => 'nav navbar-nav darka',
'container' => 'false',
) );
}
?>
翻译多个菜单时,我遇到了同样的问题,但情况略有不同。 就我而言,这两个菜单位于标题的首页上。
的functions.php
'top_menu' => __('Top Menu', 'nameyourtheme')
这是我最初的主题菜单。 然后我像这样删除下划线:
'topmenu' => __('Top Menu', 'nameyourtheme')
而且有效。 当然,菜单名称的更改应应用在
header.php文件
'theme_location' => 'topmenu',
我的结论是Polylang仅能识别单个单词菜单名称。
不确定这是否有帮助,但我通常不这样注册菜单,而是将菜单命名为:
Menu fr_CA
Menu en_US
然后,该网站可以使用wordpress get_locale()轻松地用一只衬纸装载正确的一只。
<? wp_nav_menu(array('menu' => 'Menu '.get_locale())); ?>
我发现这比注册菜单更容易。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.