WordPress的 - Qtranslate,只显示可用的语言(Wordpress - Qtra

2019-09-26 15:45发布

我想显示在其他语言当前页面被翻译成。

例如,如果当前页面是英文和翻译可以在法国或其他语言,然后脚本应该输出链接翻译页面法语。 如果没有可用的翻译,那么它不应该输出什么。

如何可以做到这一点。 现在我使用功能<?php if (function_exists('qts_language_menu')) qts_language_menu('both'); ?> <?php if (function_exists('qts_language_menu')) qts_language_menu('both'); ?>这回所有的语言,不管页面有翻译或没有。

Answer 1:

我写了这个代码来解决我的问题。 它不漂亮,但它的工作原理:

<?php
$enabled_languages = get_option('qtranslate_enabled_languages');
$language_names    = get_option('qtranslate_language_names');

foreach ($enabled_languages as $enable_language) {
    foreach ($language_names as $lang_code => $lang_name) {
        if ($enable_language == $lang_code && $enable_language != qtrans_getLanguage()) {
            $query  = "SELECT id FROM $wpdb->posts WHERE ID = $post->ID AND $wpdb->posts.post_content LIKE '%<!--:" . $lang_code . "-->%'";
            $result = $wpdb->get_results($query);

            if ($result) {
                global $qtranslate_slug;
                echo '<a href="' . $qtranslate_slug->get_current_url($lang_code) . '">' . $lang_name . '</a>';
            }
        }
    }
}
?> 


Answer 2:

上面的代码需要改变工作,改变这一行:

echo '<a href="' . $qtranslate_slug->get_current_url($lang_code) . '">' . $lang_name . '</a>';

改变这样的:

echo '<a href="' . qtrans_convertURL(get_permalink(), $lang_code) . '">' . $lang_name .   '</a>';


文章来源: Wordpress - Qtranslate to show only available languages