Zaufane samouczki WordPress, kiedy ich najbardziej potrzebujesz.
Przewodnik dla początkujących po WordPressie
Puchar WPB
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 zawiera wbudowany widżet najnowszych wpisów widget, który można 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. Wystarczy skopiować i wkleić poniższy kod do pliku functions.php motywu lub do wtyczki specyficznej dla witryny.

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 wpisach, 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.

Najpierw musisz zainstalować i aktywować wtyczkę Collapse-O-Matic. Działa od razu po instalacji i nie wymaga żadnych ustawień.

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 najnowszych wpisów w dowolnym miejscu. Po prostu dodaj ten kod do pliku functions.php 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ć najnowsze wpisy jako rozwijaną listę w WordPress. Możesz również zapoznać się z tymi 6 wskazówkami dotyczącymi tworzenia doskonałego kalendarza redakcyjnego w 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.

Ujawnienie: Nasze treści są wspierane przez czytelników. Oznacza to, że jeśli klikniesz 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.

      Administrator

  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.

Leave A Reply

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. Proszę NIE używaj słów kluczowych w polu nazwy. Prowadźmy osobistą i znaczącą rozmowę.