Cómo mostrar las publicaciones de la semana pasada en WordPress

Muchos de nuestros lectores de nivel principiante pronto comienzan a modificar sus temas de WordPress, por eso tenemos una hoja de trucos de temas de WordPress para ayudarlos a comenzar. Esto trae algunos desafíos interesantes para los nuevos usuarios. Uno de esos lectores nos preguntó recientemente cómo mostrar las publicaciones de la semana pasada en WordPress. Solo querían agregar una sección en su página de inicio que mostrara publicaciones de la semana anterior. En este artículo, le mostraremos cómo mostrar las publicaciones de la semana pasada en WordPress.

Antes de que le mostremos cómo mostrar las publicaciones de la semana anterior, primero echemos un vistazo a cómo puede mostrar las publicaciones de la semana actual usando WP_Query. Copie y pegue el siguiente código en el archivo functions.php de su tema o en un complemento específico del sitio.

function wpb_this_week() { 
$week = date('W');
$year = date('Y');
$the_query = new WP_Query( 'year=" . $year . "&w=' . $week );
if ( $the_query->have_posts() ) : 
while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
    <h2><a href="<?php the_permalink(); ?>" title="Permanent link to <?php the_title(); ?> "><?php the_title(); ?></a></h2>
	<?php the_excerpt(); ?>
  <?php endwhile; ?>
  <?php wp_reset_postdata(); ?>
<?php else:  ?>
  <p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<?php endif;
}

En el código de ejemplo anterior, primero descubrimos la semana y el año actuales. Luego usamos esos valores en WP_Query para mostrar publicaciones de la semana actual. Ahora todo lo que necesitas hacer es agregar <?php wpb_this_week(); ?> en su archivo de tema donde desea mostrar las publicaciones.

Esto fue simple, ¿no? Ahora, para mostrar las publicaciones de la semana pasada, todo lo que necesita hacer es menos 1 del valor de la semana. Pero si esta es la primera semana del año, obtendrá 0 para la semana y el año actual en lugar del año pasado. Así es como solucionas ese problema.


function wpb_last_week_posts() { 
$thisweek = date('W');
if ($thisweek != 1) :
$lastweek = $thisweek - 1;   
else : 
$lastweek = 52;
endif; 
$year = date('Y');
if ($lastweek != 52) :
$year = date('Y');
else: 
$year = date('Y') -1; 
endif;
$the_query = new WP_Query( 'year=" . $year . "&w=' . $lastweek );
if ( $the_query->have_posts() ) : 
while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
    <h2><a href="<?php the_permalink(); ?>" title="Permanent link to <?php the_title(); ?> "><?php the_title(); ?></a></h2>
	<?php the_excerpt(); ?>
  <?php endwhile; ?>
  <?php wp_reset_postdata(); ?>
<?php else:  ?>
  <p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<?php endif;

}

En el código de muestra anterior hemos colocado dos marcas. La primera comprobación establece el valor de la última semana en 52 (que es la última semana de un año) cuando el valor de la semana actual es 1. La segunda comprobación establece el valor del año en el año pasado cuando el valor de la última semana es 52.

Para mostrar las publicaciones de la semana pasada, todo lo que necesita hacer es agregar <?php wpb_last_week_posts(); ?> al archivo de plantilla de su tema donde le gustaría mostrarlos. O si desea tener un código abreviado para poder agregarlo a una página o un widget, simplemente agregue esta línea debajo del código que se proporcionó anteriormente.

add_shortcode('lastweek', 'wpb_last_week_posts');

Ahora puede usar este shortcode en una publicación, página o un widget como este:

[lastweek]

Tenga en cuenta que no siempre necesita WP_Query para crear consultas personalizadas. WordPress viene con un puñado de funciones para ayudarlo a mostrar publicaciones recientes, archivos, comentarios, etc. Si hay una manera más fácil de usar las funciones existentes, entonces realmente no necesita escribir sus propias consultas.

Esperamos que este artículo le haya ayudado a mostrar las publicaciones de la semana pasada en WordPress. Experimente con el código y modifíquelo para satisfacer sus necesidades. Háganos saber si tiene alguna pregunta dejando un comentario a continuación o únase a nosotros en Gorjeo.

Deja un comentario