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)。因此,要根据访问者选择的语言显示正确的格式 by/for,两个插件需要协同工作。
这是我在没有任何语言选项的情况下显示日期的方式:
<?php echo rwmb_meta( 'exhibition_meta_beginning' ); ?>
这就是我在 post 和页面内容(如网站导航)之外的网站上显示翻译文本的方式:
<?php _e("[:en]Current[:de]Aktuell[:]"); ?>
我现在的问题是,如何加入这两个函数。如果有帮助,我可以将 exhibition_meta_beginning 拆分为 exhibition_meta_beginning_DE 和 exhibition_meta_beginning_EN,这意味着我必须在创建新的 [=36= 时输入每个日期两次], 一个是德文,一个是英文。
我还没有发现任何有用的东西 – 是的,有提到它并且有某种方法可以将自定义字段(这是 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' )[:]"); ?>
谢谢!
你可以这样做,
$en = rwmb_meta( 'exhibition_meta_beginn_EN' );
$de = rwmb_meta( 'exhibition_meta_beginn_DE' );
echo __('[:en]'.$en.'[:de]'.$de.'[:]');
或者创建一个函数,return 值基于语言
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' ) );
对于网站 (Wordpress),我想使用著名的 Meta Box 插件显示日期,并且网站应该使用插件 qTranslate 以英语和德语提供。
德语和英语日期格式不同:德语:dd.mm.y (31.12.16),英语:mm/dd/y (12/31/16)。因此,要根据访问者选择的语言显示正确的格式 by/for,两个插件需要协同工作。
这是我在没有任何语言选项的情况下显示日期的方式:
<?php echo rwmb_meta( 'exhibition_meta_beginning' ); ?>
这就是我在 post 和页面内容(如网站导航)之外的网站上显示翻译文本的方式:
<?php _e("[:en]Current[:de]Aktuell[:]"); ?>
我现在的问题是,如何加入这两个函数。如果有帮助,我可以将 exhibition_meta_beginning 拆分为 exhibition_meta_beginning_DE 和 exhibition_meta_beginning_EN,这意味着我必须在创建新的 [=36= 时输入每个日期两次], 一个是德文,一个是英文。
我还没有发现任何有用的东西 – 是的,有提到它并且有某种方法可以将自定义字段(这是 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' )[:]"); ?>
谢谢!
你可以这样做,
$en = rwmb_meta( 'exhibition_meta_beginn_EN' );
$de = rwmb_meta( 'exhibition_meta_beginn_DE' );
echo __('[:en]'.$en.'[:de]'.$de.'[:]');
或者创建一个函数,return 值基于语言
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' ) );