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ń:

Uwaga, aby to zadziałało, MUSISZ użyć Wtyczki Post Expirator.
Jeśli masz jakieś pytania, śmiało pytaj w komentarzach poniżej.


Francis Waller
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
dtp
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?
James Parkin
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
James
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.
James
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ę
JP
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!
Dan
Dokładnie tego szukałem – dzięki!
Tajim
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
AMBA JUNIOR
Dzięki za to. Zastanawiałem się, jak dodałeś obrazy dat do postów.
Personel redakcyjny
Wyciągnęliśmy metainformacje, które ten plugin przechowuje w niestandardowych polach posta. Następnie je ostylowaliśmy. Był to obraz tła CSS i nakładka tekstowa.
Admin
Amba Junior
Dziękuję za opinię. Czy mógłbyś podać mi przykładowy kod na ten temat? Z góry dziękuję.
Personel redakcyjny
Niestety, nie oferujemy tego w ramach naszej bezpłatnej usługi. Jesteś mile widziany, aby nas zatrudnić do napisania niestandardowego fragmentu kodu dla Ciebie.
Steve Combes
Dzięki za świetny post.
Gdybym chciał wyświetlić datę wygaśnięcia posta w pętli, jakiego kodu mógłbym użyć?
Personel redakcyjny
Musiałbyś użyć funkcji get_post_meta i wywołać klucz metadanych „expiration-date”.
Przykładem byłoby coś takiego:
1-click Use in WordPress
Admin
Adam
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,
Kitsts
Więc dla całkowitego początkującego, gdzie umieściłbym ten kod, aby sortował według daty wygaśnięcia?
Personel redakcyjny
Ten artykuł nie jest dla początkujących. Ponieważ musisz mieć dobre pojęcie o tym, jak działają motywy WordPress, aby ten kod działał z Twoim konkretnym motywem.
Admin
CuriousObserver
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.
Personel redakcyjny
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.
G J
Zastanawiałem się, jakiego pluginu użyto do wyświetlania nadchodzących wydarzeń w powyższym przykładzie?
Dziękuję za wspaniały artykuł...
Personel redakcyjny
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
G J
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)….
Personel redakcyjny
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.
Jacko
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.