Comment utiliser les crochets d'action WordPress dans la personnalisation du thème
Les thèmes enfants WordPress offrent un moyen relativement simple de personnaliser l'aspect et la convivialité d'un thème. Si les options du thème ne vous fournissent pas de choix de conception adéquats, vous pouvez simplement ajouter une nouvelle règle au fichier de feuille de style par défaut du thème enfant appelé style.css. Mais que se passe-t-il quand vous voulez aussi modifier la fonctionnalité du thème? C’est l’un des cas où des actions WordPress viennent à votre aide.
WordPress est devenu si populaire en partie à cause de sa grande personnalisation. WordPress Core est chargé avec différents crochets permettant aux développeurs de modifier ou d’améliorer les fonctionnalités par défaut. De plus, nous sommes autorisés à inclure crochets personnalisés dans nos thèmes et plugins pour aider d'autres développeurs à adapter facilement notre code à leurs besoins.
À propos des crochets WordPress
Les hameçons WordPress fonctionnent un peu de la même façon que les hameçons réels, en ce sens que vous pouvez attraper le poisson que vous voulez au bon endroit si vous les utilisez correctement..
Vous pouvez supprimer une fonction interceptée (par exemple, vous pouvez supprimer la barre d’administration de WordPress pour les utilisateurs de bas niveau), vous pouvez laissez-le intact et l'améliorer avec votre propre fonctionnalité (par exemple, vous pouvez ajouter plus de menus ou de zones de widgets à un thème), ou vous pouvez le remplacer (vous pouvez par exemple modifier le comportement d'une fonction principale).
Il existe deux types de crochets différents dans WordPress: actes et filtres. Dans cet article, nous allons voir comment nous pouvons utiliser les crochets d'action dans la personnalisation du thème.
Comment fonctionnent les crochets WordPress
Utiliser un langage très simple, actes indique que quelque chose s'est passé pendant le cycle de vie d'une page WordPress: certaines parties du site ont été chargées, certaines options ou paramètres ont été configurés, des plugins ou des widgets ont été initialisés, etc..
Les filtres sont différents de actes dans leur nature. Ils ont l'habitude de transmettre des données à travers, et modifier, gérer ou intercepter avant de le rendre à l'écran ou de sauvegarder les données de l'utilisateur dans la base de données.
À chaque étape importante du cycle de vie d'une page WordPress, il existe soit un action ou un filtre crochet auquel nous pouvons ajouter notre code personnalisé pour modifier le comportement par défaut à nos besoins.
Certaines actions et certains filtres en cours d'exécution lors d'une requête dépendent de la page demandée par l'agent utilisateur: par exemple, dans une publication unique, des hooks de requête associés à des publications individuelles sont disponibles, mais des hooks associés à d'autres parties du site (par exemple, la zone d'administration). ne sont pas.
Trouver des crochets d'action
La référence d'action du Codex WordPress donne un aperçu détaillé des actions exécutées dans le cadre de différentes requêtes. L’important est que si nous voulons accomplir une tâche, nous devons accrocher au bon endroit, pas avant ni après, sinon l'action ne sera pas terminée.
Donc, par exemple si nous voulons ajouter notre code Google Analytics à un site nous devons le faire accrocher notre action juste avant le pied de page est chargé.
Si nous parlons de personnalisation de thème, les crochets d’action peuvent provenir de deux endroits différents: de WordPress Core et le thème lui-même. Il y a des thèmes qui n'ont pas de crochets du tout, mais d'autres fournissent aux développeurs un ou plusieurs - c'est toujours le choix de l'auteur du thème. Le thème par défaut Twenty Fifteen a un seul crochet d’action pour la personnalisation du pied de page sous le nom 'vingtfifteen_credits'..
Si vous aimez parcourir le code source, vous pouvez également trouver facilement des crochets d’action. Des points d'ancrage sont ajoutés au code avec la fonction WordPress do_action ().
Si vous effectuez une recherche rapide de l'expression 'do_action' dans un éditeur de code plus avancé - comme je l'ai fait dans Eclipse ci-dessous -, vous pouvez voir une liste des emplacements où vous pouvez raccorder vos fonctionnalités personnalisées au noyau. J'ai cherché dans le / wp-includes / dossier, mais vous pouvez également lancer une recherche du / wp-admin / dossier contenant les points d'ancrage associés au tableau de bord WordPress (zone d'administration).
La bonne chose est que les noms des crochets d'action sont généralement assez explicites, mais il y a généralement un bon commentaire dans le code cela peut vous donner plus de connaissances si le crochet d'action donné est bon pour la raison pour laquelle vous voulez l'utiliser.
Par exemple, le commentaire de code avant le hook d’action 'widgets_init' indique “se déclenche après que tous les widgets WordPress par défaut aient été enregistrés”. Si vous jetez un coup d'œil au code avant ce point d'ancrage, vous pouvez rechercher l'initialisation de tous les widgets WP par défaut, afin que vous puissiez être sûr que le commentaire ne vous a pas menti. Si vous souhaitez enregistrer votre propre widget personnalisé, ce sera le bon endroit.
Dans de nombreux cas, le code source nous fournit beaucoup plus d’informations que le Codex, c’est donc une bonne idée d’apprendre à naviguer rapidement dans celui-ci..
Ajoutez vos propres actions
Lorsque vous souhaitez ajouter votre propre action, vous devez créer une fonction personnalisée et lier cette fonction à un crochet d'action spécifique en utilisant la fonction add_action () de WordPress. Les actions personnalisées ajoutées avec la fonction add_action () sont généralement déclenché sur place lorsque le noyau appelle la fonction do_action () appropriée.
Voyons un exemple simple.
Comment trouver le crochet d'action dont vous avez besoin
Supposons que vous souhaitiez ajouter votre favicon personnalisé à votre site. Tout d’abord, vous devez trouver le bon crochet d’action auquel vous pouvez associer vos propres fonctionnalités..
Réfléchissons. Si vous vouliez ajouter un favicon à une page HTML simple, où le placeriez-vous? Bien sûr, vous devez le placer à l'intérieur du
section du fichier HTML avec le balisage suivant:Donc, le crochet d’action dont vous avez besoin doit être liée au chargement du section.
(1) Ouvrez la référence de l'action et voyez ce qu'elle a à offrir. Nous avons de la chance, car si nous parcourons les actions, nous ne pouvons en trouver qu’une, wp_head, qui, en fonction de son nom, a la possibilité d’être liée au chargement du fichier.
section.(2) Pour être sûr, consulter la documentation dans le codex WordPress. Le Codex recommande que “vous utilisez ce crochet en faisant en sorte que votre fonction renvoie la sortie au navigateur”, donc pour le moment, cela semble être parfait pour nous. Mais vérifions cela dans le code source.
(3) Comme ce crochet n’est pas lié à la zone administrative, nous devons lancer notre recherche dans le répertoire / wp-includes / dossier. Si nous recherchons le mot 'wp-head', nous obtiendrons de nombreux résultats car cette action spécifique est utilisée plusieurs fois par WP Core..
Nous devons rechercher l'endroit où il est défini, alors recherchez l'expression. do_action ('wp_head'. Notez que nous n'avons pas terminé les parenthèses, car nous ne pouvons pas encore être sûr si cette action a des paramètres ou non..
Eclipse ne renvoie qu'un seul résultat pouvant être trouvé à l'intérieur du /wp-includes/general-template.php fichier. Le commentaire avant la définition du crochet d’action dit que “imprime des scripts ou des données dans la balise head au début”, alors maintenant nous pouvons être sûrs que wp_head est le crochet d'action dont nous avons besoin.
Vérification des paramètres
Lorsque vous ajoutez vos propres actions, vous devez également vous assurer que le hook que vous souhaitez utiliser prend des paramètres ou non. Vous pouvez facilement le trouver en regardant la fonction do_action ().
La syntaxe de la fonction do_action () est la suivante:
do_action ('name_of_action' [, $ paramètre1, $ paramètre2,…])
Seul le nom de l'action est requis, les paramètres sont facultatifs. Si vous trouvez des arguments dans l'appel correspondant de la fonction do_action (), vous devez les inclure dans la déclaration de la fonction personnalisée que vous créez.
Si vous n'en trouvez pas, votre fonction personnalisée doit fonctionner sans arguments. Dans la définition do_action () du hook d’action wp_head, il n’ya pas de paramètres.
Comparons-le à un crochet d'action qui prend un paramètre. Le hook d'action appelé 'wp_register_sidebar_widget' prend un paramètre que vous devez toujours transmettre à la fonction personnalisée que vous liez au hook..
Voyons la différence dans la syntaxe do_action () des deux cas:
do_action ('wp_head'); do_action ('wp_register_sidebar_widget', $ widget);
Dans le premier cas, il n'y a pas de paramètre, la fonction personnalisée utilisera donc la syntaxe suivante:
function my_function_without_parameters () …
Dans le second cas, il y a un paramètre que vous devez toujours transmettre en tant qu'argument dans la déclaration de votre fonction personnalisée:
function my_function_with_parameters ($ widget) …
Comment accrocher votre fonction personnalisée dans
Maintenant, nous savons tout ce dont nous avons besoin. Créons notre fonction personnalisée qui affichera un favicon sur notre site.
Tout d’abord, créez une nouvelle fonction sans aucun argument, puis reliez-la au crochet d’action wp_head à l’aide de la fonction add_action () WordPress.
fonction custom_add_favicon () echo ''; add_action ('wp_head', 'custom_add_favicon');
Tu dois passer le nom du crochet d'action à la fonction add_action () comme argument d'abord, alors vous devez ajoutez le nom de votre fonction personnalisée.
Ce sont les deux paramètres obligatoires de add_action (). Il a aussi deux paramètres optionnels, priorité et arguments acceptés. Voyons comment utiliser ces.
Définir les priorités
Il arrive souvent que plusieurs actions soient liées au même crochet. Alors lequel sera exécuté en premier? C’est là que nous pouvons utiliser le paramètre optionnel $ priority de la fonction add_action ().
Nous ajoutons la priorité comme un entier positif, la valeur par défaut étant 10. Si nous voulons qu'une action soit exécutée tôt, nous lui donnons une valeur inférieure, si nous voulons qu'elle soit exécutée plus tard, nous lui donnons une valeur supérieure..
Donc, si nous pensons que le favicon doit être là tôt, nous pouvons améliorer notre précédent appel add_action () de la manière suivante:
add_action ('wp_head', 'custom_add_favicon', 5);
Veuillez noter que les priorités doivent toujours être définir par rapport aux autres fonctions personnalisées qui utilisent le même crochet d'action.
Ajouter le nombre d'arguments acceptés
Vous devez ajouter le nombre d'arguments acceptés si vous utilisez un hook d'action qui prend des paramètres. Voyons l'exemple que nous avons utilisé auparavant.
Le hook d'action 'wp_register_sidebar_widget' prend un paramètre. Ainsi, lorsque nous lions notre fonction personnalisée à ce hook, nous devons également l'inclure en tant qu'argument lorsque nous appelons la fonction add_action ()..
Notre code dans ce cas ressemblera à ceci:
function my_sidebar_widget_function ($ widget) // Votre code add_action ('wp_register_sidebar_widget', 'my_sidebar_widget_function', 10, 1);
Notez que nous devons ajouter également la priorité (nous avons choisi le défaut 10 ici) pour nous assurer que WordPress sait ce que chaque paramètre signifie. Si nous omettions la priorité, WordPress pourrait supposer que 1 est la priorité ce qui n'est pas vrai, car il indique le nombre d'arguments acceptés.
Conclusion
Vous pouvez effectuer de nombreuses expériences avec des points d’action dans la personnalisation du thème. Par exemple, vous pouvez ajouter vos scripts personnalisés (JS) et vos styles (CSS) à l'aide du hook d'action wp_enqueue_scripts ou votre code Google Analytics à l'aide du hook d'action wp_footer..
Vous pouvez non seulement ajoutez vos propres actions, mais vous pouvez aussi supprimer des fonctionnalités complètes depuis le noyau WordPress avec l'utilisation de la fonction remove_action () qui utilise la même logique que add_action ().
Si vous êtes un auteur de thème et que vous souhaitez créer un thème extensible, cela peut être une bonne idée de: ajoutez vos propres crochets d'action personnalisés aux fichiers de modèle appropriés avec la fonction do_action ().
Si vous voulez le faire, réfléchissez bien aux paramètres que d'autres développeurs qui utilisera votre thème devra passer comme arguments quand ils veulent accrocher leurs fonctionnalités personnalisées.
Lors de la conception des emplacements des crochets d’action personnalisés de votre thème, n’oubliez pas que cela n'a pas beaucoup de sens d'inclure des crochets de thème personnalisés aux mêmes endroits où WordPress Core lui-même a ses propres crochets.