Liste mit Beiträgen (Abfrage Block) sortiert nach Aktualisierungsdatum

Abfrage-Loop (Query-Loop) im Code-Editor anpassen

Autor:

Kategorien: , , , ,

Abfrage-Loop (Query-Loop) anpassen: Beiträge sortiert nach Aktualisierungsdatum ausgeben

Wie kann man dafür sorgen, dass Beiträge sortiert nach Aktualisierungsdatum in der Übersicht (Archive) gezeigt werden? – Durch eine erstaunlich simple Änderung im Code-Editor beim Query-Loop (Abfrage-Loop) ist das möglich. Wie das funktioniert, zeige ich in dem folgenden Beitrag.

Im deutschsprachigen WordPress Forum gab es eine Anfrage, wie man die Beiträge, die aus welchen Gründen auch immer aktualisiert wurden, in einer Liste anzeigen lassen kann. Das Problem fand ich interessant und habe mich daher auf die Suche nach einer Lösung gemacht.

Natürlich kann man diesen Beiträgen auch eine Kategorie „Aktuell“ zuordnen und dann in einem Abfrage-Loop genau diese Kategorie in den Einstellungen über Filter>Kategorien zuordnen. In dem Fall müsste man aber immer manuell eingreifen, damit man bei Beiträgen, die dann auch schon wieder älter sind, diese Kategorie entfernt. Also keine optimale Lösung.

Anfragen bei ChatGPT und Perplexity zum Thema

Der Ansatz war dann, dafür zu sorgen, dass die Beiträge im Abfrage-Loop nach „Aktualisierungsdatum“ sortiert werden. Allerdings gibt es bei den Einstellungen des Abfrage-Loops keine Option unter „Reihenfolge von“.

Bei ChatGPT und Perplexity wurde mir eine komplizierte Lösung vorgestellt. Vorgeschlagen wurden JavaScript-Snippets und auch PHP-Snippets, die in der functions.php bei einem Child Theme erstellt werden sollten. Diese Lösungen sind allerdings wesentlich komplizierter als die Lösung, die ich hier in dem Beitrag vorstelle.

Lösung direkt über den Code-Editor beim Block Editor

Wenn man eine Seite bearbeiten möchte, dann kann man über das Backend einfach die Option „Seiten“, dann „Seite bearbeiten“ und die gewünschte Seite auswählen. Anschließend sieht man im Backend die Seite mit den verwendeten Blöcken und kann an beliebiger Stelle den Query-Loop (Abfrage-Loop) einfügen.

Um den Code-Editor beim Block Editor zu öffnen, muss man oben rechts auf die 3 senkrechten Punkte klicken und kann anschließend die Option Code-Editor auswählen:

Im Code-Editor kann man die Option „orderby“ von „date“ auf „modified“ ändern.

​Neben date (Veröffentlichungsdatum) und modified (Änderungsdatum) stehen weitere Optionen zur Verfügung:​

  • title: Sortiert die Beiträge alphabetisch nach Titel.​
  • name: Sortiert nach dem Slug des Beitrags.​
  • ID: Sortiert nach der ID des Beitrags.​
  • author: Sortiert nach der ID des Autors.​
  • comment_count: Sortiert nach der Anzahl der Kommentare.​
  • menu_order: Sortiert nach der im Beitrag festgelegten Reihenfolge (häufig bei Seiten verwendet).​
  • rand: Zeigt die Beiträge in zufälliger Reihenfolge an.

Nach der manuellen Änderung der Einstellung bei „orderby“ auf „modified“ hatte ich (fast schon) die gewünschte Liste. Das Ergebnis ist auf der folgenden Seite zu sehen.

Hier ein Ausschnitt aus dem Quellcode im Code-Editor mit der Änderung:

