可以使用函数输出WordPress主题中的文本域名吗

时间:2016-10-05 作者:Fabian Amran

我正在研究一个主题,我想把它翻译出来。我还没有在翻译文本中包含文本域,因为我还不知道文本域将是什么。我想,在我能为我的主题命名之前,我应该使用一个函数来输出我的文本域名,而不是在翻译文本上硬编码。

示例:

这是添加文本域的传统方式:

echo _e(\'Hello\', \'my-theme-name\');
我的方法如下:

function text_domain() {
   define(\'TEXT_DOMAIN\', \'my-theme-name\', true );
   echo TEXT_DOMAIN;
}
使用方法如下:

 echo _e(\'Hello\', text_domian());
。。。当我为我的主题命名时,我可以在一个地方更新它,而不是在每个文件中多次更新。

问题是:这是一种可行的方式吗?我的主题在获得WordPress主题审查团队的批准时会遇到问题吗?

1 个回复
最合适的回答,由SO网友:cjbj 整理而成

不,这不好。不不不这是my favourite Otto quote:

在所有翻译函数中,字符串中不允许有PHP变量,无论出于何种原因。

奥托对此进行了更详细的解释it is that translation calls are parsed, not executed . 因此,您的变量(更不用说函数)可能不会被计算,文本域也会中断。

因此,最好使用一个独特的名称,如wpse241589 如果您有更好的名称,请暂时搜索并替换您的textdomain。

相关推荐

Use Post ID in functions.php

我的functions.php. 它工作得很好:当预订时,它会给我发电子邮件。易于理解的然而,我希望它能给我发送该预订的post ID,而不仅仅是“你好,世界!”消息帮助function add_to_system() { // get post meta // $email = get_post_meta(\'\',$post_id) // $post_id = get_queried_object_id(); mail(\'michael.mc