Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
WPB Cup
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

Så här displayed du förra veckans posts i WordPress

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.

Avslöjande: Vårt innehåll stöds av våra läsare. Det innebär att om du klickar på några av våra länkar, kan vi tjäna en provision. Se hur WPBeginner finansieras, varför det är viktigt, och hur du kan stödja oss. Här är vår editoriala process.

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

Den ultimata WordPress-verktygslådan

Få GRATIS tillgång till vår verktygslåda - en samling WordPress-relaterade produkter och resurser som varje professionell användare bör ha!

Reader Interactions

9 kommentarerLämna ett svar

  1. 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!

  2. 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

Lämna ett svar

Tack för att du väljer att lämna en kommentar. Tänk på att alla kommentarer modereras enligt våra policy för kommentarer, och din e-postadress kommer INTE att publiceras. Vänligen använd INTE nyckelord i namnfältet. Låt oss ha en personlig och meningsfull konversation.