web-dev-qa-db-fra.com

preg_replace et comment_form_defaults

c'était un peu une blague au début mais maintenant je me demande s'il est possible d'utiliser regex avec le hook comment_form_defaults. Voici ce que je recherche:

function remove_default_allowed_tags( $defaults) {
    $defaults = preg_replace('/<p class="form-allowed-tags">(.*?)<\/p>/','', $defaults);
    return $defaults;
}
add_filter('comment_form_defaults', 'remove_default_allowed_tags', 2);

Je sais que cela peut être facilement fait avec quelque chose comme ceci: $defaults['comment_notes_after'] = ''; return $defaults;

Mais je veux juste savoir si je peux utiliser ma regex dans ce contexte et si non, pourquoi. Merci pour votre réponse.

1
JMau

Vous pouvez utiliser regex partout où vous avez une chaîne à manipuler. C'est PHP de base. Il n'y a rien de spécial à propos de WordPress qui change cela.

Mais pourquoi utiliser regex quand il y a d'autres options? Aussi amusant qu’il soit, regex est délicat et facile à se tromper, et son utilisation entraîne des frais importants.

Ce que vous faites génère une "conversion de tableau en chaîne" Notice, en passant. preg_replace acceptera un tableau de chaînes comme troisième paramètre, mais $defaults['fields'] est un tableau de sorte que vous obtenez une Notice afin que cela ne fonctionne pas comme prévu si vous essayez pour modifier ce domaine.

2
s_ha_dum