WordPress : Désactiver temporairement un filtre

Dans la série des petits morceaux de code qui peuvent faire gagner beaucoup de temps, je vais vous présenter des fonctions permettant de désactiver des filtres WordPress temporairement.

La manière la plus simple, comme vous le savez, est d’utiliser :

<?php
remove_filter( 'the_title', 'wptexturize' ); // Le premier argument étant le nom du filtre et le second la fonction qui lui est appliquée
$title = get_the_title();
add_filter( 'the_title', 'wptexturize' );

Il existe une manière plus robuste et plus propre d’effectuer cette opération, mais plus contraignante :

<?php
$filter_priority = has_filter( 'the_title', 'wptexturize' );
if ( false !== $filter_priority ) {
    remove_filter( 'the_title', 'wptexturize', $filter_priority );
}
$title = get_the_title( $post_ID );
if ( false !== $filter_priority ) {
    add_filter( 'the_title', 'wptexturize', $filter_priority );
}

Enfin, une manière très pratique d’utiliser cette opération est d’ajouter une fonction à votre functions.php :

<?php
/**
 * Lance $callback avec la fonction $handler désactivée pour l'action ou filtre $hook
 * @param string $hook nom du filtre
 * @param callable $handler fonction
 * @param callable $callback fonction à appeler lorsque le filtre est désactivé
 * @return mixed value valeur de retour de $callback
 */
function with_filter_disabled( $hook, $handler, $callback ) {
    $priority = has_filter( $hook, $handler );
    if ( false !== $priority ) {
        remove_filter( $hook, $handler, $priority );
    }
    $retval = call_user_func( $callback );
    if ( false !== $priority ) {
        $accepted_args = PHP_INT_MAX;
        add_filter( $hook, $handler, $priority, $accepted_args );
    }
    return $retval;
}

Cette fonction a été proposée par westonruter sur son compte Github.

Mat_

Au départ on sort avec un diplôme d’ingénieur de l’ESIL (devenu Polytech’Marseille) en Informatique, réseau et multimédia, spécialisé dans les Systèmes d’Informations et Services E-Business. En même temps on bosse, on développe, on apprend. Et maintenant on entreprend.Passionné de nouvelles technologies, et évangéliste de WordPress, j’aime découvrir, tester, rechercher.

Vous aimerez aussi...

Suivez Kune.fr sur les réseaux sociaux !

Kune.fr est votre site de ressources web. Vous y trouverez de nombreux outils utiles pour le web.
Alors n'hésitez plus, aimez notre page !

  • Ressources Wordpress, tutoriels, plugins et thèmes
  • Ressources design, packs d'icônes, kits UI ...
Fermer cette popup
%d blogueurs aiment cette page :