Abfragen von Event-Post-Typen mit WP Query und dem Event-Kalender
Wenn Sie mit The Event Calendar von Modern Tribe gearbeitet haben, besteht die Möglichkeit, dass Sie mit einigen verschiedenen Methoden vertraut sind, um bestimmte Aufgaben zu erledigen.
Die Homepage des Veranstaltungskalenders
Das heißt, programmgesteuert Ereignisse erstellen, Ereignisse ändern, sich wiederholende Ereignisse einrichten (wenn es sich um die Pro-Version handelt) und so weiter.
Was aber, wenn Sie Event-Post-Typen abfragen müssen – einige oder alle, spielt keine Rolle – und Sie feststellen, dass Ihre Abfrage nicht funktioniert? Und nein, ich spreche nicht von der Verwendung einer rohen SQL-Abfrage oder gar einer parametrisierten Version mit der Klasse $wpdb.
Ich spreche von WP_Query.
Abfragen von Event-Post-Typen
Hier ist die Kurzfassung: Wenn Sie versuchen, WP_Query so zu verwenden, wie Sie es gewohnt sind (d. h. den Beitragstyp manuell angeben), werden Sie wahrscheinlich keine Ergebnisse erhalten. Was natürlich keinen Sinn macht, besonders wenn man sie in WordPress und der Datenbank sieht.
Stattdessen müssen die Argumente für die Abfrage:
- mehrere Beitragsarten berücksichtigen,
- mehrere Beitragsstände berücksichtigt,
- und ein benutzerdefinierter Array-Schlüssel, der für das Plugin selbst einzigartig ist (ab Version 3.0).
Kurz gesagt, eine unglaublich einfache Version der Argumente sollte so aussehen :
Aber hier ist die Sache: Dies ist kein universeller Fall. Es kann vorkommen, dass Sie den Schlüssel eventDisplay nicht angeben und dennoch Ergebnisse erhalten. Also was gibt?
Lesen Sie immer die Dokumentation
Laut Dokumentation :
eventDisplay wird verwendet, um die allgemeine Form der Abfrage anzugeben – normalerweise kann es kommende, vergangene oder benutzerdefinierte sein (und wenn Sie nichts angeben, wird davon ausgegangen, dass Sie an bevorstehenden Ereignissen interessiert sind).
Wenn Sie also ein bevorstehendes Ereignis haben, ist alles in Ordnung, aber wenn Sie alles nutzen möchten, was Sie in Ihrer Installation haben, geben Sie custom als Wert an.
Das größere Bild
Der Grund, warum ich über diese Eigenheit gestolpert bin, hat mehr mit der Implementierung der Erstellung von Ereignissen und deren Zuordnung zu einem bestimmten Benutzerkonto zu tun.
Aber auf die Details gehe ich in einem anderen Beitrag ein. Im Moment geht es darum, sicherzustellen, dass wir Event-Post-Typen abfragen und Ergebnisse erhalten, mit denen wir arbeiten können.