Muchos de nuestros lectores de nivel principiante pronto comienzan a modificar sus temas de WordPress es por eso que tenemos una hoja de trucos tema de WordPress para ayudarles a empezar. Esto conlleva algunos retos interesantes para los nuevos usuarios. Uno de estos lectores, nos preguntó recientemente cómo mostrar las entradas de la semana pasada en WordPress. Sólo querían añadir una sección en su página de inicio que mostrara entradas de la semana anterior. En este artículo, le mostraremos cómo mostrar las entradas de la semana pasada en WordPress.
Antes de mostrar cómo mostrar las entradas de la semana anterior, veamos cómo mostrar las entradas 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 de su 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 averiguamos la semana y el año actuales. Luego usamos esos valores en WP_Query para mostrar entradas de la semana actual. Ahora todo lo que necesitas hacer es añadir <?php wpb_this_week(); ?>
en el archivo de tu tema donde quieras mostrar las entradas.
Ha sido sencillo, ¿verdad? Ahora para mostrar las entradas de la semana pasada todo lo que necesitas hacer es restar 1 del valor de la semana. Pero si esta es la primera semana del año, entonces obtendrá 0 para la semana y el año actual en lugar del año pasado. He aquí cómo corregir este 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 marcas / comprobar. El primer comprobador 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. El segundo comprobador establece el valor del año en el último año cuando el valor de la última semana es 52.
Para mostrar las entradas de la última semana todo lo que necesitas hacer es añadir <?php wpb_last_week_posts(); ?>
al archivo de plantilla de tu tema donde quieras mostrarlas. O si desea tener un shortcode para que pueda añadir esto en una página o un widget, a continuación, sólo tiene que añadir esta línea por debajo del código dado anteriormente.
add_shortcode('lastweek', 'wpb_last_week_posts');
Ahora puede utilizar este shortcode en una entrada, 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 ayudarte a mostrar entradas recientes, archivos, comentarios, etc. Si hay una manera más fácil de usar las funciones existentes, entonces no necesita escribir sus propias consultas.
Esperamos que este artículo te haya ayudado a mostrar las entradas 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 Twitter.
Ali Hesari
This is very useful for me. Thank you.
hitesh
this is very useful for us. keep it
Kenny
This would be great if a YouTube video was made available
Allison
I am curious about when/why I would want to display the week’s posts? On my home page, I display excerpts, so the posts from my past 2 weeks or so are visible. What am I missing here? Thanks!
WPBeginner Support
You don’t need to. But some other website owners may have a layout where they might want to display previous week’s posts separately. This tutorial is aimed to help those users.
Administrador
faisal adil
Awesome
Chris McCoy
you could also take advantage of the new date query http://www.viper007bond.com/2013/08/27/date-queries-in-wordpress-3-point-7/
WPBeginner Support
Yes date_query can also be used to achieve the same goal.
Administrador