J'essaie de générer un fichier SVG dans un modèle et PHPCS me dit que je dois échapper à la sortie. J'ai donc essayé avec KSES et il ne semble pas vouloir inclure l'attribut viewbox.
$allowed_html = array(
'svg' => array(
'xmlns' => array (),
'viewBox' => true
),
'path' => array(
'd'=> array(),
),
);
wp_kses(file_get_contents( $logo ), $allowed_html )
Des idées pourquoi cela ne fonctionne pas?
Trouvez votre question alors que je cherchais une réponse. J'ai essayé d'expérimenter un peu plus avec wp_kses et j'ai trouvé que viewbox
dans les arguments inférieurs semble résoudre le problème. Il n'est pas nécessaire de mettre l'attribut réel sur le SVG en minuscule, mais uniquement l'argument wp_kses()
.
C’est peut-être plus que ce dont vous avez besoin, mais voici ce que j’utilise actuellement:
<?php
$kses_defaults = wp_kses_allowed_html( 'post' );
$svg_args = array(
'svg' => array(
'class' => true,
'aria-hidden' => true,
'aria-labelledby' => true,
'role' => true,
'xmlns' => true,
'width' => true,
'height' => true,
'viewbox' => true, // <= Must be lower case!
),
'g' => array( 'fill' => true ),
'title' => array( 'title' => true ),
'path' => array( 'd' => true, 'fill' => true, ),
);
$allowed_tags = array_merge( $kses_defaults, $svg_args );
echo wp_kses( $rich_text_that_might_include_SVGs, $allowed_tags );