我正在使用此代码段。
function html_sanitize_text( $input ) {
return wp_kses_post( force_balance_tags( $input ) );
}
我正在使用它来清理Wordpress自定义程序中的html
。
此文本字段中的html为<i class="fa fa-laptop" aria-hidden="true"></i>
在自定义程序中保存更改时 - 然后刷新 - 然后返回自定义程序内的此字段,Wordpress删除/删除aria-hidden="true"
。
知道为什么吗?以及如何解决这个问题?
由于
答案 0 :(得分:3)
如果您转到关于wp_kses_post
的{{3}},则会提到它只允许使用允许的HTML标记发布内容&#34;。
经过进一步调查,如果你查看wp core pag,关于允许的标签和属性的部分不包括aria-hidden
,所以我假设它被函数清除了html。
另外,关于清理您的输入,只是使用mysqli_real_escape_string()
(参考kses.php file)还不够吗?
答案 1 :(得分:0)
我最终用这个功能解决了我的问题。如果可能更好,请更正或编辑。
function html_sanitize_text($input) {
$filtered = wp_kses($unfiltered, $allowed_html, $allowed_protocols);
$allowed_html = array(
'aria-hidden' => array(),
'i' => array(
'class' => array(),
'aria-hidden' => array()
),
);
return $input;
}
保存更改时,这不会从定制程序中的输入字段中删除aria-hidden="true"
。
发布此版本以防将来在Wordpress中使用字体真棒库时出现此问题。