J'ai un problème avec les widgets personnalisés et les normes de codage WordPress. Lorsque vous créez un widget personnalisé, votre classe doit avoir une méthode "widget" qui affiche le widget. Quelque chose comme:
<?php
public function widget( $args, $instance ) {
echo $args['before_widget'];
?> <span><?php echo esc_html( 'Great widget', 'text-domain' ); ?></span> <?php
echo $args['after_widget'];
}
?>
Bien que cela fonctionne parfaitement, cela ne passera pas PHP tests de renifleur de code avec les normes de codage WordPress, car $args['after_widget'];
et $args['before_widget'];
ne sont pas ignorés ...
Qu'est-ce que je fais mal?
Ces arguments contiennent du code HTML arbitraire et ne peuvent pas être échappés correctement. Ceci est essentiellement une limitation de la façon dont le code des widgets a été conçu et vous pouvez voir dans les classes de widgets de base qu'aucune échappement n'est effectuée sur celles-ci.
Leçons à apprendre:
Ceci est un problème avec des normes de codage trop strictes, pas avec la façon dont vous devriez écrire du code wordpress. Dans ce contexte, les deux paramètres sont supposés être du code HTML valide (ils sont définis dans le temps d'enregistrement de la barre latérale).
Quoi qu’il en soit, dans la plupart des outils comme celui-là, il existe un moyen de demander au linter/renifleur d’ignorer cette ligne ou cette fonction.
BTW les normes dont vous parlez sont probablement les normes wordpress.com VIP, pas les normes wordpress - https://make.wordpress.org/core/handbook/best-practices/coding-standards/php/