Wordpress - Qtranslate для отображения только доступных языков

Я хочу показать, на какие языки переведена текущая страница.

Например, если текущая страница на английском языке, а перевод доступен на французском или на каком-либо другом языке, то скрипт должен вывести ссылку на переведенную страницу на французском языке. Если перевод недоступен, он ничего не должен выводить.

Как это можно сделать. Сейчас я использую функцию <?php if (function_exists('qts_language_menu')) qts_language_menu('both'); ?> которые возвращают все языки, независимо от того, есть ли на странице перевод или нет.

2 ответа

Решение

Я написал этот код, чтобы решить мою проблему. Это не красиво, но это работает:

<?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>';
            }
        }
    }
}
?> 

Над кодом необходимо изменить, чтобы работать, измените эту строку:

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>';
Другие вопросы по тегам