Das mag also eine ziemlich niedere Sache sein, aber folge mir hier.
Ich versuche, durch die pre_get_posts
Aktion etwas Logik hinzuzufügen . Dies ist das gesamte WP_Query-Objekt, das mir gegeben wurde. (siehe das Ende)
Dinge, die ich in Betracht gezogen habe:
is_single()
- zu umfassend.is_singular()
- zu früh, um dies zu verwenden, daget_queried_object()
noch nicht festgelegt.$query->single
Eigentum - wieder zu breit.$query->get('post_type')
- nicht festgelegt, da diename
Eigenschaft verwendet wird.
ist hier name
wirklich der einzige Indikator?
WP_Query Object
(
[query] => Array
(
[page] =>
[name] => abcs-of-mental-health
)
[query_vars] => Array
(
[page] =>
[name] => abcs-of-mental-health
[error] =>
[m] => 0
[p] => 0
[post_parent] =>
[subpost] =>
[subpost_id] =>
[attachment] =>
[attachment_id] => 0
[static] =>
[pagename] =>
[page_id] => 0
[second] =>
[minute] =>
[hour] =>
[day] => 0
[monthnum] => 0
[year] => 0
[w] => 0
[category_name] =>
[tag] =>
[cat] =>
[tag_id] =>
[author_name] =>
[feed] =>
[tb] =>
[paged] => 0
[comments_popup] =>
[meta_key] =>
[meta_value] =>
[preview] =>
[s] =>
[sentence] =>
[fields] =>
[menu_order] =>
[category__in] => Array
(
)
[category__not_in] => Array
(
)
[category__and] => Array
(
)
[post__in] => Array
(
)
[post__not_in] => Array
(
)
[tag__in] => Array
(
)
[tag__not_in] => Array
(
)
[tag__and] => Array
(
)
[tag_slug__in] => Array
(
)
[tag_slug__and] => Array
(
)
[post_parent__in] => Array
(
)
[post_parent__not_in] => Array
(
)
)
[tax_query] =>
[meta_query] =>
[queried_object] =>
[queried_object_id] => 0
[post_count] => 0
[current_post] => -1
[in_the_loop] =>
[comment_count] => 0
[current_comment] => -1
[found_posts] => 0
[max_num_pages] => 0
[max_num_comment_pages] => 0
[is_single] => 1
[is_preview] =>
[is_page] =>
[is_archive] =>
[is_date] =>
[is_year] =>
[is_month] =>
[is_day] =>
[is_time] =>
[is_author] =>
[is_category] =>
[is_tag] =>
[is_tax] =>
[is_search] =>
[is_feed] =>
[is_comment_feed] =>
[is_trackback] =>
[is_home] =>
[is_404] =>
[is_comments_popup] =>
[is_paged] =>
[is_admin] =>
[is_attachment] =>
[is_singular] => 1
[is_robots] =>
[is_posts_page] =>
[is_post_type_archive] =>
[query_vars_hash] => f473ebf7f725c2627dc5fd9a1429f626
[query_vars_changed] =>
[thumbnails_cached] =>
)
pre_get_posts
(vor dem Ausführen der Abfrage)?is_page()
auf dempre_get_posts
Niveau eingestellt ist. Wenn dies derpost_type
Fall ist und ich prüfen kann, ob es nicht in query_vars festgelegt ist, ist das wohl so gut wie es nur geht? So gebrochen.is_page
scheint gesetzt zu sein.Ich weiß nicht, ob dies nützlich sein wird:
Verwenden Sie $ wp_query-> posts (Array), um den Beitragstyp zu überprüfen.
quelle
$wp_query->posts
Variable tatsächlich ausgefüllt wird. Trotzdem danke!Nach einigen Tests sehe ich, dass es leider unmöglich ist, den Post-Typ von cpt in
pre_get_posts
hook zu bekommen. Dort können nuris_page
Werke, aber weder Standardposttyp noch cpt abgerufen werden.Wenn Sie nur Seite und Beitrag (kein Cpt) haben, bedeutet ein Häkchen
is_single()
mittrue
als Antwort, dass der Beitragstyp Beitrag ist, da er für Seiten falsch zurückgibt.Wenn Sie auch CPTs haben, müssen Sie leider eine zusätzliche Abfrage durchführen . Das einfachste, was ich mir
post_type
vorstellen kann, ist, einfach die Spalte abzurufen, in der der Post-Status veröffentlicht wird und post_name erforderlich ist (Überspringen von Revisionen):Wenn Sie einen bestimmten Beitragstyp überprüfen möchten, können Sie ein benutzerdefiniertes bedingtes Tag schreiben, das nur die Zeilen mit einem bestimmten Beitragstyp und dem angegebenen Namen zählt:
Natürlich wird dies benötigt
pre_get_post
, in jedem späteren Haken können Sieget_post_type()
...quelle
Dies ist, was ich benutze, obwohl es auf meine eigene Verzeichnisstruktur spezialisiert ist.
Der Kilometerstand kann variieren. Die Strpos-Bits, in denen ich überprüfe, ob sich Dateien in einem Verzeichnis befinden, aber nicht in einem anderen, müssten für Ihren Build geändert werden und könnten wahrscheinlich effizienter umgerechnet werden. Sie existieren, um Ergebnisse über und unter einer bestimmten Verzeichnisstruktur auszuschneiden.
Wenn Sie die Liste () in der Fußzeile ausführen, erhalten Sie eine nummerierte Liste aller .php-Vorlagendateien, die zum Kompilieren der aktuellen Ansicht verwendet werden. Dies ist besonders nützlich, wenn Sie sich mit einem untergeordneten Thema befassen, das eine mysteriöse Komponente darstellt.
quelle