Abfragevariablen werden in der Hauptabfrage nicht gesetzt

Ich habe eine function, die seitenspezifische und globale Einstellungen überprüft, um eine class für Seitenleisten zu bestimmen. Ich rufe die function aus der archive.php Vorlage und versuche zu überprüfen, dass post_type ‘post’ ist, aber die post_type var ist nicht gesetzt.

Relevanter Code:

 function get_sidebar_class() { global $wp_query; echo 'Post type: ' . get_query_var( 'post_type' ); echo '
' . print_r( $wp_query->query_vars, true ) . '

'; }

post_type für beide Versuche leer. Warum ist es nicht eingestellt? Andere Variablen ( post_type category ) sind gesetzt, aber nicht post_type .

Solutions Collecting From Web of "Abfragevariablen werden in der Hauptabfrage nicht gesetzt"

Query Vars sind … Spaß so. Abhängig davon, mit welchem ​​Archiv du get_post_type() mag es einfach genug sein, es zu tun (es erhält den Typ vom tatsächlichen Post, nicht von der Abfrage).

Andernfalls solltest du get_queried_object() um herauszufinden, mit was genau du es zu tun hast.

Auf welche Art von Seite / Post schaust du, wenn du das Echo aussprichst? post_type wird beim Betrachten eines post oder post archive nicht post_type . Probieren Sie Seiten aus und sehen Sie, ob Sie post_type an diesem Punkt sehen.

Ich glaube, dass post_type auf etwas aufgefüllt wird, ausgenommen Posts und vielleicht Seiten – Pages hat kein Archiv, also kann es nur eine page eine ID oder einen Slug usw. speichert. Daher wird es im Wesentlichen nur für benutzerdefinierte Post-Typen verwendet .

Eine alternative Möglichkeit, Abfrage- $wp_query->get( 'post_type' ) ; ist $wp_query->get( 'post_type' ) ; . Wenn post_type ist, können Sie es auf diese Weise abrufen.