在我的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()
);
或者我可以忽略错误吗?
最合适的回答,由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
然后逃避这个。
编码标准很清楚,您应该始终避免输出,并尽可能晚地这样做。但是,正如您所注意到的,即使是默认主题也不能完全遵循它们。