<!-- wp:group {"align":"full","layout":{"type":"default"}} -->
<div class="wp-block-group alignfull"><!-- wp:paragraph {"className":"is-style-default"} -->
<p class="is-style-default">Weil ich häufig die Beiträge aufgrund Änderungen z. B. im WordPress-Core ändere, sind die Beiträge beim Abfrage-Loop (Query-Loop) nach Aktualisierungsdatum des Beitrags sortiert.</p>
<!-- /wp:paragraph --></div>
<!-- /wp:group -->

<!-- wp:query {"queryId":1,"query":{"perPage":10,"pages":0,"offset":0,"postType":"post","order":"desc","orderBy":"modified","author":"","search":"","exclude":[],"sticky":"","inherit":false,"taxQuery":null},"enhancedPagination":true,"align":"full","layout":{"type":"constrained"}} -->
<div class="wp-block-query alignfull"><!-- wp:post-template {"align":"full","style":{"spacing":{"blockGap":"var:preset|spacing|40"}},"layout":{"type":"default","columnCount":1,"minimumColumnWidth":null}} -->
<!-- wp:post-title {"isLink":true,"style":{"typography":{"lineHeight":"1.1","fontSize":"1.8rem"},"spacing":{"padding":{"top":"var:preset|spacing|20","bottom":"var:preset|spacing|20"}}}} /-->

Um zu verhindern, dass Beiträge angezeigt werden, bei denen das Beitragsdatum (post_date) und das Aktualisierungsdatum (post_modified) identisch sind, kann man noch zusätzlich eine Meta-Query in den query-Einstellungen des Blocks einfügen: "meta_query":[{"key":"post_modified","value":"post_date","compare":">"}].

<!-- wp:query {"queryId":1,"query":{"perPage":10,"pages":0,"offset":0,"postType":"post","order":"desc","orderBy":"modified","meta_query":[{"key":"post_modified","value":"post_date","compare":">"}], "author":"","search":"","exclude":[],"sticky":"","inherit":false,"taxQuery":null},"enhancedPagination":true,"align":"full","layout":{"type":"constrained"}} -->

Aber auch in dem Fall können noch vereinzelt Beiträge in der Liste erscheinen, bei denen das Beitragsdatum und das Aktualisierungsdatum identisch sind. Das hängt damit zusammen, dass post_date und post_modified keine Metafelder sind, sondern Spalten in der Datenbanktabelle wp_posts. Eine meta_query kann darauf nicht korrekt zugreifen, denn sie greift nur auf wp_postmeta zu.

Weitere Informationen zur meta_query und welche Optionen möglich sind, kann man hier finden.

Fazit

Was sich zuerst kompliziert anhörte, ist dank der Möglichkeiten beim Block Editor außerordentlich simpel zu ändern. Neben „date“ und „modified“ gibt es noch eine Reihe anderer Einstellungen, die man verwenden kann. Das ist zwar nicht exakt die Lösung für das im Forum geschilderte Problem, aber zumindest schon ein ziemlich guter Ansatz. An sich müsste man zur Lösung des geschilderten Problems noch die Beiträge ausschließen, bei denen das Beitragsdatum und das Aktualisierungsdatum identisch ist. Das gelingt mit meta_query nicht komplett. Aber was soll’s – für uns reicht diese Lösung jedenfalls vollkommen.

Weitere Beiträge zum Thema

Wir freuen uns über eine Kontaktaufnahme

Was hältst du davon?

Wir hoffen, dieser Beitrag hat dir gefallen und wir würden uns über einen Kommentar freuen. Auch über Erweiterungen, Korrekturen, Hinweise oder sonstige Anmerkungen freuen wir uns sehr.

Newsletter: Wenn du über unsere neuesten Beiträge und Neuigkeiten rund um WordPress informiert werden möchtest, kannst du dich gerne bei unserem kostenlosen Newsletter anmelden.

Blog: Auf der folgenden Seite findest du weitere interessante Beiträge sortiert nach Kategorien und Schlagwörtern.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert