@Arlen: Comme le souligne Keith S, la liste des crochets d'Adam Brown est la ressource de fait des crochets pour WordPress. Cependant, ce n'est pas parfait:
Il ne montre pas les crochets par ordre d'appels,
Il ne fournit pas le nom du fichier ou le numéro de ligne où invoqué,
Il ne fournit pas un nombre d'arguments passés,
Ce n'est pas une liste complète car certains hooks peuvent être appelés dynamiquement,
Et il ne montre pas les crochets des plugins.
Ainsi, bien que la liste d'Adam soit une excellente ressource, en particulier pour comprendre quand des points d'ancrage ont été ajoutés, ce n'est pas aussi utile que si vous pouviez instrumenter les points d'ancrage sur une page donnée de votre propre site.
Cela fait quelque temps que je joue à cette idée, alors votre question m'a amené à écrire un plugin appelé " Instrument Hooks for WordPress ". Vous pouvez trouver la source complète ci - dessous la capture d'écran et vous pouvez également la télécharger depuis gist ici .
Alors, voici une capture d'écran de l'instrumentation:
Vous déclenchez l'instrumentation à l'aide du paramètre URL instrument=hooks, à savoir:
Je voudrais ... c'est une de ces choses que vous n'utiliseriez peut-être qu'une ou deux fois, mais quand vous l'utilisez, vous remerciez les étoiles pour cela :)
Keith S.
1
Mike, c'est très cool! Mais que recommanderiez-vous pour comprendre réellement le rôle de chaque filtre / action? Existe-t-il un fichier dans lequel tous sont répertoriés avec leur "activité"? Merci!
Amit
1
@Amit - Oui, c'est la question difficile. :) Merci d'avoir posé la question. Malheureusement, je ne vois aucun moyen d'automatiser cela, comme je l'ai fait pour la liste des crochets ci-dessus, je n'ai donc pas de réponse parfaite pour vous. Idéalement, pour chaque hook, quelqu'un rédigerait un excellent article de blog (ou poserait une question avec une bonne réponse), puis "Google il" serait votre réponse. Dans l’état actuel, j’utilise un IDE de débogage (PhpStorm + XDEBUG, 49 US $ jusqu’en septembre 2010) et j’ai défini des points d’arrêt et suivi le code en cours d’exécution. Il y a peut-être un meilleur moyen, et si quelqu'un d'autre y a pensé, veuillez nous le faire savoir!
MikeSchinkel
Wow, c'est la meilleure réponse que j'ai jamais vue. Ici quand même.
Arlen Beiler
2
@ Mike: Petite question, pourquoi stockez-vous cela dans la base de données au lieu de la mémoire ou d'un flux temporaire?
Le Codex a une référence d'action et une référence de filtre . Adam Brown a créé une base de données de hooks qui contient tous les hooks dans le code source et ajoute la documentation des pages du wiki, des informations sur la version et des liens vers le code source. Vous pouvez l'améliorer en écrivant de la documentation dans le Codex.
Bien sûr, certains hooks sont dynamiques, en fonction d'autres données. Prenez la wp_transition_post_statusfonction:
Si vous enregistrez un type de message personnalisé eventet un statut de message personnalisé cancelled, vous aurez un cancelled_eventcrochet d'action.
La base de données Adam Browns n’est pas simplement une combinaison de ces 2 pages, elle répertorie toutes les actions et tous les filtres dans WordPress. Ou n'est-ce pas ce que vous vouliez dire?
Arlen Beiler
@Arlen: Oui en effet, je l'ai réécrit pour que ce soit plus clair.
Jan Fabry
1
Bien que primitif, peut-être que ce code de plugin peut aider? Basculez "add_action" avec "add_filter" si vous souhaitez plutôt examiner les filtres. Chargez le plug-in, puis actualisez la page d'accueil du site. Une fois chargé, la désactivation est très pénible. Il vous suffit donc de renommer le fichier plugin situé dans le dossier plugins et d'actualiser le site à nouveau. Il se désactivera automatiquement. J'ai utilisé cette astuce plusieurs fois pour résoudre des problèmes ou trouver un endroit où insérer quelque chose.
Ce n'est peut-être pas joli, mais c'est peut-être le moyen le plus rapide et le plus simple dans certains scénarios (j'utilise souvent le «débogage printf» pour corriger de petites choses dans de petits projets Notepad + en ligne de commande au lieu d'utiliser un IDE complet).
Synetech
0
Je l'utilise pour trouver l'ordre des crochets. Pour obtenir le filtersjuste changement add_actionà add_filter.
function echo_all_hooks(){
$not_arr = array('gettext','sanitize_key','gettext_with_context','attribute_escape');if(!in_array(current_filter(),$not_arr)) echo current_filter()."<br/>";}
add_action('all','echo_all_hooks');
Comme @kaiser suggère de ne pas poster que des liens, je l’améliore. mais il n’est pas possible d’utiliser tout le code ici, donc j’utilise peu d’images ici pour expliquer comment il contient une liste complète des points d'ancrage WordPress avec une description. vous pouvez le trouver ici pour les hooks , classes , fonctions , plugins ,
Réponses:
@Arlen: Comme le souligne Keith S, la liste des crochets d'Adam Brown est la ressource de fait des crochets pour WordPress. Cependant, ce n'est pas parfait:
Ainsi, bien que la liste d'Adam soit une excellente ressource, en particulier pour comprendre quand des points d'ancrage ont été ajoutés, ce n'est pas aussi utile que si vous pouviez instrumenter les points d'ancrage sur une page donnée de votre propre site.
Cela fait quelque temps que je joue à cette idée, alors votre question m'a amené à écrire un plugin appelé " Instrument Hooks for WordPress ". Vous pouvez trouver la source complète ci - dessous la capture d'écran et vous pouvez également la télécharger depuis gist ici .
Alors, voici une capture d'écran de l'instrumentation:
Vous déclenchez l'instrumentation à l'aide du paramètre URL
instrument=hooks
, à savoir:Et comme promis, voici le code source (ou téléchargez-le ici .):
la source
Barre de débogage Crochet d'action plugin
la source
Le Codex a une référence d'action et une référence de filtre . Adam Brown a créé une base de données de hooks qui contient tous les hooks dans le code source et ajoute la documentation des pages du wiki, des informations sur la version et des liens vers le code source. Vous pouvez l'améliorer en écrivant de la documentation dans le Codex.
Bien sûr, certains hooks sont dynamiques, en fonction d'autres données. Prenez la
wp_transition_post_status
fonction:Si vous enregistrez un type de message personnalisé
event
et un statut de message personnalisécancelled
, vous aurez uncancelled_event
crochet d'action.la source
Bien que primitif, peut-être que ce code de plugin peut aider? Basculez "add_action" avec "add_filter" si vous souhaitez plutôt examiner les filtres. Chargez le plug-in, puis actualisez la page d'accueil du site. Une fois chargé, la désactivation est très pénible. Il vous suffit donc de renommer le fichier plugin situé dans le dossier plugins et d'actualiser le site à nouveau. Il se désactivera automatiquement. J'ai utilisé cette astuce plusieurs fois pour résoudre des problèmes ou trouver un endroit où insérer quelque chose.
la source
Je l'utilise pour trouver l'ordre des crochets. Pour obtenir le
filters
juste changementadd_action
àadd_filter
.la source
Comme @kaiser suggère de ne pas poster que des liens, je l’améliore. mais il n’est pas possible d’utiliser tout le code ici, donc j’utilise peu d’images ici pour expliquer comment il contient une liste complète des points d'ancrage WordPress avec une description. vous pouvez le trouver ici pour les hooks , classes , fonctions , plugins ,
décrire chacun
la source
Vous pouvez simplement utiliser un plugin de moniteur de requête: https://wordpress.org/plugins/query-monitor/
la source