¿Cómo obtener el ID del post actual de un tipo de post personalizado en un bucle usando template single-{custom type}.php?
Tengo una plantilla de tipo de post personalizado donde estoy haciendo un bucle a través de todos los posts. Lo que intento es que cuando vaya a mi página de post personalizado quiero obtener el ID del post actual en el bucle.
Así que intenté verificar si el enlace permanente es el mismo para el post dentro del bucle, si es el mismo obtendré el ID del post actual en el bucle.
Aquí está el código que probé
Primero intentando obtener el enlace permanente fuera para verificarlo dentro del bucle
$permalink = get_permalink();
Ahora que tengo el enlace permanente del post actual quiero obtener el ID del post actual
if($query->have_posts()) :
while ($query->have_posts()) : $query->the_post();
if(the_permalink()==$permalink){
echo get_the_ID();
}else{
echo "no encontrado";
}
endwhile;
wp_reset_postdata();
endif;
Probé estas cosas en single-{custom-post-name}.php
y estoy obteniendo no encontrado
.
¿Alguien puede darme una forma de obtener el ID del post actual en esta plantilla?
Entonces tienes dos bucles: el bucle principal y el segundo usando $query
.
Quieres comparar si en algún punto de tu segundo bucle hay una coincidencia entre el post actual (dentro del bucle) y el post procesado dentro del bucle $query
.
¿Estoy en lo correcto?
En lugar de verificar los enlaces permanentes, te propondría verificar los IDs.
Así que en el primer bucle creas una variable con el ID del post actual:
$current_post_id = $post->ID;
y en tu segundo bucle simplemente comparas:
if($query->have_posts()) : while ($query->have_posts()) : $query->the_post();
if( $current_post_id === $post->ID ) {
echo $post->ID;
} else {
echo "no encontrado";
}
endwhile; wp_reset_postdata(); endif;
No estoy seguro si es exactamente lo que buscas, háznoslo saber.
PD: Debería agregar que uses un nombre más específico para tu query, solo para evitar colisiones de nombres con algún plugin o cualquier cosa, como $my_prefix_query

Tienes razón, estaba buscando lo mismo. Anteriormente no sabía cómo usar el bucle por defecto have post. Pensé que obtendría todas las publicaciones. Pero cuando lo intenté, me di cuenta de que obtendría la publicación actual. Así que usé get_the_id()
y lo asigné a una variable, luego lo usé en el bucle de consulta. Gracias @Simon
