Muchos de nuestros lectores principiantes pronto comienzan a modificar sus temas de WordPress, por eso tenemos una hoja de trucos de temas de WordPress para ayudarles a empezar. Esto presenta algunos desafíos interesantes para los nuevos usuarios. Uno de esos lectores, recientemente nos preguntó cómo mostrar las publicaciones de la semana pasada en WordPress. Simplemente querían agregar una sección en su página de inicio que mostrara las publicaciones de la semana anterior. En este artículo, le mostraremos cómo mostrar las publicaciones de la semana pasada en WordPress.
Antes de mostrarle cómo mostrar las publicaciones de la semana anterior, primero veamos 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 plugin 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 las publicaciones de la semana actual. Ahora todo lo que necesita hacer es agregar <?php wpb_this_week(); ?> en el archivo de su tema donde desea mostrar las publicaciones.
Esto fue simple, ¿verdad? Ahora, para mostrar las publicaciones de la semana pasada, todo lo que necesitas hacer es restar 1 al valor de la semana. Pero si esta es la primera semana del año, obtendrás 0 para la semana y el año actual en lugar del año pasado. Aquí te mostramos cómo solucionar 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 ejemplo anterior, hemos colocado dos verificaciones. La primera verificación establece el valor de la semana pasada en 52 (que es la última semana del año) cuando el valor de la semana actual es 1. La segunda verificación establece el valor del año en el año pasado cuando el valor de la semana pasada es 52.
Para mostrar las publicaciones de la semana pasada, todo lo que necesitas hacer es agregar <?php wpb_last_week_posts(); ?> al archivo de plantilla de tu tema donde quieras mostrarlas. O si deseas tener un shortcode para poder agregarlo a una página o un widget, simplemente agrega esta línea debajo del código proporcionado anteriormente.
add_shortcode('lastweek', 'wpb_last_week_posts');
Ahora puedes usar este shortcode en una publicación, página o widget de la siguiente manera:
[lastweek]
Ten en cuenta que no siempre necesitas WP_Query para crear consultas personalizadas. WordPress viene con varias funciones para ayudarte a mostrar publicaciones recientes, archivos, comentarios, etc. Si hay una forma más fácil de usar las funciones existentes, entonces realmente no necesitas escribir tus propias consultas.
Esperamos que este artículo te haya ayudado a mostrar las publicaciones de la semana pasada en WordPress. Experimenta con el código y modifícalo para que se ajuste a tus necesidades. Déjanos saber si tienes alguna pregunta dejando un comentario abajo o únete a nosotros en Twitter.


Ali Hesari
Esto es muy útil para mí. Gracias.
hitesh
esto es muy útil para nosotros. sigan así
Kenny
Sería genial si se hiciera un video de YouTube
Allison
Tengo curiosidad sobre cuándo/por qué querría mostrar las publicaciones de la semana? En mi página de inicio, muestro extractos, por lo que las publicaciones de mis últimas 2 semanas aproximadamente son visibles. ¿Qué me estoy perdiendo aquí? ¡Gracias!
Soporte de WPBeginner
No es necesario. Pero algunos otros propietarios de sitios web pueden tener un diseño en el que quieran mostrar las publicaciones de la semana anterior por separado. Este tutorial está dirigido a ayudar a esos usuarios.
Administrador
faisal adil
Awesome
Chris McCoy
también podrías aprovechar las nuevas consultas de fecha http://www.viper007bond.com/2013/08/27/date-queries-in-wordpress-3-point-7/
Soporte de WPBeginner
Sí, date_query también se puede usar para lograr el mismo objetivo.
Administrador