Kiedy pomagamy użytkownikom w konfiguracji ich blogów WordPress, często pytają o dostosowanie układu, zwłaszcza o to, jak sprawić, by najnowszy post naprawdę się wyróżniał.
Czasami nie chcesz, aby najnowszy wpis po prostu zniknął w reszcie kanału bloga. Możesz mieć na myśli specjalny projekt lub potrzebować, aby pojawił się w zupełnie innym miejscu.
Właśnie dlatego wykluczenie najnowszego posta z pętli postów WordPress jest przydatne. Daje to elastyczność w wyświetlaniu tych najnowszych treści w dowolny sposób. W tym przewodniku pokażemy dwa sposoby wykluczenia najnowszego posta z pętli postów WordPress.

Dlaczego wykluczyć najnowszy post z pętli postów WordPress?
Domyślnie WordPress wyświetla Twoje posty na blogu odwiedzającym w odwrotnej kolejności chronologicznej, więc nowsze posty pojawiają się najpierw. Możesz jednak chcieć zmienić wygląd najnowszego posta na swojej niestandardowej stronie głównej lub stronie archiwum WordPress.
Wykluczając najnowszy post z pętli postów WordPress, możesz wyświetlić tę treść w innej lokalizacji, a nawet dodać własne niestandardowe style.
Mając to na uwadze, zobaczmy, jak możesz ukryć najnowszy wpis na blogu, wykluczając go z pętli wpisów WordPress. Po prostu użyj poniższych szybkich linków, aby przejść bezpośrednio do metody, której chcesz użyć:
- Metoda 1: Używanie wtyczki WPCode (zalecane)
- Metoda 2: Edycja plików motywu WordPress (bez wtyczki)
- Dowiedz się więcej wskazówek i sztuczek do zarządzania postami w WordPress
Metoda 1: Używanie wtyczki WPCode (zalecane)
Najprostszym sposobem na wykluczenie najnowszego wpisu z pętli wpisów jest dodanie kodu do Twojej strony WordPress.
Niektórzy przewodnicy zalecają ręczną edycję plików motywu, ale może to spowodować częste błędy WordPress i może nawet całkowicie zepsuć Twoją stronę internetową.
Z tego powodu zalecamy używanie WPCode. Jest to najlepszy wtyczka do fragmentów kodu, która ułatwia dodawanie niestandardowego kodu w WordPress bez narażania witryny na ryzyko.
Najpierw musisz zainstalować i aktywować darmową wtyczkę WPCode. Więcej informacji znajdziesz w naszym przewodniku krok po kroku jak zainstalować wtyczkę WordPress.
Po aktywacji wtyczki przejdź do Code Snippets » + Add Snippet.

Tutaj zobaczysz wszystkie gotowe fragmenty, które możesz dodać do swojej witryny. Obejmują one fragment, który pozwala całkowicie wyłączyć komentarze, typy plików do przesłania, których WordPress zazwyczaj nie obsługuje, wyłączyć strony załączników i wiele więcej.
Teraz możesz najechać kursorem myszy na opcję „Dodaj własny kod (nowy fragment)” i kliknąć przycisk „+ Dodaj fragment własny”, gdy się pojawi.

Następnie wybierz „Fragment PHP” jako typ kodu z listy opcji wyświetlanych na ekranie.

Na następnej stronie wpisz tytuł fragmentu kodu. Jest to tylko do Twojej wiadomości, więc możesz użyć czegokolwiek chcesz.

Po wykonaniu tego po prostu wklej poniższy kod w polu „Podgląd kodu”:
<?php
function wpsites_exclude_latest_post( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( 'offset', '1' );
}
}
add_action( 'pre_get_posts', 'wpsites_exclude_latest_post', 1 );
Po tym przewiń stronę w dół do sekcji „Wstawianie”.
Jeśli nie jest jeszcze zaznaczone, wybierz „Automatyczne wstawianie” i „Uruchom wszędzie”.

Na koniec przewiń do góry ekranu i kliknij suwak „Nieaktywny”, aby wyświetlił się „Aktywny”.
Następnie kliknij przycisk „Zapisz fragment” lub „Aktualizuj”, aby fragment kodu stał się aktywny.

