Jan
09
Utiliser des scripts dans son plugin WordPress
Si vous souhaitez utiliser du Javascript ou des librairies externes comme jQuery par exemple, il va falloir les renseigner correctement pour que votre plugin puisse y faire appel dans ses fonctions. Sinon, vous aurez des erreurs dans la console du style « n’est pas un objet » ou « undefined ».
Suivant que votre plugin agisse sur la partie admin de WordPress ou dans le front end, l’ajout de scripts se fait de manière différente.
Pour la partie admin, il faut ajouter un hook sur le admin_head comme suit :
add_action('admin_head', 'my_plugin_admin_head');
La fonction my_plugin_admin_head sera appellée dans chaque page de l’admin dans le html head et vous pourrez alors y inclure vos scripts.
Avec la méthode précédente, la fonction sera appellée dans toutes les pages de l’admin. C’est pratique mais pas forcément très propre. En effet, vous n’avez pas forcément besoin de charger vos scripts dans toutes les pages. il faut mieux le faire uniquement dans les pages où votre plugin agit réellement. Voici la méthode pour le faire :
$page = add_menu_page('Mon plugin', 'Mon plugin', 10, __FILE__, 'my_plugin_management_menu');
add_action("admin_print_scripts-$page",'my_plugin_admin_head');
Avec cette méthode, lorsque l’on crée le menu de la page de son plugin dans l’admin, on récupère un handler de page que l’on utilise ensuite pour ajouter un hook sur admin_print_scripts qui va appeler la fonction my_plugin_admin_head.
Et côté front end alors, comment est ce que cela se passe? C’est très simple! On fait le hook comme suit :
add_action('wp_head','my_plugin_head');
La fonction my_plugin_head sera appelée à chaque formation de head html de page côté front end.
Pour finir, je vous fournis un bout de code pour vous donner une idée de ce que peut contenir votre fonction d’inclusion de scripts :
function my_plugin_admin_head() {
$plugin_url = trailingslashit(get_option('siteurl')) . 'wp-content/plugins/' . basename(dirname(__FILE__)) .'/';
?>
<script type="text/javascript" src="<?php echo $plugin_url;?>js/my.js"></script>
<?php
}
Retour au sommaire du dossier sur l’écriture d’un plugin wordpress |