Dans la mesure du possible, il est préférable d'utiliser des crochets spécifiques à l'écran plutôt que plus génériques. init
, admin_init
, admin_footer
etc. (sauf si vous souhaitez que votre rappel s'exécute sur tous les écrans). Dans cette astuce, nous verrons comment vous pouvez facilement obtenir les crochets d’écran pour une page donnée..
Les crochets spécifiques à une page constituent le moyen le plus efficace (et le plus propre) de cibler un rappel uniquement pour les écrans pour lesquels vous en avez besoin. Ils comprennent:
load- page-hook
- appelé avant le chargement de l'écran (la logique de ceci peut être trouvée ici)admin_print_styles- page-hook
- action pour les styles d'impression dans le
de la page d'administrationadmin_print_scripts- page-hook
- action pour imprimer des scripts dans le
de la page d'administrationadmin_head- page-hook
- action déclenchée à l'intérieur du
de la page d'administrationadmin_footer- page-hook
- action déclenchée juste au-dessus de la fermeture
tag sur la page d'administrationMais quelle est la valeur de page-hook
pour une page particulière? En regardant le charge-*
accrocher en particulier, vous constaterez qu'il existe une logique assez compliquée dans la détermination de la page-hook
. En particulier, il traite les pages de plug-in personnalisées différemment des pages "principales" (telles que les pages de type d'article et de taxonomie) et, dans un souci de compatibilité ascendante, il utilisera plusieurs points d'ancrage pour le même écran lors de l'édition d'articles, de pages ou de catégories..
Les règles générales pour la valeur de page-hook
peut se résumer comme suit:
add_menu_page ()
(et fonctions associées) c’est le identifiant d'écran (la valeur renvoyée par add_menu_page ()
)edit.php
post-new.php
post.php
edit-tags.php
Cependant, le crochet de page est généré, il est finalement stocké dans le fichier global. $ hook_suffix
.
En général, ces règles suffisent pour déterminer les points d’accroché spécifiques à une page. Mais lorsque je travaille avec eux, je trouve souvent utile d’avoir une référence facile. Pour créer cette référence simple, nous allons ajouter un panneau à l'onglet "Aide" en haut à droite de chaque écran, qui répertoriera les détails de l'écran (ID d'écran, base de l'écran et, plus utile encore, l'écran de l'écran). suffixe de crochet). Il listera également les crochets spécifiques de l'écran.
Les panneaux de l'onglet d'aide ont été introduits dans la version 3.3, cela ne fonctionnera donc que pour les versions de WordPress 3.3+. Pour ajouter le panneau, nous utilisons le aide contextuelle
filtre. Ceci est un filtre pour des raisons de compatibilité ascendante, nous ne filtrons donc rien. Au lieu de cela, nous utilisons le WP_Screen :: add_help_tab
méthode.
/ * Ajouter une aide contextuelle * / add_filter ('contextual_help', 'wptuts_screen_help', 10, 3); function wptuts_screen_help ($ contextual_help, $ screen_id, $ screen) // La fonction add_help_tab pour screen a été introduite dans WordPress 3.3. if (! method_exists ($ screen, 'add_help_tab')) return $ contextual_help; / *… Générer du contenu d'aide… * / $ help_content = "; $ screen-> add_help_tab (array ('id' => 'wptuts-screen-help', 'title' => 'Informations sur l'écran', 'content' => $ help_content,)); return $ aide contextuelle;
Pour générer le contenu de l'aide, nous prenons le global $ hook_suffix
et l'ajouter aux tiges de crochet mentionnées ci-dessus. Nous obtenons également une liste des détails de l'écran, qui sont stockés en tant que propriétés du WP_Screen
objet.
global $ hook_suffix; // Liste des propriétés de l'écran $ variables = '
Ce qui va nous donner quelque chose comme:
Vous pouvez placer les éléments suivants dans le plug-in d’utilitaire de votre site ou (si vous le souhaitez), dans le thème de votre thème. functions.php. Assurez-vous de renommer wptuts_screen_help
à quelque chose d'unique à toi.
add_action ('contextual_help', 'wptuts_screen_help', 10, 3); function wptuts_screen_help ($ contextual_help, $ screen_id, $ screen) // La fonction add_help_tab pour screen a été introduite dans WordPress 3.3. if (! method_exists ($ screen, 'add_help_tab')) return $ contextual_help; global $ hook_suffix; // Liste des propriétés de l'écran $ variables = '