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 sortować posty według daty wygaśnięcia posta w WordPress

W przeszłości udostępnialiśmy jak wygasić posty w WordPress za pomocą Wtyczki Post Expirator. Tworząc stronę z listą wydarzeń, uznaliśmy tę wtyczkę za bardzo pomocną. Możemy łatwo usuwać wygasłe wpisy wydarzeń. Po drugie, dzięki tej wtyczce naprawdę łatwo jest sortować posty według daty wygaśnięcia posta. W tym artykule pokażemy, jak sortować posty według daty wygaśnięcia posta w WordPress.

Kod zaktualizowany, aby odzwierciedlić zmiany we wtyczce, gdzie zmieniono nazwę pola niestandardowego. Dziękujemy Tajim za informację w komentarzach.

W naszym konkretnym projekcie mieliśmy Wydarzenia jako niestandardowy typ posta. Teraz jest to dla organizacji non-profit, która organizuje jedno wydarzenie miesięcznie, więc po prostu stworzyliśmy pętlę, aby umieścić je na stronie wydarzeń. Możesz użyć kodu w swoim pasku bocznym lub w dowolnym innym miejscu.

<?php
$args = array( 'post_type' => 'event', 'posts_per_page' => 15, 'order' => 'ASC', 'meta_key' => '_expiration-date', 'orderby' => 'meta_value' );
$eventloop = new WP_Query( $args );
if ( $eventloop->have_posts() ) : while ( $eventloop->have_posts() ) : $eventloop->the_post();

//All the Loop Content Goes Here

endwhile;
endif;
?>

Sztuczka polega na wykorzystaniu meta_key, a następnie user oderby meta_value. Ustawienie tego w kolejności rosnącej pokazuje nadchodzące wydarzenie (kończące się najszybciej). Przykład naszej listy wydarzeń:

Sortuj posty według daty wygaśnięcia posta (przykład wydarzenia)

Uwaga, aby to zadziałało, MUSISZ użyć Wtyczki Post Expirator.

Jeśli masz jakieś pytania, śmiało pytaj w komentarzach poniżej.

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

