WordPress «PHP внутри PHP» — интегрируйте qTranslate с Meta Box

Для веб-сайта (WordPress) я хочу отображать даты с помощью известного плагина Meta Box, а веб-сайт должен быть предоставлен как на английском, так и на немецком языке, с плагином qTranslate.

Форматы дат на немецком и английском языках различаются: немецкий: дд.мм.г (31.12.16), английский: мм / дд / год (31.12.16). Таким образом, чтобы отобразить правильный формат в соответствии с языком, выбранным для посетителя, два плагина должны работать вместе.

Вот как я бы отображал дату без какой-либо языковой опции:

<?php echo rwmb_meta( 'exhibition_meta_beginning' ); ?>

Вот как я бы отображал перевод текста на веб-сайте за пределами содержимого записей и страниц (например, навигации по сайту):

<?php _e("[:en]Current[:de]Aktuell[:]"); ?>

Мой вопрос сейчас заключается в том, как я могу объединить две функции. Если бы это помогло, я бы согласился с разделением Exhibition_meta_beginning на Exhibition_meta_beginning_DE и Exhibition_Meta_beginning_EN, что означало бы, что мне приходилось вводить каждую дату дважды при создании нового экземпляра / сообщения, одну на немецком и один раз на английском языке.

Я пока не нашел ничего полезного — да, есть упоминания об этом, и есть какой-то способ использовать пользовательские поля (который является основой Meta Box) с qTranslate, но, похоже, ничего не работает и мои знания в PHP это самый минимум.

Поля ввода для метаданных, являющихся датами (и временем), определены в отдельном файле PHP, например, так (стандартная процедура Meta Box):

array(
'name'      => 'Beginn der Ausstellung',
'id'        => $prefix . 'beginn',
'type'      => 'date',
'format'    => 'dd.mm.y'
),

Он также не работал для реализации двуязычности в значение формата прямо здесь (он думает, что это формат даты, а не языковой тег, когда [: en] … появляется там), и что-то подобное в той части, где данные отображается (извините за любительскую попытку):

<?php __("[:en] echo rwmb_meta( 'exhibition_meta_beginn_EN' )[:de]echo rwmb_meta( 'exhibition_meta_beginn_DE' )[:]"); ?>

Спасибо!

0

Решение

Вы можете сделать это так,

$en = rwmb_meta( 'exhibition_meta_beginn_EN' );
$de = rwmb_meta( 'exhibition_meta_beginn_DE' );
echo __('[:en]'.$en.'[:de]'.$de.'[:]');

или создайте функцию, которая возвращает значение на основе языка

function __show_based_on_lang($en, $de) {
return ( qtranxf_getLanguage() == 'en') ? $en : $de ;
}

затем, чтобы использовать функцию, вы можете просто так:

echo __show_based_on_lang( rwmb_meta( 'exhibition_meta_beginn_EN' ), rwmb_meta( 'exhibition_meta_beginn_DE' ) );
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]