如何在WordPress中的自定义翻译短代码中返回翻译的字符串



我有一个翻译插件(Loco Translate),我想在WordPress管理中的页面编辑器中使用<?php _e('text', 'domain'); ?>翻译我的页面。是否可以 ?我尝试了短代码,但结果是评论的...谢谢!

编辑:

我的短码功能:

function translation_shortcode($atts) {
     $a = shortcode_atts( array(
        'name' => '',
    ), $atts );
    return "<?php echo __('" . $a['name'] . "', 'pulsdesign'); ?>";
}
add_shortcode( 'translation', 'translation_shortcode' );

在页面编辑器中:

[translation name="Softwares and sensors for remote and real time physiological monitoring"]

结果:

<!--?php echo __('Softwares and sensors for remote and real time physiological monitoring', 'pulsdesign'); ?-->

问题似乎是 return "<?php echo __('" . $a['name'] . "', 'pulsdesign'); ?>";

这将返回 string <?php ...,最终将在整个浏览器中。而且浏览器不知道该如何处理PHP代码,他们无法执行它。

相反,您应该返回翻译结果,如Marcel Kohls评论:

return __($a['name'] 'pulsdesign');

最新更新