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

Jak wyświetlić wpisy z ostatniego tygodnia w WordPress?

Wielu naszych czytelników na poziomie początkującym wkrótce zaczyna modyfikować swoje motywy WordPress, dlatego mamy ściągawkę z motywów WordPress, aby pomóc im zacząć. Wiąże się to z kilkoma interesującymi wyzwaniami dla nowych użytkowników. Jeden z takich czytelników zapytał nas ostatnio, jak wyświetlić wpisy z ostatniego tygodnia w WordPressie. Chciał po prostu dodać sekcję na swojej stronie głównej, która wyświetlałaby wpisy z poprzedniego tygodnia. W tym artykule pokażemy, jak wyświetlić wpisy z ostatniego tygodnia w WordPress.

Zanim pokażemy, jak wyświetlić wpisy z poprzedniego tygodnia, przyjrzyjmy się najpierw, jak można wyświetlić wpisy z obecnego, aktualnego tygodnia za pomocą WP_Query. Skopiuj i wklej poniższy kod do pliku functions. php twojego motywu lub wtyczki specyficznej dla witryny.

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;
}

.

W powyższym przykładowym kodzie najpierw poznaliśmy obecny, aktualny tydzień i rok. Następnie użyliśmy tych wartości w WP_Query, aby wyświetlić wpisy z obecnego, aktualnego tygodnia. Teraz wszystko, co musisz zrobić, to dodać <?php wpb_this_week(); ?> w twoim pliku motywu, gdzie chcesz wyświetlić wpisy.

To było proste, prawda? Teraz, aby wyświetlić wpisy z ostatniego tygodnia, wystarczy odjąć 1 od wartości tygodnia. Ale jeśli jest to pierwszy tydzień roku, otrzymasz 0 dla tygodnia i obecnego, aktualnego roku zamiast zeszłego roku. Oto jak można naprawić ten problem.


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;

}

.

W powyższym przykładowym kodzie umieściliśmy dwa sprawdzenia. Pierwsze sprawdzenie ustawia wartość ostatniego tygodnia na 52 (który jest ostatnim tygodniem w roku), gdy wartość obecnego tygodnia wynosi 1. Drugie sprawdzenie ustawia wartość roku na ostatni rok, gdy wartość ostatniego tygodnia wynosi 52.

Aby wyświetlić wpisy z ostatniego tygodnia, wystarczy dodać <?php wpb_last_week_posts(); ?> do pliku szablonu twojego motywu, w którym chcesz je wyświetlić. Lub jeśli chcesz mieć krótki kod, aby dodać go do strony lub widżetu, po prostu dodaj tę linię poniżej kodu podanego powyżej.

add_shortcode('lastweek', 'wpb_last_week_posts');

.

Możesz teraz użyć tego krótkiego kodu we wpisie, na stronie lub w widżecie w ten sposób:

[lastweek].

Pamiętaj, że nie zawsze potrzebujesz WP_Query do tworzenia własnych zapytań. WordPress jest wyposażony w kilka funkcji, które pomagają wyświetlać ostatnie wpisy, archiwa, komentarze itp. Jeśli istnieje łatwiejszy sposób korzystania z istniejących funkcji, to tak naprawdę nie musisz pisać własnych zapytań.

Mamy nadzieję, że ten artykuł pomógł ci wyświetlić wpisy z ostatniego tygodnia w WordPress. Poeksperymentuj z kodem i zmodyfikuj go tak, aby spełniał twoje potrzeby. Daj nam znać, jeśli masz jakieś pytania, zostawiając komentarz poniżej lub dołącz do nas na Twitterze.

Ujawnienie: Nasze treści są wspierane przez czytelników. Oznacza to, że jeśli klikniesz na niektóre z naszych linków, możemy otrzymać prowizję. Zobacz jak WPBeginner jest finansowany, dlaczego to ma znaczenie i jak możesz nas wspierać. Oto nasz proces redakcyjny.

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.

Najlepszy zestaw narzędzi WordPress

Uzyskaj BEZPŁATNY dostęp do naszego zestawu narzędzi - zbiór produktów i zasobów związanych z WordPressem, które każdy profesjonalista powinien mieć!

Reader Interactions

9 komentarzyZostaw odpowiedź

  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.

      Administrator

Zostaw odpowiedź

Dziękujemy za pozostawienie komentarza. Pamiętaj, że wszystkie komentarze są moderowane zgodnie z naszymi polityka komentarzy, a Twój adres e-mail NIE zostanie opublikowany. NIE używaj słów kluczowych w polu nazwy. Przeprowadźmy osobistą i konstruktywną rozmowę.