我有一个单词新闻网站,我需要添加多语言。我添加了WPML插件,但我不喜欢如何显示语言菜单。我在header.php中手动添加了两种语言(En,It)。 反正有没有添加脚本所以这两个“按钮”是我的多语言菜单?
Thanx in adv。
答案 0 :(得分:0)
您可以尝试使用Twig模板引擎制作自定义语言切换器。
以下是该主题的全面WPML documentation。
使用文章中的模板示例,您可以将其修改为:
<ul>
{% for code, language in languages %}
<li class="{{ language.css_classes }} my-custom-switcher-item">
<a href="{{ language.url }}">
{{ language.code }}
</a>
</li>
{% endfor %}
</ul>
答案 1 :(得分:0)
WPML非常擅长自动添加切换器。为此,您需要通过WPML中的设置选项告诉它如何以及在何处显示切换器。你应该完成这些设置,以使sute WPML能够正常运行。
但是,您可以使用以下代码手动添加它。请记住,您可能需要手动更改菜单名称以匹配主题名称。
// Filter wp_nav_menu() to add additional links and other output
// Show only other language in language switcher
// Use the new filter: https://wpml.org/wpml-hook/wpml_active_languages/
add_filter('wp_nav_menu_items', 'new_nav_menu_items', 10, 2);
function new_nav_menu_items($items, $args) {
// uncomment this to find your theme's menu location
//echo "args:
<pre>"; print_r($args); echo "</pre>
";
// get languages
$languages = apply_filters( 'wpml_active_languages', NULL, 'skip_missing=0' );
// add $args->theme_location == 'primary-menu' in the conditional if we want to specify the menu location.
if ( $languages && $args->theme_location == 'primary') {
if(!empty($languages)){
foreach($languages as $l){
if(!$l['active']){
// flag with native name
$items = $items . '
<li class="menu-item"><a href="' . $l['url'] . '"><img src="' . $l['country_flag_url'] . '" height="12" alt="' . $l['language_code'] . '" width="18" /> ' . $l['native_name'] . '</a></li>
';
//only flag
//$items = $items . '
<li class="menu-item menu-item-language"><a href="' . $l['url'] . '"><img src="' . $l['country_flag_url'] . '" height="12" alt="' . $l['language_code'] . '" width="18" /></a></li>
';
}
}
}
}
return $items;
}