Quando hai un sito web, probabilmente hai alcuni post più importanti di altri. Un modo per assicurarti che i tuoi visitatori vedano prima questi post è posizionarli in cima a una pagina.
La funzionalità dei post in evidenza di WordPress ti consente di farlo con i post standard. Ma se utilizzi tipi di post personalizzati sul tuo sito web, questi post in evidenza non appariranno in cima alla pagina come potresti aspettarti.
In questo articolo, ti mostreremo come aggiungere la funzionalità dei post in evidenza ai tuoi tipi di post personalizzati e visualizzarli nelle pagine di archivio dei tipi di post personalizzati.

Perché rendere i post personalizzati di WordPress in evidenza?
Se crei contenuti per il tuo sito web WordPress con un formato diverso da un post o una pagina standard, allora stai probabilmente già utilizzando un tipo di post personalizzato. Ad esempio, se gestisci un sito di recensioni di libri, potresti aver creato un tipo di post Recensioni Libri.
Potresti voler posizionare i tuoi contenuti più importanti in cima all'archivio del tipo di post personalizzato. È uno dei modi migliori per mettere in risalto contenuti approfonditi e sensibili al tempo, nonché i tuoi post personalizzati più popolari.
Ma mentre WordPress offre una funzionalità per i post in evidenza, questa non è disponibile per i tipi di post personalizzati.
Diamo un'occhiata a come aggiungere una funzionalità in evidenza alle tue pagine di archivio dei tipi di post personalizzati.
Aggiungere post in evidenza nei tipi di post personalizzati
Innanzitutto, dovrai installare e attivare il plugin Sticky Posts – Switch. Per maggiori dettagli, consulta la nostra guida passo passo su come installare un plugin di WordPress.
Nota: Sebbene questo plugin non sia stato aggiornato da tempo, nei nostri test funziona ancora bene. Potresti voler leggere il nostro articolo su se utilizzare plugin non testati con la tua versione di WordPress.
Dopo l'attivazione, devi visitare la pagina Impostazioni » Sticky Posts – Switch per configurare il plugin. Seleziona semplicemente la casella accanto ai tipi di post personalizzati che desideri poter rendere sticky.
Per questo tutorial, selezioneremo il tipo di post 'Recensioni di libri'.

Dopodiché, devi fare clic sul pulsante 'Salva modifiche' in fondo alla schermata.
Ora, quando visiti la pagina di amministrazione per quel tipo di post personalizzato, noterai una nuova colonna dove puoi rendere sticky i post. Tutto quello che devi fare è fare clic sulla stella accanto ai post che desideri mettere in evidenza.

Hai reso sticky il post. Il problema è che WordPress mostra i post sticky solo nella home page. Successivamente, vedremo come visualizzare i post sticky nelle pagine di archivio.
Visualizzare i post sticky negli archivi dei tipi di post personalizzati
Per visualizzare i tuoi post sticky in cima alla pagina di archivio dei tuoi post personalizzati, devi creare un nuovo template.
Per fare ciò, dovrai utilizzare un client FTP o l'opzione del file manager nel pannello di controllo del tuo hosting WordPress. Se non hai mai usato l'FTP prima, potresti voler consultare la nostra guida su come usare l'FTP per caricare file su WordPress.
Devi accedere al tuo sito utilizzando il tuo client FTP o il file manager e quindi andare alla cartella /wp-content/themes/ILTUOTEMA/.
Ad esempio, se utilizzi il tema Twenty Twenty-One, dovrai navigare in /wp-content/themes/twentytwentyone/.
Successivamente, dovrai creare un nuovo file in quella cartella con un nome come archive-TIPODIPOST.php.
Ad esempio, se lo slug del tuo tipo di post personalizzato è 'recensionilibri', dovresti creare un nuovo file chiamato archive-recensionilibri.php.

