web-dev-qa-db-fra.com

Le crochet d'action 'wp' tire deux fois ... pourquoi?

J'ai remarqué que lorsque j'accroche dans 'wp', il semble que deux coups de feu se déclenchent - par exemple

add_action('wp', 'just_testing');
function just_testing(){
    global $post;
    error_log($post->ID);
}

renvoie dans mon error_log les deux entrées suivantes:

[01-Feb-2013 13:06:58 UTC] 1120
[01-Feb-2013 13:06:58 UTC] 

J'ai cherché google, stackexchange et le fil de discussion "Qu'est-ce qui ferait déclencher l'action" wp "deux fois par page (mais une seule fois par publication) dans Firefox?" ne s'applique pas car je reçois les deux mises à feu dans tous les navigateurs.

Merci pour toute aide!

3
user23591

Cela peut arriver si l'un des fichiers que vous incluez dans le thème renvoie 404 Introuvable erreur. Par exemple, si vous créez un lien vers un fichier .js ou .css ou une image qui n'existe pas à cet emplacement. Utilisez l'inspecteur de votre navigateur pour voir si vous obtenez des erreurs 404, n'importe où.

Corrigez-les et essayez à nouveau.

2
Darko Stanimirović

Recherchez 'wp' et "wp" (guillemets inclus) dans les fichiers du répertoire et des sous-répertoires de vos plugins (par défaut wp-content/plugins) et dans le répertoire et les sous-répertoires de votre thème actuel (par défaut wp-content/themes/YOUR-THEME).

Dans WP core files (3.5), l'action wp n'est déclenchée qu'une seule fois, avec do_action_ref_array dans wp-includes/class-wp.php. Probablement un tiers (plugin/thème) appelle do_action('wp'....

Remarque: un moyen rapide d’exclure un plugin défectueux consiste à placer votre code de test dans le fichier functions.php de votre thème, à renommer votre répertoire de plugins en quelque chose comme plugins.temp et à accéder à votre front-end. Ensuite, renommez votre répertoire de plugins en plugins.

1
akTed