it-swarm.dev

Proč is_home () nepracuje správně?

Vložil jsem if(is_home()) bit do funkcí function.php a zdá se, že to nefunguje. Funkce obsahující tento bit se nazývá init, takže is_home by již mělo fungovat.

3
naugtur

is_home() nebude fungovat, dokud nebude spuštěn wp_query. Nejdříve hák, který můžete použít, kde is_home bude fungovat, je 'parse_query', ale 'template_redirect' by bylo lepší.

9
John P Bloch

Navázat na odpověď Johna: Přidejte výzvu k uvedené funkci na jednom z háčků zmínil John a hakre.

Přidejte například do svých funkcí.php následující:

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

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

EDIT: Nejdřív jsem zpochybnil vaši otázku - vypadá to, že už máte funkci, která kód zapouzdřuje, je to jen to, že střílíte na špatný háček. Buď rozdělte tuto sekci do samostatné funkce a nechte ji vystřelit na template_redirect, atd., Nebo změňte místo, kde jste na prvním místě.

2
ZaMoose