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 przypięte wpisy w WordPressie

WordPress ma bardzo fajną funkcję zwaną przypięte posty. Pomyśl o przypiętych postach jako o wyróżnionych postach na Twoim blogu. Kiedy oznaczysz post jako przypięty, pojawi się on nad Twoimi nowymi postami, ale tylko jeśli Twój motyw na to pozwala. W tym poradniku pokażemy Ci, jak wyświetlać najnowsze przypięte posty w WordPressie.

Demo najnowszych wyróżnionych postów

Uwaga: Jest to samouczek na poziomie średniozaawansowanym i wymaga podstawowej wiedzy o HTML/CSS oraz znajomości motywów WordPress.

Samouczek wideo

Subskrybuj WPBeginner

Jeśli nie podobał Ci się film lub potrzebujesz więcej instrukcji, czytaj dalej.

Pierwszą rzeczą, którą musisz zrobić, jest skopiowanie i wklejenie tego fragmentu kodu do pliku functions.php Twojego motywu lub do dedykowanego wtyczki.

function wpb_latest_sticky() { 

/* Get all sticky posts */
$sticky = get_option( 'sticky_posts' );

/* Sort the stickies with the newest ones at the top */
rsort( $sticky );

/* Get the 5 newest stickies (change 5 for a different number) */
$sticky = array_slice( $sticky, 0, 5 );

/* Query sticky posts */
$the_query = new WP_Query( array( 'post__in' => $sticky, 'ignore_sticky_posts' => 1 ) );
// The Loop
if ( $the_query->have_posts() ) {
	$return .= '<ul>';
	while ( $the_query->have_posts() ) {
		$the_query->the_post();
		$return .= '<li><a href="' .get_permalink(). '" title="'  . get_the_title() . '">' . get_the_title() . '</a><br />' . get_the_excerpt(). '</li>';
		
	}
	$return .= '</ul>';
	
} else {
	// no posts found
}
/* Restore original Post Data */
wp_reset_postdata();

return $return; 

} 
add_shortcode('latest_stickies', 'wpb_latest_sticky');

Powyższy kod przeszukuje bazę danych WordPress, aby pobrać 5 najnowszych wyróżnionych postów. Następnie wyświetla tytuł każdego wyróżnionego posta z linkiem w formacie listy. Zawinęliśmy to wszystko w funkcję i stworzyliśmy shortcode.

Teraz, aby wyświetlić swoje najnowsze przypięte posty, możesz użyć krótkiego kodu [latest_stickies] w dowolnym poście, stronie, a nawet widżecie tekstowym WordPressa.

Jeśli chcesz używać shortcode'ów w widżecie tekstowym, musisz dodać tę dodatkową linię kodu do pliku functions.php swojego motywu lub wtyczki specyficznej dla witryny.

add_filter('widget_text', 'do_shortcode');

Ten fragment kodu i funkcja mogą być z powodzeniem wykorzystane w suwaku polecanych elementów lub w każdej innej zaawansowanej funkcji, którą chciałbyś wyświetlić na swojej stronie. Ten fragment jest głównie przeznaczony dla strony WordPress z niestandardową stroną główną lub wyglądem w stylu magazynu.

To wszystko, mamy nadzieję, że ten artykuł pomógł Ci wyświetlić najnowsze przypięte posty na Twoim blogu WordPress. Możesz również zapoznać się z naszym poradnikiem, jak dodać datę wygaśnięcia do przypiętych postów w WordPress.

Jeśli podobał Ci się ten artykuł, zasubskrybuj nasz kanał YouTube z samouczkami wideo dotyczącymi WordPressa. Możesz nas również znaleźć na Twitterze i Google+.

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

8 CommentsLeave a Reply

  1. bardzo pouczające wysiłki z Twojej strony, ten kod działa doskonale,
    Mam pytanie, mam wiele kategorii i podkategorii, więc chcę po prostu zrobić przypięty post dla każdej kategorii osobno, i wyświetlić go na stronie listy kategorii, gdzie wymienione są wszystkie posty z danej kategorii, np. (Kategoria Sport -> jeden przypięty post – Kategoria przepisy kulinarne -> jeden przypięty post) itp.

  2. Dzięki za naprowadzenie mnie na właściwy trop!!
    Kod świetnie działa w wyświetlaniu tytułu w miejscu wklejenia skróconego kodu.

    Jednak próbowałem znaleźć metodę wyświetlania całego posta (całej treści, zamiast tylko tytułu lub nawet fragmentu) na konkretnej stronie.

    Zdecydowałem się pobawić Twoim kodem powyżej, aby spróbować to osiągnąć i w końcu mi się udało…
    Chociaż tytuł wyświetla się w tym samym rozmiarze co tekst akapitu, jestem pewien, że mogę to naprawić.

    Here’s what I changed…please let me know if you think there’s something I should reconsider lest the whole world explodes ;)

    Po prostu zmieniłem tekst `get_the_excerpt()` na `get_content()` i to skutecznie pobrało cały wpis na blogu na tę stronę.
    Aby usunąć wcięcia punktowane, usunąłem tagi " " " ", ale musiałem zostawić apostrofy, w przeciwnym razie strona by się nie załadowała.
    Więc w istocie, tam gdzie wcześniej było " lub ", teraz jest tylko " i tak dalej.

    To wszystko, co zmieniłem i działa dla mnie jak marzenie...
    Zauważyłem 2 problemy:
    1: Czasami ładuje większość wpisu, ale nie zawsze do samego końca, zwłaszcza jeśli wpis zostanie później edytowany... Czy ktoś ma sugestie, jak temu zapobiec?
    2: Chciałbym, żeby pojawił się również obraz wyróżniający, to uczyniłoby to ostatecznym elastycznym rozwiązaniem! Jakieś przemyślenia na ten temat?

    Jeszcze raz dziękuję za radę!

    Mam nadzieję, że to, co wyjaśniłem, ma sens dla każdego, kto chce osiągnąć to samo, co ja.

  3. Cześć

    Dziękuję za Twój kod. Mam jednak pewien problem i napotykam 2 trudności.

    Chcę wyświetlić tylko jeden wyróżniony post na mojej stronie głównej i tylko film z YouTube znajdujący się w treści.

    Właściwie wyświetlam tytuł i całą zawartość posta (w tym teksty, zdjęcia i filmy).
    Drugi problem polega na tym, że YouTube jest wyświetlany jako link, a nie osadzony bezpośrednio na mojej stronie głównej.

    Dziękuję za pomoc

  4. Cześć,

    Przetestowałem z kodem, działa dobrze, gdy co najmniej 1 post został przypisany jako wyróżniony, w przeciwnym razie, gdy żaden post nie jest przypisany jako wyróżniony, wyświetli wszystkie ostatnie 5 postów.

    Tak byłby warunek wyświetlania tylko wyróżnionych postów, jeśli nie ma przypisanych wyróżnionych postów, wtedy nic nie powinno być wyświetlane.

    Z góry dziękuję

  5. „caller_get_posts” został zastąpiony przez „ignore_sticky_posts” od wersji 3.1, więc uważam, że ważne jest, aby zmienić kod, aby to odzwierciedlić.
    Ponadto, a) $post->ID nie jest potrzebne w tym przypadku get_permalink(), ponieważ ustawiłeś dane posta, wywołując $the_query->the_post(), a jeśli z jakiegokolwiek powodu nadal chcesz uwzględnić $post->ID, powinieneś globalizować, tj. global $post;

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