$ post-> ID zeigt falsche ID
-
-
Versuchen Sienur,diese spezifische ID zuerhalten,odermöchten Sieeine allgemeine Funktionalitätfür die IDs haben?Wenn dererste Fall der Fallist,können Sie `get_option ('page_for_posts');` verwenden.Are you just trying to get that specific ID, or do you want to have some _general functionality_ dealing with the IDs? If the first is the case, you could use `get_option('page_for_posts');`.
- 1
- 2013-08-08
- tfrommen
-
Ich habe versucht,den Metabox-Wert zuermitteln,daherist die allgemeine Funktionalitätfür die IDsjetztbehoben. Vielen Dankfür Ihre Zeit!I was trying to get metabox value, so general functionality dealing with the IDs, anyways it's resolved now, thanks for your time!
- 0
- 2013-08-08
- Wordpressor
-
Hieristein ähnlicher Thread: https://wordpress.stackexchange.com/questions/150192/at-my-posts-archive-page-outside-the-loop-get-the-id-returns-the-top-most-poHere's a similar thread: https://wordpress.stackexchange.com/questions/150192/at-my-posts-archive-page-outside-the-loop-get-the-id-returns-the-top-most-po
- 0
- 2019-03-05
- Pikamander2
-
1 Antworten
- Stimmen
-
- 2013-08-08
Auf dieser Seitegibt $post-> ID die ID desersten Blogpostsfürgegeben zurück Seite.
Sofunktioniertes.
$post
wird auf denersten Beitragin der Schleifegesetzt. Beieinzelnen Posts und Seitenentspricht dies dem Post oder der Seite. Auf Archivseitenistes dererste Beitragin der Ergebnismenge. Und wenn Sie darübernachdenken,sindbeide wirklich dasselbe. Einzelne Beiträge und Seiten habennurein Ergebnisim Satz,das demerwarteten Beitrag oder dererwarteten Seiteentspricht.Nun,der schwierige Teil,ich habe versucht,alle Schleifen von allenmeinen zuentfernen Seiten,vollständiggelöschte loop.php-Datei,deaktivierte alle Widgets,die Möglicherweise hat sich dies auf $post ausgewirkt,undes wirdimmernoch diefalsche ID zurückgegeben.
Die Hauptabfrage wird ausgeführt,bevor Ihre Vorlagegeladen wird und
$post
in diesem Prozessfestgelegt wird. Das Entfernen von Dingen aus der Vorlage ändert darannichts.Irgendwelche Hinweise?
Ja. Verlassen Sie sichnurin einer richtigen Schleife auf
$post
. Wenn Sie Informationen über die Seite selbstbenötigen,verwenden Sie:$pobj = get_queried_object(); var_dump($pobj); // debugging
Referenz:
http://codex.wordpress.org/Function_Reference/get_queried_object
On that page $post->ID returns the ID of first blog post for given page.
That is how it works.
$post
is set to the first post in the Loop. On single posts and pages that is the same as the post or page. On archive pages it is the first post in the result set. And if you think about that, both are really the same thing. Single posts and pages only have one result in the set which happens to match the post or page that you expect.Now, the tricky part, I've tried to remove all the loops from all my pages, totally erased loop.php file, disabled all the widgets that might have been affecting $post and it still returns the wrong ID.
The main query runs before your template loads and
$post
is set in that process. Removing things from the template won't change that.Any hints?
Yes. Don't rely on
$post
except inside a proper Loop. If you need information about the page itself use:$pobj = get_queried_object(); var_dump($pobj); // debugging
Reference:
http://codex.wordpress.org/Function_Reference/get_queried_object
-
Clever,ich habenochnie von dieser Lösunggehört.Clever, I have never heard about this solution before.
- 0
- 2013-08-08
- Wordpressor
Dieserist ziemlich komisch.
Dieser Code:
Zeigtjedes Mal die richtige IDmit Ausnahme der Blog-Seite an (die Seite,diein/wp-admin/options-reading.php als Blogfestgelegtist).
Auf dieser Seitegibt $post-> ID die ID desersten Blogpostsfüreine bestimmte Seite zurück.
Nun,der schwierige Teil,ich habe versucht,alle Schleifen von allenmeinen Seiten zuentfernen,die Datei loop.php vollständiggelöscht,alle Widgets deaktiviert,diemöglicherweise $postbeeinflusst haben,undes wirdimmernoch diefalsche ID zurückgegeben.
Irgendwelche Hinweise?
Meineindex.phpist ziemlichnormal:
Und die loop.php lautet:
Vielleicht liegt das Problem darin,dassich versuche,die IDin header.php zuerhalten?
Undja,
wp_reset_postdata()
scheintebenfallsnicht zu helfen:/