web-dev-qa-db-fra.com

Pourquoi is_home () ne fonctionne-t-il pas correctement?

Je mets un if(is_home()) dans le functions.php de mon thème et cela ne semble pas fonctionner. La fonction contenant ce bit est appelée sur init, donc is_home devrait déjà fonctionner.

3
naugtur

is_home() ne fonctionnera pas tant que wp_query n'aura pas été exécuté. Le premier crochet que vous pouvez utiliser sur lequel is_home fonctionnera est 'parse_query', mais 'template_redirect' serait préférable.

9
John P Bloch

Pour donner suite à la réponse de John: Ajoutez un appel à ladite fonction sur l’un des crochets mentionnés par John et hakre.

Ajoutez, par exemple, les éléments suivants à votre fichier functions.php:

<?php
function my_function_name(){
  if(is_home()) do_something();
}

add_action('template_redirect', 'my_function_name');
?>

EDIT: J'ai mal compris votre question au début - il semble que vous ayez déjà une fonction encapsulant le code, mais que vous tiriez sur le mauvais crochet. Soit divisez cette section en une fonction distincte et faites-la déclencher dans template_redirect, etc., ou modifiez l'emplacement de votre point de départ.

2
ZaMoose