Holen Sie sich die aktuelle Seite vor der Schleife, in functions.php

Im Thema ” Shoestrap” ändern Sie den Inhalt häufig mithilfe von Hooks. Ich möchte Folgendes zu functions.php hinzufügen, aber es funktioniert nicht …

 // in functions.php if ( is_home() ) { add_action( 'shoestrap_below_top_navbar', 'my_custom_below_top_navbar' ); } // also tried since we're before the loop if ( 684 == get_queried_object_id() ) { add_action( 'shoestrap_below_top_navbar', 'my_custom_below_top_navbar' ); } // but get_queried_object_id() returns 0 

Ich benutze WP 3.8. Ich habe diesen Fehlerbericht gefunden, aber es scheint nicht das gleiche Problem zu sein, da meine Seite nur die Startseite und keine Abfrageseite ist.

ps, wenn jemand ein Shoestrap-Tag erstellen möchte, füge es bitte zu diesem q hinzu.

Solutions Collecting From Web of "Holen Sie sich die aktuelle Seite vor der Schleife, in functions.php"

Ich bin mir ziemlich sicher, dass Sie versuchen, diese bedingten Tags zu früh zu verwenden, damit sie nicht funktionieren.

Aus Codex :

Warnung: Sie können bedingte Abfrage-Tags nur nach dem Aktions-Hook “posts_selection” in WordPress verwenden (der wp-Aktions-Hook ist der erste Hook, mit dem Sie diese Bedingungen verwenden können). Bei Themen bedeutet dies, dass das bedingte Tag niemals richtig funktioniert, wenn Sie es im body von functions.php verwenden, also außerhalb einer function.

Also, was solltest du tun?

Setzen Sie Ihren Code einfach in eine Aktion, die später ausgeführt wird.

 function my_wp_action_callback() { if ( is_home() ) { add_action( 'shoestrap_below_top_navbar', 'my_custom_below_top_navbar' ); } } add_action( 'wp', 'my_wp_action_callback' ); 

Die andere Möglichkeit besteht darin, immer Aktionen hinzuzufügen und bedingte statementen in sie einzufügen:

 function my_custom_below_top_navbar() { if ( !is_home() ) return; // ... } add_action( 'shoestrap_below_top_navbar', 'my_custom_below_top_navbar' );