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