Många av våra läsare på nybörjarnivå börjar snart ändra sina WordPress tem an, det är därför vi har en WordPress tema fuskblad 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 förra veckans post i WordPress. De ville bara lägga till en section på sin home page som visade inlägg från föregående vecka. I den här artikeln kommer vi att visa you hur man displayed förra veckans posts i WordPress.
Innan vi visar hur du visar föregående veckas inlägg ska vi först ta en titt på hur du kan visa den aktuella veckans inlägg med hjälp av WP_Query. Copy and paste följande kod i ditt temas functions.php-fil eller i ett site-specifikt 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 tog vi först reda på aktuell vecka och år. Vi använde sedan dessa värden i WP_Query för att visa posts från aktuell vecka. Nu är allt du behöver göra att add to <?php wpb_this_week(); ?>
i din theme-fil där du vill visa posterna.
Det här var enkelt, eller hur? För att nu visa förra veckans posts behöver you all bara göra minus 1 från veckans värde. Men om det här är årets första vecka får du 0 för veckan och innevarande år istället för förra året. Så här fixar du 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 placerat två kontroller. Den första kontrollen sätter den sista 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 den sista veckans värde är 52.
För att visa förra veckans posts behöver du bara add to <?php wpb_last_week_posts(); ?>
till filen template i ditt theme där du gillar att visa dem. Eller om du gillar att ha en shortcode så att du kan add to detta till en page eller ett widget, lägg då bara till denna rad under koden ovan.
add_shortcode('lastweek', 'wpb_last_week_posts');
Du kan nu använda denna shortcode i ett post, page, eller en widget som denna:
[lastweek]
Vänligen notera att du inte alltid behöver WP_Query för att skapa customizer sökningar. WordPress kommer med en handfull funktioner som hjälper dig att displayed senaste inlägg, archives, comments, etc. Om det finns ett enklare sätt att använda de befintliga funktionerna behöver du egentligen inte skriva dina egna sökningar.
Vi hoppas att den här artikeln hjälpte dig att visa förra veckans posts i WordPress. Experimentera med koden och ändra den så att den passar dina behov. Låt oss veta om du har några frågor genom att lämna en comment under eller gå med oss på Twitter.
Syed Balkhi says
Hey WPBeginner readers,
Did you know you can win exciting prizes by commenting on WPBeginner?
Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
You can get more details about the contest from here.
Start sharing your thoughts below to stand a chance to win!
Ali Hesari says
This is very useful for me. Thank you.
hitesh says
this is very useful for us. keep it
Kenny says
This would be great if a YouTube video was made available
Allison says
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 says
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.
Administratör
faisal adil says
Awesome
Chris McCoy says
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 says
Yes date_query can also be used to achieve the same goal.
Administratör