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ć najnowsze posty jako rozwijane menu w WordPress

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.

Dodaj ostatnie posty jako menu rozwijane

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:

Najnowsze wpisy w menu rozwijanym na stronie WordPress

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.

Zwijana lista ostatnich postów

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.

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

18 CommentsLeave a Reply

  1. Drogi autorze, pojawił się błąd literowy w linii 2 Twojej funkcji wpb_recentposts_dropdown(): powinno być " $string = … " zamiast " $string .= … ".

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

    • 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

  3. W linii 3 jest błąd. Brakuje zamykającego znaku „/” w tagu opcji. Powoduje to utworzenie pustej opcji w menu.

  4. 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?

  5. Świetny artykuł! Jak można to zrobić dla konkretnej kategorii, a nie tylko dla wszystkich Twoich kategorii? Czy można to zrobić alfabetycznie?

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

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

  8. 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’);’

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

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

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