Accueil > Wordpress > WordPress : personnaliser une fonction de WordPress

WordPress : personnaliser une fonction de WordPress

hookLes « Hooks » sont très utiles dans WordPress. Même si le terme est barbare (et d’ailleurs sujet à discussions) , le concept est simple et vous permet de vous « accrocher » à une fonction existante et à la « surcharger » pour en modifier le comportement.

Mais modifier le comportement de Worpdress ne doit pas se faire en touchant aux fichiers d’origine de WordPress, pour entre autre éviter de tout perdre à la mise à jour suivante ; le mécanisme de hook est alors utilisé. La plupart des extensions utilisent des hooks pour enrichir les fonctionnalités de WordPress.

Comment s’en servir ?

A moins d’écrire un plug-in, on peut écrire ses hooks dans le fichier functions.php, placé dans le répertoire de votre thème wp-content/themes/yourtheme .

Un hook permet dont de lier une fonction à une autre. Par exemple, on peut écrire une fonction personnalisée et l’attacher à une fonction de base de WordPress :

add_action ( 'publish_post', 'myCustomFunction' );

Dans cet exemple on accroche notre fonction myCustomFunction à celle standard de WordPress publish-post function. Chaque fois que WordPress exécutera cette fonction publish-post, il exécutera également notre fonction attachée.

On peut bien sûr détacher le hook par la fonction remove_action() :

remove_action ( 'publish_post', 'myCustomFunction' );

Exemple : supprimer la sauvegarde automatique des articles

Lorsque l’on écrit un article dans WordPress, celui-ci sauvegarde automatiquement des versions intermédiaires. Cette fonction est bien pratique, mais peut aussi avoir ses inconvénients : taille de la base qui s’accroit, traffic réseau.

Pour modifier le comportement de WordPress, il faut éditer le fichier functions.php et saisir le code suivant :

function disableAutoSave(){
    wp_deregister_script('autosave');
}
add_action( 'wp_print_scripts', 'disableAutoSave' );

Comme résultat, la fonction disableAutoSave() est appellée chaque fois que WordPress exécute wp_print_scripts() – « Runs just before WordPress prints registered JavaScript scripts into the page header » – http://codex.wordpress.org

Vous trouverez plus d’exemples sur Smashing Magazine

  1. Pas encore de commentaire
  1. Pas encore de trackbacks