在我的主题中,我使用get\\u option()获取用户输入,并根据该输入声明一个新变量并打印在我的单张中。php文件。例如:
<?php
$tutorial_condition = get_option( \'tutorials_creater\' );
if ( $tutorial_condition == 1 ) {
$second_col_class = \'col-9\';
} else {
$second_col_class = \'col-2\';
}
?>
现在,当我在php文件中回显$second\\u col\\u class变量时,效果很好。但当我运行themecheck插件时,它会显示这样一个错误。
"E;发现可能的数据验证问题。对于呈现的上下文,必须正确转义所有动态数据"E;
我想像下面这样回应这个变量。
<div class="<?php echo $second_col_class; ?>">
//my code here..
</div>
我不能使用isset()函数,因为它只返回true或false。有没有其他选择?
最合适的回答,由SO网友:Sally CJ 整理而成
请参见this Codex article 对于进一步的指导,但在您的情况下,您可以使用esc_attr()
逃离$second_col_class
HTML属性中正在使用的值,即class
:
<!-- bad -->
<div class="<?php echo $second_col_class; ?>">
<!-- good -->
<div class="<?php echo esc_attr( $second_col_class ); ?>">
<!-- good -->
<div class="<?php esc_attr_e( $second_col_class, \'text-domain\' ); ?>">