Je veux savoir si c'est une bonne pratique selon le thème WordPress ou le développement de plugins.
add_action('init','all_my_hooks');
function all_my_hooks(){
// some initialization stuff here and then
add_action('admin_init',-----);
add_action('admin_menu',----);
// more like so
}
Merci
hooks
customization
init
admin-init
atinder
la source
la source
wp_loaded
et MS info.Je ne vois pas les grands avantages de cette pratique, pour ces raisons:
Vos fonctions de rappel ne sont pas appelées lors de l'enregistrement
Les fonctions
add_action
etadd_filter
ajoutent uniquement une entrée à la variable globale$wp_filter
qui contient tous les filtres et actions. Voir source . Il n'appelle pas votre fonction. Votre code ne s'exécutera que lorsque lesdo_action
etapply_filters
seront appelés (avec le nom de hook approprié), ce qui se produit très tard à l'endroit où ces hooks devraient être.Vous pourriez dire que cela rendra la variable globale
$wp_filter
plus grande => plus de mémoire requise. Mais je pense que la création d'une nouvelle fonction a le même problème.Code d'organisation
Tout mettre dans une seule fonction vous oblige à vous souvenir de tous les crochets dans tous les fichiers de votre thème / plugin. Vous ne feriez pas quelque chose comme ça:
header.php
: ajouter des crochets et des fonctions de rappel pour que les choses se passent dans l'en-tête (comme le menu, le script d'enregistrement)content.php
: ajouter des hooks et des fonctions de rappel pour filtrer le contenuadmin-menu.php
: ajouter des hooks et des fonctions de rappel pour ajouter le menu admin(supposez que ces fichiers sont placés dans votre thème / plugin)
Au lieu de cela, vous devez:
header.php
,content.php
,admin-menu.php
=> Cela vous rendra difficile de savoir ce qui se passe lorsque vous regardez le contenu du
header.php
fichier. Vous devez rechercher pour savoir quand ces rappels sont déclenchés.Et pensez à la situation lorsque vous avez plusieurs classes dans votre thème / plugin. Mettez-vous tous les crochets de toutes les classes au même endroit? Ou chaque classe a-t-elle une fonction wrapper qui contient tous les crochets? C'est trop redondant!
Au-dessus de ces raisons, je pense que c'est un style personnel :). Je vois que certains frameworks comme Hybrid font ce que vous avez dit. Parfois, cela me rend difficile de creuser dans ces cadres!
la source