Je veux conserver l'attribut style. $ str n'est qu'un exemple, voici mon code:
$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 recevra en fait un tas de balises et d'attributs HTML à partir d'un article. Ensuite, à partir de là, je souhaite supprimer toutes les balises et tous les attributs, en ne laissant que les balises divs, ainsi que les attributs de style et de titre.
Merci, MMK.
C'est une question plus ancienne, mais voici la réponse pour les générations futures:
WordPress comparera les styles à une liste blanche et supprimera l’attribut style
si aucun de ces styles n’est sûr. La liste blanche par défaut est:
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
Comme avec la plupart des choses dans WordPress, cette liste est filtrée! Vous pouvez y ajouter display
comme suit pour que votre code fonctionne comme prévu:
add_filter( 'safe_style_css', function( $styles ) {
$styles[] = 'display';
return $styles;
} );