Existe-t-il un moyen de modifier l’ordre des filtres, par exemple the_content avant qu'ils soient appliqués? Ce que j'ai actuellement, ce sont les idées suivantes:
/**
* Print all filters for some hook.
*/
function print_filters_for( $hook = '' ) {
global $wp_filter;
if( empty( $hook ) || !isset( $wp_filter[$hook] ) )
return;
print '<pre>';
print_r( $wp_filter[$hook] );
print '</pre>';
}
add_action('template_redirect','print_filters');
function print_filters() {
print_r(print_filters_for('the_content'));die;
}
Cela me donne les filtres, mais je ne peux pas penser à un moyen confortable de changer leurs priorités.
add_filter( 'the_content', 'my_content_filter_priority_reorder', 0 );
function my_content_filter_priority_reorder($the_content) {
// reorder filter priorities
return $the_content;
}
Quelqu'un at-il déjà eu ce problème et sait comment éventuellement le changer?
Si vous connaissez le rappel et la priorité existants, vous pouvez simplement supprimer les filtres, puis les ajouter à une priorité différente:
remove_filter( 'the_content', 'convert_smilies', 20 );
add_filter( 'the_content', 'convert_smilies', 30 );
remove_filter( 'the_content', 'capital_P_dangit', 11 );
add_filter( 'the_content', 'capital_P_dangit', 20 );