好的,这就是为什么发布给您带来问题的实际代码很重要的原因。
这并没有什么错,这就是你最初拥有的一切:
return \'<button type="button" class="btn btn-success">Open Now</button>\';
如果这是错误,您可以忽略它。
另一方面,这确实需要转义:
$wppl_open = __(\'Open Now\',\'arika\');
return \'<button type="button" class="btn btn-success">.\'$wppl_open\'.</button>\';
的价值
$wppl_open
无法信任,因为用户可能会从外部影响它。错误配置或编写的翻译文件可能会导致此HTML中断,或者更糟的是,恶意翻译文件可能会使此代码不安全。此外,引号位置错误。
所以你需要逃跑$wppl_open
(并修复引号):
$wppl_open = __(\'Open Now\',\'arika\');
return \'<button type="button" class="btn btn-success">\' . esc_html( $wppl_open ) . \'</button>\';
或者,您可以在执行转换功能的同时使用
esc_html__()
:
$wppl_open = esc_html__(\'Open Now\',\'arika\');
return \'<button type="button" class="btn btn-success">\' . $wppl_open . \'</button>\';
但我不能保证你正在使用的主题检查插件会认为这是安全的,因为如果你只看最后一行,它看起来仍然像是在回显一个未转义的变量。