24 CommentsLeave a Reply

  1. Cześć, próbuję sprawić, by to działało na moich produktach WooCommerce, które muszą być przekształcone w kursy zewnętrzne, które wygasają w określonym terminie. Naprawdę muszę je sortować według daty wygaśnięcia, nie jestem pewien, co robię źle. Dzięki

  2. Czy jest możliwe wyświetlanie postów, które kończą się do następnego dnia lub następnego tygodnia, miesiąca i tak dalej.
    Chcę stworzyć stronę, która pokazuje wszystkie posty, które kończą się następnego dnia. i jedną, która pokazuje wszystkie posty, które kończą się w przyszłym tygodniu.

    Jakieś sugestie?

  3. Próbowałem sprawić, by ten kod działał z motywem potomnym Genesis Pro. Utworzyłem kilka postów z przyszłymi datami. Dodałem ten kod do pasków bocznych za pomocą kodów krótkich i próbowałem w pliku functions.php. Nie używam żadnych niestandardowych pól ani nie dodaję informacji.

    Będę wdzięczny za wszelkie pomysły

  4. Nie udało mi się tego uruchomić. Opublikowałem to w pasku bocznym, function.php i jako kody krótkie. Będę wdzięczny za wszelką pomoc.

  5. Nie udało mi się sprawić, by to działało z motywem potomnym Genesis Pro. Dodałem to do ostatnich linii pliku function.php. Dodałem również wartości meta. Nie jestem pewien, dlaczego nie jest publikowane w kolejności ASC według daty wygaśnięcia.

    z góry dziękuję

  6. Posty takie jak ten sprawiają, że kocham internet (i blogi takie jak Twój). To jest dokładnie to, czego szukałem i nie mogło być przedstawione prościej. Dzięki!

  7. Chciałem tylko powiedzieć, że w obecnej wersji tego wtyczki nazwa pola niestandardowego zmieniła się z
    expiration-date na _expiration-date.

    Pole niestandardowe jest ukryte. Zaktualizuj więc powyższy kod.

    Pozdrawiam
    Tajim

  8. Dzięki za świetny post.

    Gdybym chciał wyświetlić datę wygaśnięcia posta w pętli, jakiego kodu mógłbym użyć?

      • Zmieniłem to na „_expiration-date” i otrzymuję dane, ale jak można by to ponownie posortować do poprawnego wyświetlania daty? Moja data to 1 marca 2015, a to, co jest wyświetlane, to „1425254340”.

        Dzięki,

  9. Więc dla całkowitego początkującego, gdzie umieściłbym ten kod, aby sortował według daty wygaśnięcia?

      • Jeśli to nie jest dla początkujących, dlaczego opublikowałeś to na wpbeginner.com? Ja również mam trudności z wstawieniem tego na mój blog i chciałbym zobaczyć odpowiedź na pytanie KITSTS.

        • W WPBeginner dzielimy początkujących na różne poziomy. Początkujący bloger, znany również jako całkowicie początkujący (dopiero zaczyna blogować, nie wie, czym jest RSS, FTP itp.). Początkujący projektant motywów (zna HTML+CSS, ale nie ma pojęcia, jak tworzyć motywy w WordPress). Początkujący programista wtyczek (zna ogólną koncepcję programowania, ale nie specyficzne dla WordPressa).

          Powodem, dla którego nie możemy odpowiedzieć na pytanie KITST, jest to, że nie można na nie odpowiedzieć przy podanych informacjach. Kod udostępniony w artykule to standardowa pętla WordPress. Miejsce, w którym go wkleisz w swoim motywie, będzie się różnić w zależności od Twoich potrzeb, a także od typu używanego motywu.

          Jeśli używasz motywu potomnego, to najprawdopodobniej ten kod trafi do Twojego pliku functions.php, dzięki czemu możesz go podłączyć do funkcji dostarczanej przez framework motywu.

          Jeśli używasz innego motywu WordPress, kod może trafić do różnych plików szablonów (index.php, sidebar.php, archive.php, archive-{posttype}.php, footer.php, header.php itp.). Każdy motyw jest inaczej zorganizowany, co uniemożliwia nam podanie dokładnej lokalizacji, w której należy wkleić ten kod.

          Należy również pamiętać, że pętla, którą udostępniliśmy powyżej, pochodzi z przykładowej pracy, którą stworzyliśmy przy użyciu niestandardowego typu posta o nazwie wydarzenia. Możesz nie chcieć używać jej dla niestandardowego typu posta wydarzenia. Być może chcesz użyć jej dla innego typu posta o nazwie oferty.

          Ten artykuł był przeznaczony dla początkujących projektantów motywów i/lub początkujących programistów, którzy szukają łatwego sposobu na zrobienie tego.

  10. Zastanawiałem się, jakiego pluginu użyto do wyświetlania nadchodzących wydarzeń w powyższym przykładzie?
    Dziękuję za wspaniały artykuł...

    • To nie była wtyczka. To było po prostu niestandardowe stylowanie wyświetlania niestandardowego typu posta przy użyciu kodu pętli, który udostępniliśmy w tym artykule.

      Admin

      • Ahhh..ok, czy możesz podać przykład dla „Cała zawartość pętli idzie tutaj”? Aktualizuję stronę internetową organizacji pozarządowej i spodobał mi się ten sposób wyświetlania wydarzeń. Jak mogłeś zauważyć, jestem początkujący, więc naprawdę doceniłbym Twoją pomoc ;o)….

        • Pętla kodu zasadniczo jest tagiem php the_title(); do wyświetlania tytułu. Inne pole niestandardowe do wyświetlania daty. Pętla jest tutaj całkiem dobrze wyjaśniona:

          http://codex.wordpress.org/The_Loop

          Użyliśmy stylizacji (div/obrazy/css), aby tak wyglądało. Ten post dotyczy sortowania postów według daty wygaśnięcia, a artykuł właśnie to pokazuje. Przykładem jest coś, co zrobiliśmy dla naszego klienta, więc niestety nie możemy udostępnić obrazów/stylizacji, za które zapłacili. Wyślij nam e-mail, jeśli jesteś zainteresowany tym, abyśmy zrobili to dla Ciebie. Mamy specjalne stawki dla organizacji non-profit.

  11. To fajna funkcja.  Istnieje kilka sytuacji, w których właśnie to jest potrzebne.
     
     
    P.S.
    Ta strona ma jeden z moich ulubionych projektów.  #IBCT polega na znalezieniu najlepszego blogera na świecie. Twoja strona dotarła do półfinału.

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