it-swarm.com.de

Warum funktioniert is_home () nicht richtig?

Ich habe ein if(is_home())-Bit in die functions.php meines Themas eingefügt und es scheint nicht zu funktionieren. Die Funktion, die dieses Bit enthält, wird bei init aufgerufen, sodass is_home bereits funktionieren sollte.

3
naugtur

is_home() funktioniert erst, wenn wp_query ausgeführt wird. Der früheste Hook, den Sie verwenden können, wenn is_home funktioniert, ist 'parse_query', aber 'template_redirect' wäre besser.

9
John P Bloch

Um die Antwort von John weiterzuverfolgen: Fügen Sie einen Anruf zu dieser Funktion an einem der von John und hakre erwähnten Hooks hinzu.

Fügen Sie Ihrer functions.php beispielsweise Folgendes hinzu:

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

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

EDIT: Ich habe Ihre Frage zuerst falsch verstanden - es sieht so aus, als hätten Sie eine Funktion, die den Code bereits einkapselt. Es ist nur so, dass Sie auf den falschen Haken schießen. Teilen Sie diesen Abschnitt entweder in eine separate Funktion auf und lassen Sie ihn bei template_redirect usw. auslösen, oder ändern Sie, wo Sie ihn zuerst einbinden.

2
ZaMoose