get_queried_object()
gibt null
für is_date()
Archive ( is_date()
) und die 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 zu erhalten, unabhängig davon, um was für einen Seitentyp es sich handelt, um sie in einem Thema zu verwenden. Ich erkannte schnell, dass ich anstelle von get_query_object()
nur die wichtigen Bits von wp_title()
, aber vorher stieß ich auf ein interessantes Problem.
Es scheint, dass get_queried_object()
und seine Root-function WP_Query->get_queried_object()
null
für einige Auflistungstypen zurückgeben, einschließlich der von index.php ( is_home()
) ausgegebenen primären is_home()
und is_home()
nach Datum ( is_home()
is_date()
)
Ich habe das getestet, indem ich das folgende Snippet in eine Reihe von Template-Dateien an mehreren Stellen get_header()
, immer nach get_header()
und vor the_post()
:
Dies funktioniert perfekt für Kategoriearchive, Tag-Archive, benutzerdefinierte Taxonomiearchive und benutzerdefinierte Post-Typ-Archive.
get_queried_object()
gibt das Abfrageobjekt zurück, mit dem einget_queried_object()
und andere nützliche Informationen extrahiert werden können.Es schlägt jedoch in archive.php für Standard-Post-Datum-Archive und index.php für die normale Blog-Posts-Homepage-Listenansicht fehl.
WP_Query->get_queried_object()
die Quelle vonWP_Query->get_queried_object()
ergibt sich etwas nicht Überraschendes: Es gibt keine Überprüfung auf denis_home()
oder denis_date()
, also auf diesen$this->queried_object = null;
wird nicht aktualisiert und die function gibtnull
.Meine Frage ist also, ob diese functionalität beabsichtigt ist (zB soll man nicht get_queried_object () auf diesen Seiten verwenden), eine technische Einschränkung (gibt es kein sinnvolles Objekt, das auf diesen Seiten zurückgegeben wird), oder einfach eine Implementierungskontrolle?
Gibt es sogar ein Äquivalent des benutzerdefinierten Post-Type-Objekts für den integrierten Postposttyp “Blogpost”, der angezeigt werden soll?
Solutions Collecting From Web of "get_queried_object () gibt null für das Post-Date-Archiv zurück"
- Ersetzen von Suchergebnissen durch benutzerdefinierte externe Abfrage
- WP_Query-Ergebnis nach Kategorie filtern
- Abfrage, um die letzten Posts von den Autoren des Blogs zu erhalten
- wp_reset_postdata () funktioniert nicht wie erwartet
- Durchlaufen Sie alle Tags und Ausgabeposts in alphabetischer Liste
- JSON: Planung der Erstellung der JSON-Datei
- Verwandte Beiträge von Autor Paginierung funktioniert nicht auf der Produktionsstätte
- Wordpress Suche exakte Übereinstimmung
also meine Frage ist, ist diese beabsichtigte functionalität (zB soll man nicht get_queried_object () auf diesen Seiten verwenden), eine technische Einschränkung (gibt es kein sinnvolles Objekt, das auf diesen Seiten zurückgegeben wird), oder einfach eine Implementierungskontrolle?
get_queried_object () soll den Begriff, den Autor, den einzelnen Post, den einzelnen benutzerdefinierten Post-Typ oder das Seitenobjekt abfragen. Ja, das ist beabsichtigt und wofür wurde diese function entwickelt.
Wenn Sie sich in einem Datumsarchiv, einer Homepage oder einer Suche befinden, wird kein einzelnes Objekt abgefragt.
Bearbeiten:
Basierend auf dem ersten Kommentar unten muss das OP das post_type Objekt erhalten. Das post_type-Objekt unterscheidet sich vom abgefragten_Objekt. Wenn Sie das post_type-Objekt auf einer Archivseite abrufen müssen, können Sie es von query_vars abrufen.
global $wp_query; $post_type_object = get_post_type_object( $wp_query->query_vars['post_type'] );