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タグと属性を受け取ります。それからそこから私はdivタグとスタイルとタイトル属性だけを除外してすべてのタグと属性を取り除きたいです
MMK、ありがとう。
これは古い質問ですが、これは将来の世代のための答えです。
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
width
このリストは、WordPressのほとんどのものと同様に、フィルタリングされています。次のようにdisplay
を追加して、コードを期待どおりに機能させることができます。
add_filter( 'safe_style_css', function( $styles ) {
$styles[] = 'display';
return $styles;
} );