为什么wp_kses没有像预期的那样保留样式属性?

时间:2014-12-29 作者:MMK

我想保留style属性$str只是一个示例,下面是我的代码:

$allowed_html = array(
     \'div\' => array(
         \'title\' => array(),
         \'class\' => array(),
         \'style\' => array()
    )
);

$str = \'<div title=\'Click to continue\' style=\'display:table\'>This is a button</div>\';
wp_kses($str, $allowed_html );
$str实际上会从一篇文章中收到一组html标记和属性。然后,我想去掉所有标记和属性,只留下divs标记、样式和标题属性

谢谢你,嗯。

1 个回复
最合适的回答,由SO网友:Matthew Boynes 整理而成

这是一个古老的问题,但为子孙后代提供了答案:

WordPress将根据允许的属性列表检查样式,并且仍然会删除style 属性(如果所有样式都不安全)。默认允许列表为:

  • text-align
  • margin
  • color
  • float
  • border
  • background
  • background-color
  • border-bottom
  • border-bottom-color
  • border-bottom-style
  • border-bottom-width
  • border-collapse
  • border-color
  • border-left
  • border-left-color
  • border-left-style
  • border-left-width
  • border-right
  • border-right-color
  • border-right-style
  • border-right-width
  • border-spacing
  • border-style
  • border-top
  • border-top-color
  • border-top-style
  • border-top-width
  • border-width
  • caption-side
  • clear
  • cursor
  • direction
  • font
  • font-family
  • font-size
  • font-style
  • font-variant
  • font-weight
  • height
  • letter-spacing
  • line-height
  • margin-bottom
  • margin-left
  • margin-right
  • margin-top
  • overflow
  • padding
  • padding-bottom
  • padding-left
  • padding-right
  • padding-top
  • text-decoration
  • text-indent
  • vertical-align
  • widthdisplay 如下所示,以使您的代码按预期工作:

    add_filter( \'safe_style_css\', function( $styles ) {
        $styles[] = \'display\';
        return $styles;
    } );
    

结束

相关推荐

Display Tags of Child Pages

我正在尝试在父页面上显示子页面的标记。在我的功能中。php:// add tag support to pages function tags_support_all() { register_taxonomy_for_object_type(\'post_tag\', \'page\'); } // ensure all tags are included in queries function tags_support_query($wp_query)