Prawdopodobnie znasz widżet kategorii w WordPress. Ostatnio jeden z naszych czytelników zapytał nas, czy możliwe jest również wyświetlanie najnowszych wpisów w menu rozwijanym. W tym artykule pokażemy, jak wyświetlać najnowsze wpisy jako menu rozwijane w WordPress.

Dlaczego i kto potrzebuje ostatnich postów w formie listy rozwijanej?
WordPress posiada wbudowany widżet ostatnich postów, który możesz dodać do dowolnego paska bocznego lub obszaru gotowego na widżety.
Ten widżet po prostu wyświetla listę ostatnich postów, a Ty możesz wybrać liczbę postów, które chcesz pokazać. Ale jeśli chcesz pokazać więcej niż 5-10 postów, lista zajmie dużo miejsca w Twoim pasku bocznym.
Niektórzy użytkownicy WordPress mogą potrzebować kompaktowego sposobu wyświetlania ostatnich postów. W takim przypadku użycie list rozwijanych lub zwijanych może pomóc zaoszczędzić miejsce.
Przyjrzyjmy się kilku różnym sposobom wyświetlania ostatnich postów jako menu rozwijanego w WordPressie.
Wyświetlanie najnowszych wpisów WordPress w prostym menu rozwijanym (kod ręczny)
Ta metoda wykorzystuje wbudowaną funkcję wp_get_recent_posts. Wszystko, co musisz zrobić, to skopiować i wkleić poniższy kod do pliku functions.php swojego motywu lub do wtyczki specyficznej dla strony.
function wpb_recentposts_dropdown() {
$string .= '<select id="rpdropdown">
<option value="" selected>Select a Post</option>';
$args = array( 'numberposts' => '5', 'post_status' => 'publish' );
$recent_posts = wp_get_recent_posts($args);
foreach( $recent_posts as $recent ){
$string .= '<option value="' . get_permalink($recent["ID"]) . '">' . $recent["post_title"].'</option> ';
}
$string .= '</select>
<script type="text/javascript"> var urlmenu = document.getElementById( "rpdropdown" ); urlmenu.onchange = function() {
window.open( this.options[ this.selectedIndex ].value, "_self" );
};
</script>';
return $string;
}
add_shortcode('rp_dropdown', 'wpb_recentposts_dropdown');
add_filter('widget_text','do_shortcode');
Teraz możesz użyć shortcode [rp_dropdown] w swoich postach, stronach i widżetach tekstowych WordPress. Będzie wyglądać tak:

Dodawanie zwijanych ostatnich postów za pomocą wtyczki
Powyższa metoda po prostu wyświetla Twoje ostatnie posty w formie listy rozwijanej. Innym sposobem na zaoszczędzenie miejsca jest dodanie zwijanej listy ostatnich postów, która rozwija się po kliknięciu przez użytkowników.
Pierwszą rzeczą, którą musisz zrobić, jest zainstalowanie i aktywowanie wtyczki Collapse-O-Matic. Działa od razu i nie ma żadnych ustawień do skonfigurowania.
Wtyczka po prostu pozwala na wyświetlanie czegokolwiek w zwijanym menu za pomocą skróconego kodu.
Zanim użyjemy tej wtyczki, potrzebujemy sposobu na łatwe wyświetlanie ostatnich postów w dowolnym miejscu. Po prostu dodaj ten kod do pliku functions.php swojego motywu lub do wtyczki specyficznej dla witryny.
function wpb_recentposts() {
$string .= '<ul>';
$args = array( 'numberposts' => '5', 'post_status' => 'publish' );
$recent_posts = wp_get_recent_posts($args);
foreach( $recent_posts as $recent ){
$string .= '<li><a href="' . get_permalink($recent["ID"]) . '">' . $recent["post_title"].'</a></li> ';
}
$string .= '</ul>';
return $string;
}
add_shortcode('recentposts', 'wpb_recentposts');
add_filter('widget_text','do_shortcode');
Ten kod po prostu pozwala wyświetlić listę ostatnich postów za pomocą krótkiego kodu [recentposts].
Teraz dodamy nasz skrócony kod do skróconego kodu Collapse-O-Matic, aby utworzyć zwijaną listę ostatnich postów.
Po prostu dodaj skrócony kod w ten sposób:
[expand title="Ostatnie posty"][recentposts][/expand]
Możesz dodać ten skrócony kod do widżetu tekstowego, postów lub stron w swojej witrynie WordPress. Tak to wyglądało na naszej stronie testowej.

To wszystko, mamy nadzieję, że ten artykuł pomógł Ci wyświetlić ostatnie posty jako listę rozwijaną w WordPressie. Możesz również zapoznać się z tymi 6 wskazówkami dotyczącymi tworzenia zabójczego kalendarza redakcyjnego w WordPressie.
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.


