Je souhaite supprimer le code HTML indésirable, principalement publié par mes éditeurs lors de la copie de texte à partir d'autres sources, telles que d'autres pages ou de Word.
Donc j'utilise
add_filter( 'content_save_pre' , 'my_function', 10, 1 );
pour le contenu dans les messages.
Je souhaite faire de même pour les taxonomies/termes et leur description, mais je n'ai trouvé aucun filtre dans la documentation WordPress, et je n'ai rien trouvé dans le code.
Il y a par exemple les filtres dynamiques suivants sanitize_term_fields()
:
edit_term_{$field}
pour le contexteeditpre_term_{$field}
pour le contextedbterm_{$field}_rss
pour le contexterssterm_{$field}
filtre (par défaut)et aussi ceux spécifiques à la taxonomie:
edit_{$taxonomy}_{$field}
pour le contexteeditpre_{$taxonomy}_{$field}
pour le contextedb{$taxonomy}_{$field}_rss
pour le contexterss{$taxonomy}_{$field}
filtre (par défaut)Si le contexte estraw, aucun des filtres ci-dessus n'est appliqué.
Le contextedbest utilisé dans les fonctions wp_insert_term()
et wp_update_term()
:
$args = sanitize_term($args, $taxonomy, 'db');
Il existe également le filtre pre_insert_term
dans wp_insert_term()
.
/**
* Filters a term before it is sanitized and inserted into the database.
*
* @since 3.0.0
*
* @param string $term The term to add or update.
* @param string $taxonomy Taxonomy slug.
*/
$term = apply_filters( 'pre_insert_term', $term, $taxonomy );
Voici des exemples simples de démonstration pourdescription du termedans le cas depost tagstaxonomie:
editcontext:
add_filter( 'edit_post_tag_description', 'wp_strip_all_tags' );
dbcontexte:
add_filter( 'pre_post_tag_description', 'wp_strip_all_tags' );
Vous voudrez peut-être tester et limiter cela davantage à vos besoins.
Remarque: Il serait peut-être préférable de le décaper à l'endroit où vous écrivez la description du terme sur le front-end, afin de ne pas déranger la saisie de l'utilisateur dans le backend?