Dopo di che, dovrai trovare il file archive.php nella stessa cartella. Copia semplicemente il contenuto di archive.php e incollalo nel nuovo file che hai creato.
Il passaggio successivo richiede di aggiungere codice ai file del tuo tema. Se hai bisogno di aiuto per aggiungere codice al tuo sito, consulta la nostra guida su come aggiungere codice personalizzato in WordPress.
Quando sei pronto, devi aggiungere il seguente codice al file functions.php del tuo tema o a un plugin per snippet di codice come WPCode (consigliato):
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');
Questo codice sposta i tuoi post in evidenza in cima. Se il tuo tema utilizza la funzione post_class(), aggiunge anche una classe 'sticky' in modo da poter stilizzare i tuoi post in evidenza usando CSS.
Questo è l'aspetto dell'archivio del tipo di post personalizzato Recensioni di libri sul nostro sito demo. Prima di aggiungere il codice, il post in evidenza era il secondo nell'elenco.

Ora puoi stilizzare i tuoi post in evidenza utilizzando la classe .sticky nel foglio di stile style.css del tuo tema. Ecco un esempio:
.sticky {
background-color:#ededed;
background-image:url('http://example.com/wp-content/uploads/featured.png');
background-repeat:no-repeat;
background-position:right top;
}
Ecco uno screenshot aggiornato dal nostro sito demo.

Guide Esperte sui Post in Evidenza
Speriamo che questo tutorial ti abbia aiutato a imparare come aggiungere post in evidenza negli archivi dei tipi di post personalizzati di WordPress. Potresti anche voler consultare altre guide relative ai post in evidenza in WordPress:
- How to Make Sticky Posts in WordPress (Quick and Easy)
- Come aggiungere post in evidenza per le categorie in WordPress
- Cose Interessanti che Puoi Fare con i Post in Evidenza in WordPress
- How to Exclude Sticky Posts from the Loop in WordPress
- Come riordinare facilmente i post in WordPress (passo dopo passo)
- Come creare un menu di navigazione mobile fisso in WordPress
- Come creare un widget barra laterale mobile e fisso in WordPress
- Come creare una barra a piè di pagina "sticky" (fluttuante) in WordPress
Se ti è piaciuto questo articolo, iscriviti al nostro canale YouTube per tutorial video su WordPress. Puoi anche trovarci su Twitter e Facebook.

Clare
Ho reso un tipo di post personalizzato "in evidenza" in un archivio in 15 minuti seguendo il tuo esempio. Super utile, grazie!
Supporto WPBeginner
Glad to hear our guide was helpful!
Amministratore
rom
Ciao,
I’m banging my head right now….
I’m using this plugin, it works fine, I can see it in the admin, and on the data base, I can see it update the sticky_posts in wp_options. But, when I try to use ‘post__not_in’ => get_option(‘sticky_posts’), it doesn’t filter any thing.
So I try to var_dump(get_option(‘sticky_posts’)), and all I get is the id of the ‘normal post’, not the full list of id who I can see are in the 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
You can use this Sticky Post Switch Plugin
It also enables the featuere for custom post types
Pat Ducat
Questo funziona bene, tuttavia lo rende sticky su ogni pagina di un archivio paginato. È così che funziona anche la funzionalità sticky integrata per i post standard?
Aaron
How could i set this up to work with a custom taxonomy archive page?
I’ve tried adding ‘is_tax’ and ‘is_category’ instead of the is_post_type_archive() on line 4 of your function but it just breaks the page.
I’m missing something obviously but can’t seem to find it.
Any ideas?
Daniel Dropik
Grazie. È possibile adattare questo tutorial per visualizzare i post sticky su un modello di pagina specializzato, piuttosto che sulla pagina degli archivi? Se sì, come potrei realizzarlo?
Supporto WPBeginner
Daniel, sì certo che si può fare in un modello di pagina separato. Crea semplicemente un modello personalizzato e segui le istruzioni fornite sopra.
Amministratore
Shawn
Come si fa per Custom Taxonomy.php invece che per gli archivi.
Supporto WPBeginner
Se la tassonomia personalizzata visualizza tipi di post con supporto per i post in evidenza, allora puoi visualizzarla nello stesso modo. Invece del template archive-post-type.php, apporta le modifiche nel template taxonomy-custom-taxonomy.php.
Amministratore
Mr.Ultra
Grazie. Questo è utile.
Ma se fosse possibile aggiungere la funzionalità sticky ai tipi di post personalizzati senza usare un plugin?
Puoi condividere lo snippet?
Anir
Molto informativo, grazie per aver condiviso. Aiuta molto.
Daniel
Tutorial davvero bello.