Många av våra nybörjarläsare börjar snart modifiera sina WordPress-teman, därför har vi ett WordPress-temaguide för att hjälpa dem att komma igång. Detta medför några intressanta utmaningar för nya användare. En sådan läsare frågade oss nyligen hur man visar inlägg från förra veckan i WordPress. De ville bara lägga till en sektion på sin startsida som visade inlägg från föregående vecka. I den här artikeln visar vi hur du visar inlägg från förra veckan i WordPress.
Innan vi visar hur du visar inlägg från föregående vecka, låt oss först titta på hur du kan visa inlägg från den aktuella veckan med WP_Query. Kopiera och klistra in följande kod i din temas functions.php-fil eller ett webbplatsspecifikt plugin.
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;
}
I exempelkoden ovan räknade vi först ut den aktuella veckan och året. Vi använde sedan dessa värden i WP_Query för att visa inlägg från den aktuella veckan. Nu behöver du bara lägga till <?php wpb_this_week(); ?> i din temafil där du vill visa inläggen.
Detta var enkelt, eller hur? Nu för att visa förra veckans inlägg behöver du bara subtrahera 1 från veckans värde. Men om detta är årets första vecka, får du 0 för veckan och innevarande år istället för förra året. Här är hur du löser det problemet.
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;
}
I exempelkoden ovan har vi lagt in två kontroller. Den första kontrollen sätter förra veckans värde till 52 (vilket är den sista veckan på ett år) när den aktuella veckans värde är 1. Den andra kontrollen sätter årets värde till förra året när förra veckans värde är 52.
För att visa inlägg från förra veckan behöver du bara lägga till <?php wpb_last_week_posts(); ?> i din temas mallfil där du vill visa dem. Eller om du vill ha en kortkod så att du kan lägga till detta i en sida eller en widget, lägg då bara till den här raden under koden som ges ovan.
add_shortcode('lastweek', 'wpb_last_week_posts');
Du kan nu använda denna kortkod i ett inlägg, en sida eller en widget så här:
[förra veckan]
Observera att du inte alltid behöver WP_Query för att skapa anpassade frågor. WordPress levereras med en handfull funktioner som hjälper dig att visa senaste inlägg, arkiv, kommentarer, etc. Om det finns ett enklare sätt att använda befintliga funktioner, då behöver du egentligen inte skriva egna frågor.
Vi hoppas att den här artikeln hjälpte dig att visa förra veckans inlägg i WordPress. Experimentera med koden och modifiera den för att uppfylla dina behov. Låt oss veta om du har några frågor genom att lämna en kommentar nedan eller gå med oss på Twitter.

Ali Hesari
Detta är mycket användbart för mig. Tack.
hitesh
detta är mycket användbart för oss. fortsätt så
Kenny
Det vore bra om en YouTube-video gjordes tillgänglig
Allison
Jag är nyfiken på när/varför jag skulle vilja visa veckans inlägg? På min startsida visar jag utdrag, så inläggen från mina senaste 2 veckor eller så är synliga. Vad missar jag här? Tack!
WPBeginner Support
Det behöver du inte. Men vissa andra webbplatsägare kan ha en layout där de vill visa inlägg från föregående vecka separat. Den här handledningen är avsedd att hjälpa dessa användare.
Admin
faisal adil
Awesome
Chris McCoy
du kan också dra nytta av den nya datumfrågan http://www.viper007bond.com/2013/08/27/date-queries-in-wordpress-3-point-7/
WPBeginner Support
Ja, date_query kan också användas för att uppnå samma mål.
Admin