Cómo usar el LOOP en una página estática de WP



Publicado el 30 - Nov - 2017

Loop en Front Page | 0 comentarios    |  312 Visitas


El Loop estándar de WordPress es muy simple. Bastaría con decirle a WP que si hay post que me los recorra con un bucle hasta que no haya más y en cada iteración que nos devuelva el post respectivo. En código quedaría así:


PHP
if ( have_posts() ) :
	while ( have_posts() ) :
		the_post(); 
		//
		// Etiquetas de template
		//
		the_title();
	endwhile;
else:
        echo 'No post published yet...';
endif;

Si colocamos este código en la plantilla designada para visualizar nuestras últimas entradas (index.php) obtendremos un listado de los títulos de nuestros posts, pero si intentamos ejecutarlo en una plantilla estática, tipo front-page.php, este Loop nos devolverá el título de la página en la que estamos.

Esto es así porque las plantillas estáticas de WP no llevan implícita la consulta y siendo una página un tipo especial de post (es tratada internamente así por WP) el único valor al que puede acceder the_title() es al propio título de la página.

Para poder acceder a los posts de nuestro blog desde una plantilla estática deberemos usar la clase WP_Query. Por ejemplo:


PHP
$args = array(
     'nopaging' => false,
     'post_type' => array ('post'),
);
$custom_query = new WP_Query($args);   
if ( $custom_query->have_posts() ):
    while ($custom_query->have_posts() ) :
           $custom_query->the_post(); 
           // Aquí nuestro código para visualizar el post 
    endwhile; 
endif; 
wp_reset_query();

Recordad acabar el bucle con la función wp_reset_query() o con la función wp_reset_postdata() para tener de nuevo disponible el Loop por defecto de WordPress.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.