📅  最后修改于: 2023-12-03 15:06:02.628000             🧑  作者: Mango
WPML(WordPress 多语言)是一个强大的 WordPress 多语言插件,它能让站点变得全球化。在 WPML 中,将一个网站翻译成不同的语言非常容易。
本文将介绍如何使用 PHP 在 WPML 中显示语言切换器。
首先,我们需要使用 icl_get_languages
函数获取当前网站可用的语言。函数的返回值是一个关联数组,如下所示:
$languages = icl_get_languages('skip_missing=0');
print_r($languages);
输出的结果将会是类似于这种格式的:
Array
(
[en] => Array
(
[native_name] => English
[translated_name] => English
[language_code] => en
[country_flag_url] =>
[language_code_html] => en
[url] => http://example.com/
[missing] => 0
[translated] => 1
)
[fr] => Array
(
[native_name] => Français
[translated_name] => French
[language_code] => fr
[country_flag_url] =>
[language_code_html] => fr
[url] => http://example.com/fr/
[missing] => 0
[translated] => 1
)
...
)
接着,我们可以根据当前语言来选择语言切换器的形式。如果站点只有两种语言,可以使用一个简单的链接来实现语言切换。例如:
$current_language_code = ICL_LANGUAGE_CODE;
if ($current_language_code == 'en') {
$switch_to_language_code = 'fr';
} else {
$switch_to_language_code = 'en';
}
echo '<a href="' . esc_url(home_url('/', 'http')) . icl_make_full_translation_url($switch_to_language_code) . '">' . __('Switch to French', 'wpml') . '</a>';
如果站点有多种语言,可以在拉下菜单中使用语言切换器。例如:
$current_language_code = ICL_LANGUAGE_CODE;
echo '<select onchange="if (this.value) window.location.href=this.value">';
foreach ($languages as $language) {
if ($language['language_code'] != $current_language_code) {
echo '<option value="' . esc_url($language['url']) . '">' . esc_html($language['native_name']) . '</option>';
}
}
echo '</select>';
注意,这些示例代码应该嵌入到你的 WordPress 模板中。如果你想在某个插件中实现语言切换器,则需要使用不同的钩子和过滤器。
以上就是使用 PHP 在 WPML 中显示语言切换器的方法。祝你实现多语言网站的愉快!