En este momento estás viendo El bucle (V) Personalizando el bucle (IV) Restableciendo  la consulta

El bucle (V) Personalizando el bucle (IV) Restableciendo la consulta

Una vez que hayamos terminado de personalizar nuestro bucle y de realizar nuestras consultas es recomendable restablecer los datos del mismo, para llevar a cabo WP ofrece dos funciones:

  • wp_reset_postdata(), almacena la variable global $post en la entrada actual de consulta principal. Es el metodo recomendado cuando se utiliza WP_Query, tan solo hay que introducirla al final de nuestro bucle para que se restablezca la consulta por defecto:

<?php
// la consulta
$the_query = new WP_Query( 'category_name=noticias' );
// el bucle
if ( $the_query->have_posts() ) {
echo '<ul>';
while ( $the_query->have_posts() ) {
$the_query->the_post();
echo '<li>' . get_the_title() . '</li>';
echo the_excerpt();
}
echo '</ul>';
} else {
// en caso de no encontrar posts
}
/* Restauracion del Post Data original */
wp_reset_postdata();
?>

  • wp_reset_query(), puede que en ocasiones produzca errores con etiquetas condicionales, como is_home(), al crearse un bucle personalizado, pero con esta función esto no ocurre, ya que restablece la consulta original y las etiquetas condiciones, incluidas en el proceso de análisis de la URL.

La función wp_reset_query() invoca en su trabajo a wp_reset_postdata(), pero ademas destruye la consulta anterior antes de restablecerla.

De forma general podemos decir que:

  • wp-reset-query() siempre debe utilizarse tras un bucle query_posts()
  • wp_reset_postdata() debe usarse despues de un bucle con WP-Query o get_posts()

Deja una respuesta

Responsable » Miguel Ángel López Torralba
Finalidad » Contactar conmigo y enviarte mi contenido.
Legitimación » Tu consentimiento.
Destinatario » MailChimp, mi proveedor de email marketing, que está acogido al acuerdo de seguridad EU-US Privacy.
Derechos » Acceder, rectificar, limitar o suprimir tus datos cuando quieras.