📜  wpml 显示语言切换器 - PHP (1)

📅  最后修改于: 2023-12-03 15:06:02.628000             🧑  作者: Mango

WPML 显示语言切换器 - PHP

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 中显示语言切换器的方法。祝你实现多语言网站的愉快!