在满足WordPress PHPCS的同时翻译常量

时间:2018-06-29 作者:David Sword

以下方法有效,但不符合要求PHP Code Sniffer WordPress coding standards

<?php esc_html_e( ADDRESS, \'wprig\' ); ?>
林特对我喊道:

[WordPress.WP.I18n.nonsigularstringliteraltext]$text参数必须是单字符串文字,而不是“ADDRESS”。

对于上述错误,以下操作也不起作用:

<?php esc_html_e( (string)ADDRESS, \'wprig\' ); ?>
<?php esc_html_e( strval(ADDRESS), \'wprig\' ); ?>
<?php esc_attr_e( ADDRESS, \'wprig\' ); ?>
我知道constants can be exploited 因此,这是必要的。除此之外,还有什么办法//phpcs:ignore, 或者这不是一个好的做法,我应该重新使用常量?

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

不能将常量或实际字符串以外的任何内容用于转换函数。

这是因为读取代码并生成可翻译字符串的代码实际上并不是运行代码,而是读取代码。

以下是关于该主题的更详细帖子:

http://ottopress.com/2012/internationalization-youre-probably-doing-it-wrong/

但简短的版本是:

这是错误的:

<?php esc_html_e( ADDRESS, \'wprig\' ); ?>
除了以下几点外,没有什么可以纠正这一点:

<?php esc_html_e( \'Actual String here\', \'wprig\' ); ?>

结束

相关推荐

Disable escaping html

我在用SyntaxHighlighter Evolved 突出显示代码示例。E、 g。[csharp] string s = \"text\"; List<int> numbers = new List<int>(); [/csharp] 当我第一次保存它时,没关系,但编辑wordpress时,文本会更改为[csharp] string s = &quot;text&quot;; List&lt;int&am