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()