WordPress : personnaliser une fonction de WordPress
Les « 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…
Commentaires récents