wake-up-neo.net

Auf der Archivseite für meine Posts gibt get_the_id () außerhalb der Schleife die ID des Posts mit der höchsten Priorität zurück

Ich versuche, die ID meiner Posts-Archivseite abzurufen. Es wird über den Administrator als Beitragsseite festgelegt, sodass es bereits die Standardabfrage enthält. Die Vorlage, die ich verwende, ist index.php. Ich habe versucht, page-blog.php zu verwenden, aber da ich diese Seite als Beitragsarchiv festgelegt habe, wurde stattdessen index.php verwendet (dies hat mich irgendwie davon abgehalten).

echo get_the_id() gibt die ID meines obersten Blogposts (in diesem Fall ein Sticky) anstelle der Seiten-ID zurück. Ich bin außerhalb der Schleife.

Es gibt hier eine ähnliche Frage: ID für Posts/Blogs-Seite , aber das Ziel ist etwas anders und die Lösung besteht darin, stattdessen get_option('page_for_posts') zu verwenden, um das Posts-Archiv zu erhalten ID, ich brauche eine Möglichkeit, um zu erkennen, ob ich auf der Seite des Beitragsarchivs bin.

Ich habe versucht mit:

if (is_page('blog')){ $current_id = get_option('page_for_posts')

dies funktionierte jedoch nicht, da sich das globale $post-Objekt anscheinend auf meinen Post und nicht auf meine Archivseite bezieht

Die Antworten, die ich gefunden habe, scheinen Problemumgehungen zu sein, gehen jedoch nicht auf das zugrunde liegende Problem ein, nämlich die $post-Fehlerbehebung. Fehlt mir etwas oder sollte ich es anders machen? Ich möchte ausdrücklich, dass meine Posts-Archiv-Seite nicht meine Homepage ist.

2

Herausgefunden. Verwenden Sie is_home(), um festzustellen, ob es sich um die Archivseite für Beiträge handelt. irgendwie kontraintuitiv, weil ich immer dachte, diese Funktion würde bestimmen, ob es sich um die Homepage handelt, und fand heraus, dass es dafür eine is_front_page() gibt.

4