Single.php unterschiedliches Verhalten von Admin zu Nicht-Admin

Für den gleichen Beitrag habe ich plötzlich ein seltsames Verhalten der single.php Datei zwischen normalen Benutzer und Administrator.

Am Anfang der Schleife mache ich:

 echo '
'; print_r($GLOBALS['wp_query']); echo '

';

Und das Ergebnis ist anders.

Im Falle eines Administrators:

 [queried_object_id] => 603 [request] => SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_name = 'test' AND wp_posts.post_type = 'aya-bi-aya' ORDER BY wp_posts.post_date DESC 

Im Falle von Nicht-Administrator:

 [queried_object_id] => 0 [request] => SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.post_type = 'aya-bi-aya' AND (wp_posts.post_status = 'publish') ORDER BY wp_posts.post_date DESC LIMIT 0, 10 

Ich verbrachte anderthalb Tage damit, herauszufinden, was der Grund für diese Dysfunktion sein könnte, aber vergebens. Deine Zeit ist wirklich unschätzbar.

Solutions Collecting From Web of "Single.php unterschiedliches Verhalten von Admin zu Nicht-Admin"

Bei einem Kommentar lag das Problem an der Verwendung von query_posts die die Hauptabfrage überlagern.

Bitte query_posts keine query_posts .

Es sollte beachtet werden, dass die Ladezeit der Seite erhöht werden kann, wenn die Hauptabfrage auf einer Seite ersetzt wird. In Worst-Case-Szenarien wird die erforderliche Arbeitsmenge mehr als verdoppelt . Die function ist zwar einfach zu bedienen, aber auch später anfällig für Verwirrung und Probleme . Weitere Details finden Sie in der Anmerkung zu Einschränkungen.

http://codex.wordpress.org/Function_Reference/query_posts (Hervorhebung von mir)

Darüber hinaus überschreibt es $wp_query das die Hauptschleife auf der Seite verwendet.

Wenn Sie zusätzliche Schleifen benötigen, verwenden Sie ein neues WP_Query Objekt, nicht query_posts .