Teraz, jeśli odwiedzisz swoją stronę internetową WordPress, najnowszy wpis na blogu będzie ukryty.
Metoda 2: Edycja plików motywu WordPress (bez wtyczki)
Uwagi: Ten samouczek będzie działać tylko z klasycznymi motywami WordPress, ponieważ motywy blokowe mają inny zestaw plików motywu. Jeśli używasz motywu blokowego, sugerujemy skorzystanie z pierwszej metody.
Zalecamy również wykonanie kopii zapasowej swojej witryny lub użycie środowiska stagingowego, aby zapobiec błędom podczas stosowania tej metody.
Innym sposobem na wykluczenie najnowszego wpisu z pętli wpisów WordPress jest dodanie kodu do plików motywu WordPress.
Osiąga to podobny rezultat do powyższego kodu, ale będziesz musiał dodać go bezpośrednio do pętli WordPress tam, gdzie chcesz, aby się wyświetlał.
Na przykład, jeśli chcesz zmienić pętlę postów na całej swojej stronie, musisz dodać kod do pliku index.php.
Pamiętaj tylko, że dodawanie kodu bezpośrednio do plików WordPress może potencjalnie powodować problemy z paginacją na Twoim blogu WordPress.
Najpierw musisz otworzyć menedżer plików swojego dostawcy hostingu WordPress lub połączyć swoją stronę z klientem FTP.
W tym samouczku użyjemy menedżera plików Bluehost, ponieważ proces jest znacznie łatwiejszy niż używanie FTP. Niemniej jednak kroki są mniej więcej takie same, niezależnie od tego, czy używasz FTP, czy innego hostingu internetowego.
Jeśli jesteś użytkownikiem Bluehost, zaloguj się do panelu swojego hostingu i przejdź do zakładki „Witryny”. Następnie kliknij „Ustawienia” na stronie internetowej, którą chcesz edytować.

Teraz przejdź do sekcji Szybkie linki.
Następnie kliknij przycisk „Menedżer plików”. Bluehost pokazuje również katalog główny Twojej witryny, jeśli go potrzebujesz.

Gdy już znajdziesz się w menedżerze plików, musisz zlokalizować plik, który chcesz edytować. Załóżmy, że chcesz dodać kod do pliku index.php, znajdziesz go w folderze bieżącego motywu, który znajduje się w public_html/wp-content.
Tam po prostu kliknij prawym przyciskiem myszy na plik index.php i wybierz „Edytuj”.

Teraz musisz skopiować poniższy kod i dodać go do swojej pętli WordPressa:
query_posts('posts_per_page=6&offset=1');
Ten kod mówi pętli, aby wyświetlała tylko 5 wpisów po ostatnim wpisie.
Będziesz musiał dodać kod bezpośrednio nad pętlą WordPress, aby wyglądał podobnie do poniższego fragmentu kodu:
<?php
query_posts('posts_per_page=6&offset=1');
if ( have_posts() ) {
// Load posts loop.
while ( have_posts() ) {
the_post();
get_template_part( 'template-parts/content/content', get_theme_mod( 'display_excerpt_or_full_post', 'excerpt' ) );
}
// Previous/next page navigation.
twenty_twenty_one_the_posts_navigation();
} else {
// If no content, include the "No posts found" template.
get_template_part( 'template-parts/content/content-none' );
}
Oto jak wygląda nasz kod w menedżerze plików Bluehost:

Po dodaniu kodu kliknij przycisk „Zapisz zmiany”.
Następnie przejdź do podglądu swojej witryny WordPress.
Dowiedz się więcej wskazówek i sztuczek do zarządzania postami w WordPress
Chcesz dalej optymalizować swojego bloga WordPress? Sprawdź te poradniki:
- Jak przekierować użytkowników do losowego posta w WordPress
- Jak wyświetlić powiązane posty w WordPress (krok po kroku)
- Jak łatwo zmienić kolejność postów w WordPress (krok po kroku)
- Jak zmienić liczbę postów wyświetlanych na stronie bloga WordPress
- Jak wyświetlić dowolną liczbę postów w pętli WordPress
- Jak masowo przenosić posty do kategorii i tagów w WordPress
Mamy nadzieję, że ten artykuł pomógł Ci dowiedzieć się, jak wykluczyć najnowszy post z pętli WordPress. Możesz również zapoznać się z naszym przewodnikiem na temat masowego dodawania postów i stron w WordPress oraz naszymi ekskluzywnymi wyborami najlepszych wtyczek do powiązanych postów dla WordPress.
Jeśli podobał Ci się ten artykuł, zasubskrybuj nasz kanał YouTube po samouczki wideo WordPress. Możesz nas również znaleźć na Twitterze i Facebooku.


