我有一个变量,它从主题设置(如背景图像等)中提取数据,并将其存储在一个单独的文件中style 例如:
$style = \'style="\'.$background_image.$background_color.\'"\';
The
$background_image 和
$background_color 只是css值
background_image 和
background_color 可以在选项中设置。
我在标题中使用这个变量,如下所示
<header id="header" class="myheader" <?php echo $style; ?>>
现在这是不安全的,应该进行消毒,所以我补充道
esc_attr() 以转义该属性。
<header id="header" class="myheader" <?php echo esc_attr( $style ); ?>>
这反过来又使我的双引号变成
" 当然,这种风格行不通。现在我可以
htmlspecialchars_decode() 关于逃逸值,但这似乎。。。古怪的
另一个解决方案是style 直接放在标题中,只放转义值,这将解决双引号问题,但如果没有设置样式,则留下一个空的style 在我看来,这似乎也有点不必要。
最好的解决方案是什么?
如果我使用htmlspecialchars_decode() 我仍然得到一个关于转义函数的phpcs错误,这是非常恼人的。。。