工作包(_K)(一串 $内容,数组[]|string $allowed_html,字符串[] $允许的协议 = 数组() ):一串

过滤文本内容并去除不允许的HTML。

说明

此函数确保在给定的文本字符串中只出现允许的HTML元素名称、属性名称、属性值和HTML实体。

此函数需要未刷新的数据。

另请参见

参数

$内容一串必修的
要筛选的文本内容。
$allowed_html数组[]|一串必修的
允许的HTML元素和属性数组,或上下文名称,如“发布”。请参阅wp_kses_allowed_html()获取接受的上下文名称列表。
$允许的协议字符串[]可选择的
允许的URL协议数组。
默认为的结果wp_allowed_protocols().

违约:数组()

返回

一串筛选的内容仅包含允许的HTML。

更多信息

KSES是一个递归缩写词,代表“KSES剥去邪恶的脚本”。

对于参数$允许的协议,默认允许的协议为http协议,https(https),ftp文件,电子邮件,新闻,内部控制室,地鼠,nntp公司,喂养、和远程登录。这涵盖了所有常见的链路协议,除了javascript脚本,不应允许不受信任的用户使用。

来源

函数wp_kses($content,$allowed_html,$allowsed_protocols=array()){if(空($allowed_protocols)){$allowed_protocols=wp_allowed_protocols();}$content=wp_kses_no_null($content,数组('slash_zero'=>'keep'));$content=wp_kses_normalize_entities($content);$content=wp_kses_hook($content,$allowed_html,$allowsed_protocols);返回wp_kses_split($content,$allowed_html,$allowsed_protocols);}

变更日志

版本说明
1.0.0介绍。

用户贡献的笔记

  1. 跳到注释10内容

    WordPress中的许多函数名都是自解释的,如果不是,那么它们的文档通常会对其名称的来源进行一些说明。我发现这使得以后回忆起他们的名字和用法更容易。然而,wp_kses(_K)是一个例外。所以,对于其他想知道的人来说:

    克塞斯来自术语XSS(跨站点脚本)和访问。它也是“”的递归缩写(每个开源项目都应该有一个!)k个空间站旅行e(电子)维尔脚本”。

  2. 跳到备注11内容

    允许的HTML标记数组
    这是一个如何格式化允许的HTML标记和属性数组的示例。

    阵列(“a”=>数组(“href'=>数组(),“title”=>数组()),'br'=>数组(),'em'=>数组(),“strong”=>数组(),);
  3. 跳到注释12内容

    WordPress(文字出版社)wp_kses(_K)是一种HTML过滤机制。如果需要在特定的(自定义)另外,WordPress中的wp_kses函数会很方便。

    <?php(电话)$str='每天检查Kses函数I am<strong>strong</strong>和cooler<a href=“#”rel=“nofollow ugc”>单击此处</a>';echo$str;$arr=数组('br’=>array(),'p'=>array(),'strong’=>array());echo“使用wp_kses函数的字符串….”。wp_kses($str,$arr);?>

    输出:
    之前wp_kses(_K):检查Kses函数I am更强每天都凉爽单击此处
    之后wp_kses(_K):使用wp_kses函数的字符串…。检查Kses函数I am更强每天都凉快点这里

    它将显示输出屏幕中显示的结果字符串。它只反映允许的标记坚强的,br个,第页定义见wp_kses(_K)函数和锚标记被删除。因此,没有形成单击此处文本的链接。

  4. 跳到注释14内容
    //允许img标记并支持svg base64数据,如:<img src=“data:image/svg+xml;base64,__base64_code__”/>函数wpdocs_allowed_html(){返回数组(“img”=>数组(“title”=>数组(),'src'=>数组(),“alt”=>数组(),));}函数wpdocs_allowed_protocols(){返回数组(“data”=>数组(),“http”=>数组(),“https”=>数组(),);}函数wpdocs_output_img(){$html=“”;对象开始();?><img src=“data:image/svg+xml;base64,Your_base64_code”title=“img_title”alt=“alt_info”/><?php(电话)$html=ob_get_contents();ob_end_clean();返回$html;}$allowed_html=wpdocs_allowed_html();$allowed_protocols=wpdocs_allowed_protocols();$wpdocs_img=wpdocs输出img();echo wp_kses($wpdocs_img,$allowed_html,$allow协议)
  5. 跳到注释15内容

    如果要保留某些样式属性,则必须使用另一个过滤器。
    不幸的是,wp_kses将根据允许的属性列表检查样式属性,如果所有样式都不安全,它仍将删除样式属性。

    例如,如果要将“display”属性保持在“style”内,请使用此筛选器:

    add_filter('safe_style_css',函数($styles){$styles[]=“显示”;return$styles;} );

    检查kses.php的默认值:
    https://core.trac.wordpress.org/browser/trunk/src/wp-includes/kses.php

  6. 跳到注释16内容

    如果您使用wp_kses来逃避SVG,请注意`wp_kses()`将删除参数中的camelcased属性。请确保将参数转换为小写,以对应大写。例如:

    $args=阵列(“svg”=>数组(“viewbox”=>true,//viewbox“preserveasespectratio”=>true,//preserveaspectratio),“lineargradient”=>数组(//lineargradient“gradientunits”=>true,//gradientunits“gradienttransform”=>true,//gradienttransform“spreadmethod”=>true,//spreadmethod),);
  7. 跳到注释17内容

    使用清理前端显示的SVG标记wp_kses(_K),以及特定于SVG标记的允许HTML元素和属性的列表。

    /***清理前端显示的SVG标记。**要清理的@param string$svg svg标记。*@return string已清理标记。*/函数前缀_sanitize_svg($svg=“”){$allowed_html=[“svg”=>['xmlns'=>[],“填充”=>[],“viewbox”=>[],“角色”=>[],“aria-hidden”=>[],“可聚焦”=>[],'高度'=>[],“宽度”=>[],],“路径”=>['d'=>[],“填充”=>[],],];return wp_kses($svg,$allowed_html);}

你必须登录在能够贡献笔记或反馈之前。