Le filtre wp_insert_attachment_data
est disponible dans wp_insert_attachment()
. Il permet de filtrer les données de publication en pièce jointe avant leur mise à jour ou leur ajout à la base de données.
$data = apply_filters( 'wp_insert_attachment_data', $data, $object );
Je n'ai pas besoin de modifier les données de publication, mais je dois effectuer une action à ce moment précis de l'exécution. Est-il acceptable d’accrocher ma fonction au filtre, d’effectuer certains traitements et de renvoyer $ data inaltérée? En fait, j'ai besoin d'utiliser $ data, mais je n'ai pas besoin de le changer. Par exemple:
function my_function( $data, $object ) {
// Do some stuff with $data here.
// No changes made to $data. Just return it.
return $data;
}
add_filter( 'wp_insert_attachment_data', 'my_function', 10, 2 );
Bien que je pense que cette solution fonctionnera pour mon objectif, j’estime que c’est un peu "bidouilliste" et qu’il va à l’encontre du but du filtre wp_insert_attachment_data
. Le but d'un filtre est de modifier une variable. Dans mon cas, je ne modifie rien.
Est-ce acceptable ou dois-je demander sur WordPress Trac l'ajout d'un crochet d'action?
Toutes les actions sont en fait des filtres internes.
Alors oui, vous pouvez faire les choses dans un crochet de filtre. Cependant, gardez à l'esprit quels filtres et ce que vous faites. Certains filtres sont utilisés partout et des opérations coûteuses peuvent entraîner des ralentissements massifs. Aussi méfiez-vous de la récursivité. Si votre opération coûteuse déclenche le filtre auquel vous êtes accroché ..