为什么在使用清理回调wordpress

时间:2016-04-22 16:10:09

标签: php wordpress

我正在使用此代码段。

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"

知道为什么吗?以及如何解决这个问题?

由于

2 个答案:

答案 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中使用字体真棒库时出现此问题。