我有一个变量,它从主题设置(如背景图像等)中提取数据,并将其存储在一个单独的文件中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错误,这是非常恼人的。。。