it-swarm.com.de

Liefert die aktuelle page_id before-Schleife in functions.php

Im Shoestrap-Thema ändern Sie häufig den Inhalt mithilfe von Hooks. Ich möchte functions.php Folgendes 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 verwende WP 3.8. Ich habe diesen Fehlerbericht gefunden, aber es scheint nicht ganz dasselbe Problem zu geben, da meine Seite nur die Startseite und keine Abfrageseite ist.

ps, wenn jemand ein shoestrap-tag erstellen möchte, füge es bitte diesem q hinzu.

1
Larry K

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

Vom Codex :

Warnung: Sie können bedingte Abfrage-Tags nur nach dem Aktions-Hook posts_selection in WordPress verwenden (der Aktions-Hook wp ist der erste, über den Sie diese Bedingungen verwenden können). Für Themes bedeutet dies, dass das bedingte Tag niemals richtig funktioniert, wenn Sie es im Hauptteil von functions.php verwenden, d. H. Außerhalb einer Funktion.

Also, was solltest du tun?

Setzen Sie einfach Ihren Code 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 wäre, immer Aktionen hinzuzufügen und bedingte Anweisungen in diese zu setzen:

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