WordPress “PHP inside of PHP” – 将 qTranslate 与 Meta Box 集成


Wordpress “PHP inside of PHP“ – Integrate qTranslate with Meta Box

对于网站(Wordpress(,我想使用众所周知的插件Meta Box显示日期,并且该网站应以英语和德语提供,并带有插件qTranslate。

德语

和英语日期格式不同:德语:dd.mm.y (31.12.16(,英语:mm/dd/y (12/31/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文件中定义,如下所示(标准元框过程(:

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' )[:]"); ?>

谢谢!

你可以这样做,

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