$ post-> ID mostra l'ID sbagliato
-
-
Stai solo cercando di ottenere quell'ID specifico o desideri disporre di alcune _funzionalitàgenerali_ che si occupano degli ID?Seilprimo èil caso,potresti usare `get_option ('page_for_posts');`.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
-
Stavo cercando di ottenereil valore delmetabox,quindifunzionalitàgenerale che si occupa degli ID,comunque ora è risolta,grazieperiltuotempo!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
-
Ecco unthread simile: 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 risposta
- voti
-
- 2013-08-08
In quellapagina $post-> ID restituisce l'ID delprimopost delblogper dato pagina.
È così chefunziona.
$post
èimpostato sulprimopostnel Loop. Su singoliposte pagine che è uguale alpost o allapagina. Nellepagine di archivio èilprimopostnel set di risultati. E se cipensi,entrambi sono davvero la stessa cosa. I singoliposte pagine hanno un solo risultatonel set che corrisponde alpost o allapagina cheti aspetti.Ora,laparte difficile,hoprovato a rimuoveretuttii loop datuttii mieifile pages,file loop.php completamente cancellato,disabilitavatuttii widget che potrebbe averinfluenzato $poste restituisce ancora l'ID sbagliato.
La queryprincipale vieneeseguitaprima del caricamento delmodelloe
$post
vieneimpostatoin quelprocesso. La rimozione dielementi dalmodellonon cambierà la situazione.Qualche suggerimento?
Sì. Nonfare affidamento su
$post
senon all'interno di un ciclo appropriato. Se haibisogno diinformazioni sullapagina stessa usa:$pobj = get_queried_object(); var_dump($pobj); // debugging
Riferimento:
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
-
Intelligente,non homai sentitoparlare di questa soluzioneprima.Clever, I have never heard about this solution before.
- 0
- 2013-08-08
- Wordpressor
Questo èpiuttosto strano.
Questo codice:
Visualizza l'ID corretto ogni volta adeccezione dellapagina delblog (lapaginaimpostata comeblog su/wp-admin/options-reading.php).
In quellapagina $post-> ID restituisce l'ID delprimopost delblogper una datapagina.
Ora,laparte difficile,hoprovato a rimuoveretuttii loop datutte lemie pagine,ho cancellato completamenteilfile loop.php,ho disabilitatotuttii widget chepotrebbero averinfluenzato $poste restituisce ancora l'ID sbagliato.
/p>
Qualche suggerimento?
Ilmioindex.php èpiuttosto standard:
E loop.php è:
Forseilproblema è che sto cercando di ottenere l'IDin header.php?
E sì,anche
wp_reset_postdata()
non sembra aiutare:/