1

現在のページがどの言語に翻訳されているかを表示したい。

たとえば、現在のページが英語で、翻訳がフランス語または他の言語で利用できる場合、スクリプトは翻訳されたページへのリンクをフランス語で出力する必要があります。利用可能な翻訳がない場合、何も出力されません。

これを行う方法。<?php if (function_exists('qts_language_menu')) qts_language_menu('both'); ?>現在、ページに翻訳があるかどうかに関係なく、すべての言語を返す関数を使用しています。

4

2 に答える 2

1

上記のコードを機能させるには、次の行を変更する必要があります。

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>';
于 2014-05-14T19:23:51.790 に答える
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>';
            }
        }
    }
}
?> 
于 2014-04-16T08:10:25.320 に答える