Mauro Vicariotto
Drogi autorze, pojawił się błąd literowy w linii 2 Twojej funkcji wpb_recentposts_dropdown(): powinno być " $string = … " zamiast " $string .= … ".
Wsparcie WPBeginner
.= i = mają nieco inne zastosowania. W tym przypadku nie jest to literówka.
Admin
Yvonne Manders
Popełniłem błąd i rozwiązałem go.
Wsparcie WPBeginner
Glad you were able to solve the issue
Admin
Yvonne Manders
Cześć,
Zainstalowałem collapse-o-mattic i wkleiłem kod do pliku functions.php.
Następnie wkleiłem skrócony kod [expand title=”Recent Posts”][recentposts][/expand] do widżetu tekstowego, ale nic się nie stało.
Czy czegoś mi brakuje?
Z poważaniem, Yvonne
Wsparcie WPBeginner
Chciałbyś umieścić skrócony kod w edytorze tekstu, a nie w edytorze wizualnym, aby upewnić się, że żadne style nie blokują działania skróconego kodu.
Admin
Erika
W linii 3 jest błąd. Brakuje zamykającego znaku „/” w tagu opcji. Powoduje to utworzenie pustej opcji w menu.
Wsparcie WPBeginner
Thank you for letting us know, the code should be fixed now
Admin
Amjad
Cześć. Użyłem powyższego kodu, aby wyświetlić wszystkie moje posty w rozwijanej liście, ale nie są one posortowane. Mam tu dwa pytania: 1. Jak mogę posortować posty według tytułu? 2. Jak mogę wyświetlić posty z określonej kategorii w rozwijanej liście zamiast wszystkich postów?
Wsparcie WPBeginner
Biorąc pod uwagę to, czego szukasz, powinieneś zapoznać się z naszym innym poradnikiem tutaj: https://www.wpbeginner.com/plugins/how-to-let-users-filter-posts-and-pages-in-wordpress/
Admin
Rolando
Świetny artykuł! Jak można to zrobić dla konkretnej kategorii, a nie tylko dla wszystkich Twoich kategorii? Czy można to zrobić alfabetycznie?
Farai Mugaviri
Dziękuję bardzo za pomoc. Chciałbym również wyświetlać kategorie w liście rozwijanej, jeśli możesz mi w tym pomóc... Ale co jeśli zaktualizuję swojego WordPressa, czy to w ogóle możliwe? Gdzieś czytałem o wyzwaniach związanych z aktualizacją WordPressa i ryzykiem utraty danych z powodu zakodowania funkcji PHP
Robert
Świetne narzędzie, dzięki!
Czy jest możliwość posortowania wyników postów na liście w kolejności alfabetycznej?
Z góry dziękuję za odpowiedź!
Pozdrawiam,
Robert
Andre
Czy można wyświetlić rozwijane menu postów z przyciskiem do wysłania?
‘function wpb_recentposts_dropdown() {
$string .= ‘
Wybierz swoją szkołę’;
$args = array( ‘numberposts’ => ‘5’, ‘post_status’ => ‘publish’ );
$recent_posts = wp_get_recent_posts($args);
foreach( $recent_posts as $recent ){
$string .= ” . $recent[“post_title”].’ ‘;
}
$string .= ‘
ZNAJDŹ SZKOŁĘ TERAZ
var urlmenu = document.getElementById( “submitschool” ); urlmenu.onclick = function() {
window.open( this.options[ this.selectedIndex ].value, “_self” );
};
‘;
return $string;
}
add_shortcode(‘rp_dropdown’, ‘wpb_recentposts_dropdown’);
add_filter(‘widget_text’,’do_shortcode’);’
Emily Johns
Bardzo fajna sprawa!! Świetna lektura i łatwa do zrozumienia.
NG SHAIKH
To doskonały artykuł. Początkujący tacy jak ja mogą dzięki takim artykułom zrozumieć moc WordPressa i jego wtyczek.
Byłbym wdzięczny, gdyby napisano artykuły o wyświetlaniu wiadomości na określonej stronie, a nie na wszystkich postach i stronach.
Pomoże to również początkującym, jeśli kilka artykułów zostanie napisanych w celu wyświetlenia formularza do wprowadzania danych przez użytkownika, który można zapisać w bazie danych
Julie S
Bardzo podoba mi się menu rozwijane z najnowszymi wpisami. Jak mogę kontrolować szerokość tego menu rozwijanego? Domyślnie jest ono zbyt długie dla mojego paska bocznego.
Wsparcie WPBeginner
Spróbuj dostosować szerokość za pomocą CSS:
select#rp_dropdown { width:200px; }1-click Use in WordPress
Admin