Diese Frage bezieht sich auf @Pieter Goosens umfangreiche Arbeit zum Ändern der Hauptabfrage mithilfe des Hooks pre_get_posts
auf echten Seiten. Es wird auch im Kodex verwiesen .
Mit seiner Methode können Sie bestimmte Beiträge in Ihre Seite einfügen, ohne die Vorlagendatei selbst berühren zu müssen. Dies bietet zahlreiche Entwicklungsmöglichkeiten.
Bisher verwendet seine Methode CSS, um das Post-Objekt auszublenden, das die Standardschleife für die angezeigte Seite ausgibt. Es gibt zwei Aktions-Hooks, loop_start
mit loop_end
denen ein versteckter Container um das Post-Objekt erstellt wird. Es wäre großartig, wenn es möglich wäre, das Post-Objekt der Seite vollständig auszuschließen.
Ich habe versucht, mich pre_get_posts
mit so etwas wie $query->set('post__not_in', get_the_ID();
at zu beschäftigen, loop_start
aber das hat nicht funktioniert. Mir fehlen die Fähigkeiten, um den letzten Schliff zu geben.
Kannst du helfen? Denken Sie daran, dass wir die Vorlagendateien nicht berühren möchten. Danke im Voraus.
quelle
Antworten:
Ich denke
pre_get_posts
sollte damit arbeiten$query->set()
. Das einzige Problem, das ich dort sehe, ist, dass Sie esget_the_ID()
in einem Haken verwenden. Versuchen Sie, eine globale$post
Variable zu verwenden, um die aktuelle Post-ID abzurufen.quelle
Hier ist ein einfacher Hack, der Ihnen dabei helfen kann, das zu erreichen, was Sie versuchen -: Warnung: Dies wird nur an sechsundzwanzig und siebenundzwanzig Themen getestet, sodass es möglicherweise mit Ihrem aktuellen Thema funktioniert oder nicht.
}}
quelle