George
Ten fragment kodu pomógł rozwiązać 90% problemów na moim blogu.
Wsparcie WPBeginner
Glad to hear our code was able to help
Admin
ghazali
Czy jest jakiś sposób, abym mógł usunąć tylko 3 najnowsze posty z strony głównej?
ivan logan
Jak usunąć wszystkie posty bez obrazków wyróżniających (miniaturki), mam 9000 do usunięcia!
Praveen
Dzięki, dobra robota, dobre rozwiązanie
Matt
Piękny post! Prosty, jasny i BARDZO pomocny. Wielkie dzięki!
Dimarj
BGH_
Hej chłopaki, dzięki za ten artykuł! Chcę to zaimplementować, ale za każdym razem, gdy próbuję, mam dziwny problem: wpisy wyglądają dokładnie jak strona główna, pokazując listę najnowszych postów zamiast samego posta. Mój kod jest nieco inny, ponieważ jest to SMTheme. Będę wdzięczny za wszelką pomoc. PS: Przepraszam za dwukrotne publikowanie, ale kod został wydrukowany nieprawidłowo. Oto on:
przestrzeń
Rozwiązanie działa dobrze, dzięki. ale paginacja zepsuła się po zastosowaniu tego kodu, próbowałem, ale nie udało mi się uzyskać poprawnej paginacji. Jakieś rozwiązanie dla paginacji? .
Rickie Anand
zastosuj klasę do li zgodnie z numerem strony i licznikiem & ustaw styl dla p1c1 na display:none;
Sabi Maharjan
Użyłem dwóch wtyczek. Jedna to „Recent facebook post”, aby wyświetlać najnowsze posty w WordPress, a „Facebook publish page”, aby publikować moje posty z WordPress na Facebooku. Teraz chcę wykluczyć najnowszy post z Facebooka, który został już opublikowany z moich postów WordPress.
Jak mogę to zrobić?
Wsparcie WPBeginner
W tym celu wtyczka publikująca treści z Twojej strony na Facebooku powinna sprawdzać, czy wpis został już opublikowany z WordPressa na Facebooka. Nie zalecamy użytkownikom bezpośredniej edycji plików wtyczek. Jednak jeśli czujesz się komfortowo z edycją plików php, możesz rozwidlić wtyczkę jako nową wtyczkę, a następnie dodać kod, aby to osiągnąć.
Admin
Pastor Wynn
Dzięki za świetną wskazówkę. Spędziłem godziny, próbując to rozgryźć, a ty sprawiłeś, że było to tak proste!
Gu-ens
Dzięki wielkie.
opcja ‘post__not_in’ nie działa w wordpress 3.5
Jim
Hmm, kiedy próbowałem użyć tego kodu w pętli strony kategorii, nie udało mi się zachować postów tylko dla tej kategorii, zamiast tego działał tak, jakby to była pętla strony głównej i wyświetlał wszystkie posty.
Amin
Dziękuję bardzo, człowieku! Bardzo pomogło!
Pozdrawiam!
Fernando
Wielkie dzięki!! Bardzo przydatna wskazówka!
GangeshMatta
Dzięki!
PabloCovarrubias
witaj, mam tylko jedno pytanie, kiedy to robię, paginacja przestaje działać, jak mogę to naprawić?
dzięki, poza tym działa idealnie!!
Dzięki!
przestrzeń
Yes, pagination not working. you have found any working solution for pagination, I am still searching ..
Kev Bowman
Czy znalazłeś rozwiązanie tego problemu?
de hams
paginacja nie działa na stronie indeksu, więc możemy sami wykonać wywołanie paginacji ajax i głównie query_posts() działa dla paginacji zamiast WP_Query()
Jon
Bardzo dziękuję za to! W ogóle nie mogłem tego rozgryźć, ale to zadziałało idealnie.
Wordpwess
Czy jest sposób, aby przesunąć post z jednej kategorii?
Np. chcę pokazać wszystkie posty oprócz NAJNOWSZEGO posta z kategorii x
Personel redakcyjny
Tak, możesz po prostu wybrać parametr category_in i dodać swoje ID kategorii.
Admin
Luka
Thanks mate, you save my day
Khurram
“query_posts(‘posts_per_page=6&offset=1’);” this is not worked for me , while i am using the WP-PageNavi plugin for page navigation.
Personel redakcyjny
jaki błąd otrzymujesz?
Admin
Ken
Thanks for the info. Worked well
Though, I’m encountering another issue for another site I’m currently doing. Is there a way to exclude from the loop only the latest post of a particular category?
Chodzi o to, że mam bloga, na którym publikuję podcasty. Strona główna wyróżnia najnowszy podcast – posty są publikowane w kategorii: Podcast – z własnym stylem. Jednocześnie strona główna wyświetla również 5 najnowszych postów, z których mogą być posty w kategorii „podcast”. Po prostu nie chcę wyświetlać w pętli najnowszego posta opublikowanego w kategorii „Podcast”, po prostu dlatego, że jest już wyróżniony własnym stylem. Mam nadzieję, że możesz mi pomóc. dzięki!
Personel redakcyjny
Możesz wykluczyć wszystkie posty z kategorii „postcast” ze swojej pętli, jeśli chcesz. Ale nie ma prostego sposobu na wykluczenie tylko najnowszego posta.
Admin
Joffrey
Dzięki za wskazówkę!
Ale zastanawiałem się, czy jest też sposób na wykluczenie posta, który jest aktualnie wyświetlany na ekranie.
Jeśli tak, czy możesz mi powiedzieć, jak to zrobić?
Z góry dziękuję!
Personel redakcyjny
Nie do końca rozumiem Twoje pytanie? O jaki ekran chodzi?
Admin
Joffrey
Jedna z moich stron wyświetla najpierw najnowszy lub bieżący post, który użytkownik przegląda.
Bieżący post jest wywoływany przez pętlę.
Poniżej tego wpisu chcę wyświetlić fragmenty innych poprzednich wpisów, bez wyświetlania bieżącego wpisu na tej liście.
Poprzednie fragmenty postów są wywoływane przez query_posts:
query(‘showposts=3&cat=5’);
while($previousPosts->have_posts()) : $previousPosts->the_post();
?>
Jak widać, wywołuję 3 posty (fragmenty) z kategorii 5, co wyświetla trzy posty z kategorii Wiadomości. Wydaje się to w porządku, ale wśród tych 3 fragmentów postów, aktualny post, który jest wywoływany przez pętlę, również znajduje się na tej liście.
Czy wiesz, jak wykluczyć aktualny post z tej listy?
Jeszcze raz dziękuję!
Personel redakcyjny
Możesz dodać offset=1 do zapytania, aby pominąć pierwszy post.
Joffrey
Dziękuję jeszcze raz za szybką odpowiedź!
Jednakże, próbowałem użyć offset=1 w zapytaniu, ale kiedy klikniesz na starszy post, widzisz go w głównym cyklu, a na liście fragmentów najnowszy post jest wykluczony, ale starszy post, który jest teraz bieżącym postem, nadal znajduje się na liście fragmentów.
Czy jest jakiś pomysł, jak wykluczyć nie najnowszy, ale bieżący post?
Thanks so far already
Personel redakcyjny
Wyślij nam na e-mail aktywny link do strony, abyśmy mogli zobaczyć, co dokładnie się dzieje. Użyj formularza kontaktowego do wysyłania e-maili.
Bilal Ahmed
Thank you so much for this piece as i was looking for a way to exclude 4 latest posts form my home page and i got answer by this articles and i have replaced (query_posts(‘posts_per_page=6&offset=1’);) by query_posts(‘posts_per_page=6&offset=3’); and its done
Jeremy
Gdzie dokładnie umieścić ten kod, aby usunąć wszystkie posty oprócz przypiętych na stronie głównej.
Dzięki,
Personel redakcyjny
Jest to proces wieloetapowy. Najpierw musiałbyś mieć niestandardowy szablon strony. Następnie musiałbyś utworzyć tę niestandardową stronę, która byłaby Twoją stroną główną. Potem uruchomiłbyś zapytanie w tym niestandardowym szablonie, pokazując tylko posty przypięte.
Admin
dominik
Dziękuję, to było dokładnie to, czego szukałem! Dzięki za wszelkie inne wskazówki.
Poranna kopia
Dzięki za to. Fajne rozwiązanie dla układów w stylu magazynu.