get_queried_object()
Gibt die null
Post-Date-Archive (Seitentyp is_date()
) und die Haupt-Blog-Indexseite (Seitentyp is_home()
) zurück. Ist das beabsichtigt oder nur ein Versehen?
Ich habe einen Wrapper um get_queried_object () geschrieben, um den Titel der aktuellen Seite für die Verwendung in einem Thema zu erhalten, unabhängig davon, um welchen Seitentyp es sich handelt. Mir wurde schnell klar, dass ich anstatt zu verwenden get_query_object()
nur die wichtigen Teile von duplizieren sollte wp_title()
, aber vorher stieß ich auf ein interessantes Problem.
Es scheint , dass get_queried_object()
und seine Wurzelfunktion WP_Query->get_queried_object()
Rückkehr null
für ein paar Typen Auflistung, einschließlich der primäre Beiträge Listenausgabe von index.php (Seitentyp is_home()
) und Post - Archiven nach Datum (Seitentyp is_date()
).
Ich habe dies getestet, indem ich das folgende Snippet in eine Reihe von Vorlagendateien an verschiedenen Orten geworfen habe, immer nach get_header()
und vor the_post()
:
<pre><code><?php
$queried_object = get_queried_object();
var_dump( $queried_object );
?></code></pre>
Dies funktioniert perfekt in Kategoriearchiven, Tag-Archiven, benutzerdefinierten Taxonomiearchiven und benutzerdefinierten Post-Typ-Archiven. get_queried_object()
Gibt das Abfrageobjekt zurück, mit dem ein Seitentitel und andere nützliche Informationen extrahiert werden können.
In archive.php für Standardarchive für Post-Datumsangaben und in index.php für die normale Listenansicht der Homepage von Blog-Posts schlägt dies jedoch fehl.
Das Durchsuchen der Quelle vonWP_Query->get_queried_object()
zeigt etwas ziemlich Überraschendes: Es gibt keine Überprüfung auf Seitentyp is_home()
oder Seitentyp is_date()
, daher wird dieser Seitentyp $this->queried_object = null;
nicht aktualisiert und die Funktion kehrt zurück null
.
Meine Frage ist also, ist diese beabsichtigte Funktionalität (z. B. sollten Sie get_queried_object () auf diesen Seiten nicht verwenden), eine technische Einschränkung (gibt es kein aussagekräftiges Objekt, das auf diesen Seiten zurückgegeben werden kann) oder einfach eine Implementierungsüberwachung?
Gibt es überhaupt ein Äquivalent zum benutzerdefinierten Beitragstypobjekt, das für den integrierten Beitragstyp "Blog-Beitrag" angezeigt werden soll?
get_queried_object
ist sehr inkonsistent und gibt mehrere verschiedene Objekte zurück und kehrt manchmal zurück null
. Während es nützlich ist, kann es frustrierend sein, es zu verwenden.
get_queried_object
.