根据WP编码标准清洁和消毒php代码

时间:2019-06-23 17:37:50

标签: php wordpress html-sanitizing

我需要使用esc_html,wp_kses()等(https://developer.wordpress.org/reference/functions/wp_kses/)等函数按照WP编码标准清除几行代码。该代码在帖子详细信息页面上生成一个打印按钮。问题是我无法找出使用wp_kses函数的正确方法来显示页面上的按钮。 有人可以在这里帮我吗?我是php的初学者。预先感谢!

文件上的代码

<!-- printer friednly link  -->
    <?php if(function_exists('pf_show_link')){echo pf_show_link();} ?>

我要添加的代码未输出任何按钮

<!-- printer friednly link  -->
    <?php
    if ( function_exists( 'pf_show_link' ) ) {
        $allowed_tags = array(
            'strong' => array(),
            'a'      => array(
                'href'  => array(),
                'title' => array(),
            ),
        );
        echo wp_kses( $allowed_tags );
    }
    ?>

the button which renders from the code

1 个答案:

答案 0 :(得分:0)

我不确定您是否完全应该在此处使用wp_kses。如果您是使用函数生成该html输出的人,则无需清理。无论如何,如果您确实要这么做,则必须列出您使用的所有 html标签(也包括divimg ...)和全部这些标记内的属性(stylesrconclick ...)。尝试这样:

$allowed_tags = array(
    'div'    => array(),
    'img'    => array(
        'style' => array(),
        'src' => array(),
        'alt' => array()
    ),
    'strong' => array(),
    'a'      => array(
        'href'  => array(),
        'title' => array(),
        'rel' => array(),
        'onclick' => array(),
        'class' => array(),
        'data-wpel-link' => array()
    ),
);

echo wp_kses(pf_show_link(), $allowed_tags);