Was ist die frühestmögliche Aktion, in die ich mich einklinken kann, um auf die globalen $post/$posts
-Variablen sowohl am vorderen als auch am hinteren Ende zuzugreifen? Ich habe versucht, in der Codex-Referenz , Adam Browns Referenz nachzuschlagen und die Quelle mehrmals zu durchsuchen, hatte aber nicht viel Glück, eine gute zu finden.
pre_get_posts
ist zu früh; Die Verwendung von posts_selection
funktioniert nicht, wenn Sie während des Rückrufs einen zweiten get_posts () -Aufruf tätigen möchten. und template_redirect
läuft nicht auf der Admin-Seite. the_post
ist möglicherweise früher als template_redirect
für das Front-End, läuft aber auch nicht auf dem Back-End. Idealerweise möchte ich etwas, das unmittelbar vor der Rückkehr von get_post()/get_posts()
ausgeführt wird, aber ich sehe so etwas nicht.
Ich habe in der Vergangenheit den the_posts
-Filter verwendet, bevorzuge jedoch eine Aktion, da diese technisch korrekter ist.
Im Moment bin ich nur zweimal dabei; einmal template_redirect
für das Frontend und noch einmal admin_xml_ns
für das Backend. Ich mag das allerdings nicht wirklich, da meine Logik nicht semantisch mit einem dieser Hooks verwandt ist, und es scheint, dass dies ein sehr häufiges Bedürfnis ist und es einen Hook wie "post_get_posts" (ala pre_get_posts
) geben sollte funktioniert auf beiden seiten.
Für alle Administrationsseiten und Front-End-Seiten mit Ausnahme der einzelnen Post-Edit-Bildschirme (wp-admin/post.php
) ist 'wp'
der zuverlässigste Hook zum Abrufen der globalen Werte.
http://phpxref.ftwr.co.uk/wordpress/nav.html?wp-includes/class-wp.php.source.html#l486
Sie können dort sehen, dass es unmittelbar nach WP::main()
fires WP::register_globals()
ausgelöst wird. Das Problem bei der Verwendung von Dingen wie post_results
und get_posts
besteht darin, dass sie jedes Mal ausgeführt werden, wenn Sie eine Abfrage nach Beiträgen durchführen. 'wp'
wird nur in der Funktion WP::main()
ausgelöst, die WP core verwendet, um die Hauptanforderungsabfrage der Seite auszuführen.
Für Post-Edit-Bildschirme sieht es so aus, als ob der erste Haken, den Sie zuverlässig verwenden können, 'add_meta_boxes'
wäre. Sie müssten nur sicherstellen, dass Sie sich beim Hook-In auf einer Kernseite befinden, obwohl das globale $post
-Objekt als zweites Argument übergeben wird (das erste ist der $post_type
des aktuellen Posts).
posts_results
ist der Filter für das unformatierte Abfrageergebnis. Siehe Zeile 2627 in wp-includes/query.php
.