$ post-> id exibe ID incorreto
-
-
Vocêestá apenastentando obteresse IDespecífico,ou querter algumafuncionalidade _general_ lidando com os IDs?Se oprimeirofor o caso,vocêpoderia usar `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
-
Euestavatentando obter valor de Metabox,então afuncionalidadegeral lidando com os IDs,de qualquermaneira,é resolvido agora,obrigadopelo seutempo!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
-
Aquiestá umtópico semelhante: https://wordpress.stackexchange.com/questions/150192/AT-MY-POSTS-ACHIVE-PAGE-OUTSO-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 responda
- votos
-
- 2013-08-08
.
Nessapágina $post->id retorna o ID doprimeiropost doblogpara página.
É assim quefunciona.
$post
está definidopara oprimeiropostno loop. Empostagense páginas únicas que são asmesmas dopost oupágina. Em Páginas de Arquivo,é oprimeiropostno conjunto de resultados. E se vocêpensar sobreisso,ambos são realmente amesma coisa. Postagense páginas únicas sótêm um resultadono conjunto que acessa apostagem oupágina que vocêespera..
Agora,aparte complicada,eutentei removertodos os laços detodos osmeus páginas,totalmente apagado loop.php arquivo,desativadotodos os widgets que podeter sido afetando $poste ainda retorna o IDerrado.
A consultaprincipal éexecutada antes de suas cargas demodeloe
$post
é definidonesseprocesso. Remover as coisas domodelonão vaimudarisso..
Alguma dica?
Sim. Não confieem
$post
exceto dentro de um loop adequado. Se vocêprecisar deinformações sobre aprópriapágina usar:$pobj = get_queried_object(); var_dump($pobj); // debugging
Referência:
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
-
Inteligente,nunca ouvi sobreesta solução antes.Clever, I have never heard about this solution before.
- 0
- 2013-08-08
- Wordpressor
Este émuitoestranho.
Este código:
Exibe o ID direitotoda vez queexceto apágina doblog (apágina definida comoblogem/wp-admin/options-reading.php).
nessapágina $post->id retorna o ID doprimeiropost doblogpara determinadapágina.
Agora,aparte complicada,eutentei removertodos os laços detodas asminhaspáginas,totalmente apagado o arquivo loop.php,desabilitoutodos os widgets quepodemter afetado $poste ainda retorna o IDerrado.
.Alguma dica?
meuindex.php ébastantepadrão:
e o loop.php é:
Talvez oproblemaestejatentando obter oidno header.php?
e sim,
wp_reset_postdata()
nãoparece ajudartambém:/