$ post-ID y the_id () siempre devuelven el valor incorrecto

3

Tengo un sitio donde muestro el mismo pie de página exacto en cada página. Sin embargo, hay una excepción. En una página determinada, necesito cambiar una pequeña parte del pie de página.

Creo que la forma más sencilla de hacer esto es verificar, dentro del pie de página, si estoy en esa página o no. No tendría sentido cambiar todo el pie de página de esa página, ya que solo estoy cambiando una pequeña parte del pie de página, en lo profundo del pie de página.

El problema es que cada vez que llamo a $post->ID o the_id() desde el pie de página, me da una ID que claramente no coincide con la publicación en la que estoy. Siempre me da 89 , sin importar en qué página esté en el sitio.

Me imagino que debo estar haciendo algo mal. ¿Alguien puede decirme qué es?

    
pregunta Jason Swett 20.01.2012 - 17:38

5 respuestas

13

Parece que está modificando los datos globales de $post en algún lugar (generalmente otro bucle). Asegúrate de llamar a wp_reset_postdata() después de que hayas terminado con algo que configura los datos de publicación en un ciclo alternativo.

    
respondido por el helenhousandi 20.01.2012 - 21:44
0

the_ID simplemente repite la publicación, no devuelve el ID, Si desea la ID para la publicación en particular,

usa <?php get_the_ID(); ?>

    
respondido por el Sufiyan Ghori 20.01.2012 - 18:26
0

Puede ser más confiable probar el estado de $the_wp_query , que es la consulta principal para la página activa. El valor de $post es simplemente lo que termine con el último bucle, por lo que es posible que haya complementos que afecten el valor.

    
respondido por el Annika Backstrom 21.01.2012 - 00:51
0

El Codex dice (énfasis mío):

  

Muestra el ID numérico de la publicación actual. Esta etiqueta debe estar dentro de The Loop .

Intenta usarlo en el pie de página, por lo que el fallo está muy bien documentado.

Permítame sugerir esto: escriba un pequeño complemento con su propia matriz de ID de publicación (miembro de la clase o nombre único global; debe ser una matriz para tratar las páginas que contienen varias publicaciones).

Crea un shortcode que agregue el ID de la publicación actual a esta matriz. En el pie de página, puede leer todos los ID que necesite y puede estar seguro de que nadie los ha atenuado.

    
respondido por el Raphael 21.01.2012 - 12:52
0

Mi problema fue que he asignado otros valores a $ post. Cambié el nombre de $ post a otra cosa y funciona.

    
respondido por el Ben 06.02.2018 - 19:34

Lea otras preguntas en las etiquetas