针对PHPCS的WordPress编码标准有多灵活?

时间:2016-06-07 作者:Cedon

在我的WordPress工作流中,我使用Gulp,并有一个任务使用WordPress编码标准测试通过PHPC运行我的PHP文件(https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards).

在编写我的comments.php 文件中,我遇到以下错误:

下一步应该是转义函数(请参阅Codex中的“数据验证”),而不是“\\u x”

这是由以下代码行生成的:

printf( _x( \'1 Comment on “%s”\', \'Comments Title\', \'jldc\' ), get_the_title() );
我几乎重复使用了WordPress附带的216主题中的同一行。出于好奇,我把PHPC和216进行了对比comments.php文件,并得到相同的错误。

现在,我可以轻松使用esc_html_x() 而不是_x 我想这就是指导方针想要我使用的。但是这一行呢:

printf(
   _nx(
      \'%1$s Comment on “%2$s”\',
      \'%1$s Comments on “%2$s”\',
      $comment_count,
      \'Comments Title\',
      \'theme-text-domain\'
      ),
      number_format_i18n( $comment_count ),
      get_the_title()
   );
或者我可以忽略错误吗?

2 个回复
最合适的回答,由SO网友:Scott Nelle 整理而成

考虑以下情况:

echo esc_html(
      sprintf(
         _nx(
               \'%1$s Comment on “%2$s”\',
               \'%1$s Comments on “%2$s”\',
               $comment_count,
               \'Comments Title\',
               \'theme-text-domain\'
         ),
         number_format_i18n( $comment_count ),
         get_the_title()
      )
);
在其中使用sprintf 然后逃避这个。

编码标准很清楚,您应该始终避免输出,并尽可能晚地这样做。但是,正如您所注意到的,即使是默认主题也不能完全遵循它们。

SO网友:Mark Kaplun

WordPress没有可执行的编码标准。有核心编码标准,有wordpress。com VIP编码标准等。这些标准都不是直接来自上帝,因为它们是基于您为PHP 5.2开发的想法,如果您没有明确的要求,它们甚至可能不是最好的遵循标准。

把它们作为指导方针,人们花了很多时间思考的事情不应该被忽视,但当它不符合你的具体情况时,不要觉得受到它们的约束。

在您的具体示例中,这是2016年主题中的一个bug,因为核心准则是翻译不应转义,转义应在翻译之后进行(翻译可能会引入引号之类的内容)。你应该牢记这一点,并遵循同样的路线,除非你想让翻译人员的生活更艰难。

相关推荐

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