Du nimmst mit deinem Code eine Lösung vorweg, für die wir die Aufgabe noch nicht kennen. Erzähl doch erst einmal, was du machen möchtest.
$pages = new WP_Query($filter);
sieht übrigens etwas ungewohnt aus, weil aus Programmiersicht jede Seite auch ein Post ist, wenn auch aus einem anderen Post Type. Ob du das Array für deine Abfrage nun „$pages“ oder „$diebeitraegeausmeinertollenquery“ nennst, ist eigentlich unerheblich, aber ab der nächsten Zeile mit if($pages->have_posts()){
ist die Verwendung dieser Variablen etwas irritierend. 😉 Sowas wie $query = new WP_Query( $filter ); if( $query->have_posts() ){
ist leichter zu lesen: „Ich mache eine Abfrage und wenn in der Abfrage posts (welchen Post Types auch immer) enthalten sind usw.“
Zum Debuggen würde ich dann erst einmal ein var_dump( $query )
machen und schauen, ob die Abfrage korrekt läuft. Es gibt ein gutes Dutzend Gründe, wieso hier schon ein Fehler vorliegen kann, die wir aber nur anhand des Code-Auszugs nicht beurteilen können.
Der Begriff Template Hierarchy und der Umstand, dass sich WordPress jeweils das am besten passende Template raussucht, sind dir bekannt?
das sind nur erste Gehversuche um zu lernen wie man Custom Querys verwendet.
Soll so in die Richtung Inhaltsverzeichnis von Seiten gehen.
Das ist der komplette Code. Das Theme enthält bisher nur den obigen Query.
seltsamerweise löst sich der kritische Fehler auf, wenn ich die Variable $pages in $query umbenenne. Sollta ja eigentlich keine Rolle spielen. Wird der Variablenname irgendwo geparst? Oder ist $pages schon ne Standartvariable die ich überschreibe?
Edit:
Am Anfang meiner index.php mache ich noch ein get_header();
wenn ich danach ein var_dump($pages) mache scheint die Variable schon zu existieren
die header.php besteht nur aus einem wp_head();
wenn ich ein var_dump($pages) am ende der header.php einfüge, existiert die Variable noch nicht.
Irgendwo dazwischen scheint die $pages variable definiert zu werden.
-
Diese Antwort wurde geändert vor 3 Jahren, 3 Monaten von abinmorth.
-
Diese Antwort wurde geändert vor 3 Jahren, 3 Monaten von abinmorth.
Hallo,
schau dir doch mal den folgenden Beitrag an. Da wird das sehr schön erläutert.
Bezogen auf die Template Hierarchy ist die folgende Webseite hilfreich, weil man da eine direkte Verlinkung zum Codex hat.
Viele Grüße
Hans-Gerd
danke für die Antworten
ich will keine Archiv- Seite machen,
sondern eher eine Liste von Seiten zwecks Navigation
den Bug im Code habe ich gefunden, es würde mich aber trotzdem noch interessieren, wo die $pages Variable definiert wird.
Verwend keine Variablen, die pages, user, oder query heißen!
Verwend Pre- oder Suffixes, also product_pages, user_for_products oder query_for_product.
Einerseits gehst du damit allen globalen Variablen aus dem Weg, andererseits ist dein Code lesbarer.
Und zu deiner Frage: JA!
> $pages (array)The content of the pages of the current post. Each page elements contains part of the content separated by the <!–nextpage–> tag.
https://codex.wordpress.org/Global_Variables
$pages ist eine globale Variable im Loop!
-
Diese Antwort wurde geändert vor 3 Jahren, 2 Monaten von souri.