WordPress : Comprendre comment les crochets WordPress sont appelés
Voici comment mon exemple actuel de hook d’action : il modifie la méta description de la page HTML.
add_action( 'wp_head', 'add_a_description' );
function add_a_description () {
echo '<meta name="description" content=" This is new content" />' . "
";
} // End example
Maintenant, pour moi (j’ai quelques connaissances de base en PHP, rien de plus), il semble que la fonction soit appelée avant d’être créée. Mon intuition me dit que ça devrait ressembler à :
function add_a_description () {
echo '<meta name="description" content=" This is new content" />' . "
";}
add_action( 'wp_head', 'add_a_description' ); // End example
Je comprends que ce n’est pas le cas, mais je ne sais pas pourquoi. Quelqu’un pourrait-il m’expliquer?
Solution n°1 trouvée
Peu importe où vous écrivez le crochet d’action, les deux fonctionneront :
add_action( 'wp_head', 'add_a_description' );
function add_a_description () {
echo '<meta name="description" content=" This is new content" />' . "";
}
et
function add_a_description () {
echo '<meta name="description" content=" This is new content" />' . "";
}
add_action( 'wp_head', 'add_a_description' ); // End example
Ces deux fonctionneront. Peu importe où vous déclarez la fonction, la seule chose est que la fonction doit être incluse dans le script.
C’est parce que le whole file is first parsed and then executed
.
À partir du manuel PHP
Les fonctions n’ont pas besoin d’être définies avant d’être référencées, sauf lorsqu’une fonction est définie de manière conditionnelle.
Concernant le wp_head
crochet d’action. La wp_head
fonction réside à l’intérieurwp-includes/general-template.php
Si vous regardez cette fonction, elle appellerado_action('wp_head');
Ce que cela fait, c’est qu’il vérifiera toutes les actions et tous les filtres définis avec le crochet wp_head qui est stocké dans la variable globale $wp_actions
S’il y a un hook pour wp_head, il appellera la fonction hookée en utilisant call_user_func_array
J’espère que cela vous aidera 🙂
Solution n°2 trouvée
Sans connaître tous les rouages ??internes, vous pouvez penser add_action()
à une fonction simple qui transmet le nom d’une fonction à appeler à un certain point. Dans votre code, add_action()
permet au système de savoir qu’il doit appeler la fonction add_a_description()
lorsqu’il atteint le wp_head
point.
Voici un exemple TRÈS basique du fonctionnement du code :
// Start of example system
$actions = array();
function add_action($point, $name) {
global $actions;
$actions[$point][] = $name;
}
function run($point) {
global $actions;
foreach ($actions[$point] as $name)
$name();
}
// End of example system
// Start of example plugin / theme function
add_action('wp_head', 'alert');
function alert() {
echo 'hello';
}
// End of example plugin / theme function
// At point wp_head
run('wp_head');
Solution n°3 trouvée
Peu importe où vous écrivez le crochet d’action, les deux fonctionneront :
add_action( 'wp_head', 'add_a_description' );
function add_a_description () {
echo '<meta name="description" content=" This is new content" />' . "";
}
et
function add_a_description () {
echo '<meta name="description" content=" This is new content" />' . "";
}
add_action( 'wp_head', 'add_a_description' ); // End example
Ces deux fonctionneront. Peu importe où vous déclarez la fonction, la seule chose est que la fonction doit être incluse dans le script.
C’est parce que le whole file is first parsed and then executed
.
À partir du manuel PHP
Les fonctions n’ont pas besoin d’être définies avant d’être référencées, sauf lorsqu’une fonction est définie de manière conditionnelle.
Concernant le wp_head
crochet d’action. La wp_head
fonction réside à l’intérieurwp-includes/general-template.php
Si vous regardez cette fonction, elle appellerado_action('wp_head');
Ce que cela fait, c’est qu’il vérifiera toutes les actions et tous les filtres définis avec le crochet wp_head qui est stocké dans la variable globale $wp_actions
S’il y a un hook pour wp_head, il appellera la fonction hookée en utilisant call_user_func_array
J’espère que cela vous aidera 🙂
Solution n°4 trouvée
Sans connaître tous les rouages ??internes, vous pouvez penser add_action()
à une fonction simple qui transmet le nom d’une fonction à appeler à un certain point. Dans votre code, add_action()
permet au système de savoir qu’il doit appeler la fonction add_a_description()
lorsqu’il atteint le wp_head
point.
Voici un exemple TRÈS basique du fonctionnement du code :
// Start of example system
$actions = array();
function add_action($point, $name) {
global $actions;
$actions[$point][] = $name;
}
function run($point) {
global $actions;
foreach ($actions[$point] as $name)
$name();
}
// End of example system
// Start of example plugin / theme function
add_action('wp_head', 'alert');
function alert() {
echo 'hello';
}
// End of example plugin / theme function
// At point wp_head
run('wp_head');
0 commentaire