El bucle en WordPress

Fragmentos de código imprescindibles para construir tus propias plantillas de Wordpress

Crear nuestras propias plantillas de WordPress puede no ser el camino más rápido para construir una página web, pero sí el más eficaz para plasmar un diseño de acuerdo con las necesidades específicas del proyecto en el que estamos trabajando.

Por eso tener a mano estos snippets siempre viene bien. Todos estos tienen que ver con el bucle, que es la manera en la que WordPress determina el contenido que se mostrará en una página.

El bucle general, aquel que llama a las entradas del blog.

<?php if(have_posts()) : while(have_posts()) : the_post(); ?>

   <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>

    <?php the_title('<h2 class="entry-title"><a href="' . get_permalink() . '" title="' . the_title_attribute('echo=0') . '" rel="bookmark">', '</a></h2>'); ?>

    <div class="entry-content">

        <?php the_content(__('Sigue leyendo', 'ejemplo')); ?>

        <?php wp_link_pages('before=<p class="pages">' . __('Páginas:','ejemplo') . '&after=</p>'); ?>

    </div>

    <div class="entry-summary">

        <?php the_excerpt(); ?>

    </div>

    <p class="entry-meta">

       <span class="categories"><?php _e('Publicado en', 'ejemplo'); ?> <?php the_category(', '); ?></span>

       <?php the_tags('<span class="tags"> <span class="sep">|</span> ' . __('Tags:', 'ejemplo') . ' ', ', ', '</span>'); ?> 

       <span class="separador">|</span> <?php comments_popup_link(__('Deja una respuesta', 'ejemplo'), __('1 respuesta', 'ejemplo'), __('% respuestas', 'ejemplo'), 'comments-link', __('Comentarios cerrados', 'ejemplo')); ?> 

    </p>

  </div>

<?php endwhile; ?>

<?php else : ?>

  <p class="no-posts"><?php _e('Lo siento, no hay entradas que se ajusten a lo que busca', 'ejemplo'); ?></p>

<?php endif; ?>

Bucle de llamada a un número limitado de posts: cuando sólo queremos mostrar 2 entradas de nuestro blog, por ejemplo.

<?php

   query_posts ('showposts=2');

   while (have_posts()) : the_post();?>

       <div>
  
          <h2><a href="<?php echo get_permalink( $post->ID ); ?>"><?php the_title(); ?></a></h2>

          <p><?php the_time(__('j F, Y', 'ejemplo')); ?></p>

          <a href="<?php echo get_permalink( $post->ID ); ?>"><?php the_post_thumbnail(); ?></a>

       </div>

       <?php

       endwhile;

       ?>

Bucle de llamada a una taxonomía concreta de un Custom Post Type, en este caso el custom post type se llama clientes y la taxonomía tipo_de_cliente.

<?php

$the_query = new WP_Query( array(

'post_type' => 'clientes',

'tax_query' => array(

   array (

     'taxonomy' => 'tipo_de_cliente',

     'field' => 'slug',

     'terms' => 'clientes',

      )

),

) );

while ( $the_query->have_posts() ) :

$the_query->the_post();?>

// lo que queremos mostrar del post 
<div>
   <?php the_post_thumbnail(); ?>
</div>

<?php endwhile;

wp_reset_postdata();

?>