Zaufane samouczki WordPress, kiedy ich najbardziej potrzebujesz.
Przewodnik dla początkujących po WordPressie
WPB Cup
25 milionów+
Witryny korzystające z naszych wtyczek
16+
Lata doświadczenia z WordPressem
3000+
Samouczki WordPress od ekspertów

Jak wyświetlić posty z zeszłego tygodnia w WordPress

Wielu naszych czytelników na poziomie początkującym wkrótce zaczyna modyfikować swoje motywy WordPress, dlatego mamy arkusz motywów WordPress dla początkujących, aby pomóc im zacząć. Stwarza to pewne interesujące wyzwania dla nowych użytkowników. Jeden z takich czytelników niedawno zapytał nas, jak wyświetlić posty z zeszłego tygodnia w WordPress. Chcieli po prostu dodać sekcję na swojej stronie głównej, która wyświetlałaby posty z poprzedniego tygodnia. W tym artykule pokażemy, jak wyświetlić posty z zeszłego tygodnia w WordPress.

Zanim pokażemy Ci, jak wyświetlać posty z poprzedniego tygodnia, spójrzmy najpierw, jak wyświetlać posty z bieżącego tygodnia za pomocą WP_Query. Skopiuj i wklej poniższy kod do pliku functions.php swojego motywu lub do 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 ustaliliśmy bieżący tydzień i rok. Następnie użyliśmy tych wartości w WP_Query, aby wyświetlić posty z bieżącego tygodnia. Teraz wystarczy dodać <?php wpb_this_week(); ?> w pliku motywu, w miejscu, w którym chcesz wyświetlić posty.

To było proste, prawda? Teraz, aby wyświetlić posty z zeszłego tygodnia, wystarczy odjąć 1 od wartości tygodnia. Ale jeśli jest to pierwszy tydzień roku, otrzymasz 0 dla tygodnia i bieżący rok zamiast zeszłego roku. Oto jak 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ść z poprzedniego tygodnia na 52 (co jest ostatnim tygodniem w roku), gdy wartość bieżącego tygodnia wynosi 1. Drugie sprawdzenie ustawia wartość roku na poprzedni rok, gdy wartość ostatniego tygodnia wynosi 52.

Aby wyświetlić posty z zeszłego tygodnia, wystarczy dodać <?php wpb_last_week_posts(); ?> do pliku szablonu motywu, w którym chcesz je wyświetlić. Lub jeśli chcesz mieć skrócony kod, aby móc dodać go do strony lub widżetu, po prostu dodaj tę linię poniżej podanego powyżej kodu.

add_shortcode('lastweek', 'wpb_last_week_posts');

Teraz możesz użyć tego krótkiego kodu w poście, stronie lub widżecie w następujący sposób:

[lastweek]

Pamiętaj, że nie zawsze potrzebujesz WP_Query do tworzenia niestandardowych zapytań. WordPress zawiera kilka funkcji, które pomogą Ci wyświetlić najnowsze posty, archiwum, komentarze itp. Jeśli istnieje łatwiejszy sposób na wykorzystanie istniejących funkcji, to tak naprawdę nie musisz pisać własnych zapytań.

Mamy nadzieję, że ten artykuł pomógł Ci wyświetlić posty z zeszłego tygodnia w WordPress. Eksperymentuj z kodem i modyfikuj go, aby spełnić 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 w niektóre z naszych linków, możemy otrzymać prowizję. Zobacz jak finansowany jest WPBeginner, dlaczego to ważne i jak możesz nas wesprzeć. Oto nasz proces redakcyjny.

Ostateczny zestaw narzędzi WordPress

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

Interakcje czytelników

8 CommentsLeave a Reply

  1. Jestem ciekawy, kiedy/dlaczego chciałbym wyświetlać posty z tygodnia? Na mojej stronie głównej wyświetlam fragmenty, więc posty z moich ostatnich 2 tygodni są widoczne. Czego mi tutaj brakuje? Dzięki!

    • Nie musisz. Ale właściciele innych stron internetowych mogą mieć układ, w którym chcą oddzielnie wyświetlać posty z poprzedniego tygodnia. Ten samouczek jest przeznaczony dla tych użytkowników.

      Admin

Zostaw odpowiedź

Dziękujemy za pozostawienie komentarza. Pamiętaj, że wszystkie komentarze są moderowane zgodnie z naszą polityką komentowania, a Twój adres e-mail NIE zostanie opublikowany. Prosimy NIE używać słów kluczowych w polu nazwy. Prowadźmy osobistą i znaczącą rozmowę.