$ post-ID e the_id () sempre retornam o valor errado

3

Eu tenho um site onde exibo o mesmo rodapé exato em todas as páginas. Há uma exceção, no entanto. Em uma determinada página, preciso alterar uma pequena parte do rodapé.

Eu acho que a maneira mais simples de fazer isso é verificar, dentro do rodapé, se estou nessa página ou não. Não faria sentido mudar todo o rodapé dessa página, já que estou mudando apenas uma pequena parte do rodapé, dentro do rodapé.

O problema é que sempre que eu chamo $post->ID ou the_id() de dentro do rodapé, ele me dá um ID que claramente não corresponde ao post em que estou. Isso sempre me dá 89 , não importa em qual página eu esteja no site.

Eu acho que devo estar fazendo algo errado. Alguém pode me dizer o que é isso?

    
por Jason Swett 20.01.2012 / 17:38

5 respostas

13

Parece que você está alterando os dados globais $post em algum lugar (geralmente outro loop). Certifique-se de chamar wp_reset_postdata() depois de concluir algo que configure os dados de postagem em um loop alternativo.

    
por helenhousandi 20.01.2012 / 21:44
0

the_ID apenas ecoa a postagem, ela não retorna a ID, se você quiser o ID da postagem específica,

use <?php get_the_ID(); ?>

    
por Sufiyan Ghori 20.01.2012 / 18:26
0

Pode ser mais confiável testar o status de $the_wp_query , que é a principal consulta da página ativa. O valor de $post é simplesmente o que o último loop terminou, então você pode ter plugins afetando o valor.

    
por Annika Backstrom 21.01.2012 / 00:51
0

Codex diz (ênfase minha):

  

Exibe o ID numérico da postagem atual. Esta tag deve estar dentro do The Loop .

Você tenta usá-lo no rodapé, então a falha está muito bem documentada.

Deixe-me sugerir isso: escreva um pequeno plug-in com sua própria matriz de ID de postagem (membro de classe ou globalmente exclusivo; deve ser uma matriz para lidar com páginas que contenham várias postagens).

Crie um código de acesso que adicione o ID da postagem atual a essa matriz. No rodapé, você pode ler todos os IDs que você precisa e pode ter certeza de que ninguém se ajustou a eles.

    
por Raphael 21.01.2012 / 12:52
0

Meu problema é que eu atribui outros valores ao $ post. Eu mudei o nome $ post para outra coisa e funciona.

    
por Ben 06.02.2018 / 19:34

Tags