La fonctionnalité « Article épinglé » cassée : pourquoi votre article pinné se désépingle tout seul

Vous avez écrit une annonce importante. Un message de bienvenue. Une note « à lire en premier ». Vous l’avez épinglée en haut de votre blog. Elle est restée là pendant des semaines.

Puis un jour — elle a disparu. Un article plus récent a pris sa place. Ou pire, plus rien n’est épinglé du tout.

La fonctionnalité des articles épinglés (sticky posts) de WordPress semble simple. Mais quand elle se casse, c’est frustrant et déroutant. Ce guide explique pourquoi les articles épinglés se désépingleux tout seuls et comment résoudre le problème.

Table des matières

  1. Que sont les articles épinglés ?
  2. Pourquoi les articles épinglés échouent (les 5 causes les plus fréquentes)
  3. Comment corriger les articles épinglés cassés
  4. Prévenir les problèmes d’articles épinglés

1. Que sont les articles épinglés ?

Les articles épinglés (sticky posts) sont des articles WordPress qui restent en haut de votre page de blog, quelle que soit leur date de publication. Ils apparaissent avant les articles plus récents.

Comment épingler un article :

  1. Modifiez n’importe quel article
  2. Dans la barre latérale Résumé, trouvez Visibilité
  3. Cliquez sur Public → cochez Épingler en haut du blog
  4. Mettez à jour l’article

Où ils apparaissent :

  • Votre page de blog principale (/blog)
  • Toute page d’archive utilisant pre_get_posts avec 'ignore_sticky_posts' => false
  • Les archives de catégories et d’étiquettes (si votre thème le supporte)

Ce qu’ils n’affectent pas :

  • Les pages d’accueil utilisant une page statique
  • Les types de contenu personnalisés
  • Les flux RSS (par défaut)

2. Pourquoi les articles épinglés échouent (les 5 causes les plus fréquentes)

Cause #1 : Un autre article le remplace

WordPress permet plusieurs articles épinglés. Si l’article A et l’article B sont tous deux épinglés, l’article B (plus récent) apparaît en premier — mais l’article A devrait toujours être épinglé en dessous.

Le vrai problème : Un article plus récent a été accidentellement défini comme épinglé, poussant votre article épinglé d’origine plus bas (parfois hors de l’écran, là où vous ne le voyez pas).

Comment vérifier :

  1. Allez dans Articles → Tous les articles
  2. Cherchez la colonne Épinglé (peut nécessiter l’activation via Options d’écran)
  3. Voyez quels articles ont le statut épinglé

Correction : Retirez le statut épinglé de tout article qui ne devrait pas être épinglé.

Cause #2 : Le thème ne supporte pas les articles épinglés

Tous les thèmes ne respectent pas les articles épinglés. Certains thèmes de blog les ignorent complètement. D’autres utilisent des boucles personnalisées qui contournent la logique d’épinglage.

Comment tester :

  1. Basculez temporairement vers un thème par défaut (Twenty Twenty-Four, Twenty Twenty-Three)
  2. Vérifiez votre page de blog
  3. Si les articles épinglés fonctionnent avec le thème par défaut, votre thème est le problème

Correction : Contactez le développeur de votre thème ou modifiez le home.php ou index.php de votre thème pour inclure :

php

<?php if ( have_posts() ) : ?>
    <?php while ( have_posts() ) : the_post(); ?>
        <?php if ( is_sticky() ) : ?>
            // Mettez en évidence ou stylisez les articles épinglés différemment
        <?php endif; ?>
    <?php endwhile; ?>
<?php endif; ?>

Cause #3 : Conflit d’extension

Certaines extensions interfèrent avec les articles épinglés :

  • Extensions de type de contenu personnalisé — peuvent modifier la requête principale
  • Extensions SEO — certaines modifient le comportement des archives
  • Extensions de cache — peuvent servir des versions périmées de votre page de blog
  • Extensions d’articles similaires — parfois détournent la boucle

Comment tester :

  1. Désactivez toutes les extensions
  2. Vérifiez les articles épinglés
  3. Réactivez les extensions une par une jusqu’à ce que le problème revienne

Correction : Remplacez l’extension problématique ou contactez son support.

Cause #4 : Une requête personnalisée ignore les articles épinglés

Si vous (ou votre thème) utilisez une WP_Query personnalisée sur la page de blog, les articles épinglés sont ignorés par défaut, sauf si vous dites explicitement à WordPress de les inclure.

Code problématique :

php

$custom_query = new WP_Query(array(
    'posts_per_page' => 10
    // 'ignore_sticky_posts' vaut 1 par défaut (ignorer)
));

Correction : Ajoutez 'ignore_sticky_posts' => 0 à votre requête :

php

$custom_query = new WP_Query(array(
    'posts_per_page' => 10,
    'ignore_sticky_posts' => 0
));

Puis affichez les articles épinglés séparément :

php

<?php
$sticky = get_option('sticky_posts');
if (!empty($sticky)) {
    $sticky_query = new WP_Query(array(
        'post__in' => $sticky,
        'ignore_sticky_posts' => 1
    ));
    // Affichez les articles épinglés ici
}
?>

Cause #5 : Corruption de la base de données

Rare mais possible. L’option sticky_posts dans votre table wp_options peut être corrompue ou vide.

Comment vérifier via phpMyAdmin :

  1. Ouvrez phpMyAdmin
  2. Trouvez votre table wp_options
  3. Recherchez option_name = 'sticky_posts'
  4. La option_value devrait ressembler à a:1:{i:0;s:3:"123";} (tableau sérialisé d’IDs d’articles)

Correction : Si corrompu, définissez manuellement les articles épinglés :

  1. Notez l’ID de l’article que vous voulez épingler
  2. Dans phpMyAdmin, modifiez la ligne sticky_posts
  3. Définissez option_value sur a:1:{i:0;s:3:"[ID_ARTICLE]";} (remplacez [ID_ARTICLE] par l’ID réel de votre article)
  4. Cliquez sur Exécuter

Alternative : Utilisez WP CLI :

bash

wp option patch insert sticky_posts 123

3. Comment corriger les articles épinglés cassés (étape par étape)

Suivez cette liste de vérification dans l’ordre :

Étape 1 : Vérifiez si les articles épinglés sont toujours définis

  • Allez dans Articles → Tous les articles
  • Activez la colonne Épinglé via Options d’écran
  • Vérifiez que votre article prévu a toujours le statut épinglé

Étape 2 : Vérifiez la présence de multiples articles épinglés

  • Cherchez tout autre article avec l’icône d’épingle
  • Retirez le statut épinglé des articles accidentels

Étape 3 : Testez avec un thème par défaut

  • Basculez temporairement vers Twenty Twenty-Four
  • Si les articles épinglés fonctionnent, votre thème est le problème

Étape 4 : Testez avec toutes les extensions désactivées

  • Désactivez toutes les extensions
  • Si les articles épinglés fonctionnent, réactivez une par une pour trouver le coupable

Étape 5 : Videz tous les caches

  • Videz le cache de votre extension de cache
  • Videz votre CDN (Cloudflare, etc.)
  • Videz le cache de votre navigateur
  • Videz le cache de votre hébergement (si applicable)

Étape 6 : Réparez la base de données

  • Allez dans Outils → Santé du site → Infos → Base de données
  • Recherchez les tables corrompues
  • Utilisez la fonction Réparer la table de phpMyAdmin sur wp_options

Étape 7 : Définissez manuellement les articles épinglés via du code
Ajoutez ceci à votre functions.php temporairement :

php

function force_sticky_posts() {
    update_option('sticky_posts', array(123)); // Remplacez 123 par l'ID de votre article
}
add_action('init', 'force_sticky_posts');

Après avoir confirmé que cela fonctionne, supprimez le code.

4. Prévenir les problèmes d’articles épinglés

Documentez vos articles épinglés

  • Conservez une liste des articles qui sont intentionnellement épinglés
  • Auditez régulièrement vos articles épinglés (mensuellement)

Évitez les multiples articles épinglés

  • WordPress les gère, mais les thèmes ne les affichent souvent pas bien
  • Limitez-vous à un article épinglé quand c’est possible

Testez les changements de thème sur un site de staging

  • Avant de mettre à jour votre thème, vérifiez que les articles épinglés fonctionnent encore
  • Certaines mises à jour de thème cassent la logique des boucles personnalisées

Utilisez une extension d’articles épinglés
Pour un contrôle avancé, considérez :

  • Sticky Menu (or Anything!) — pour un comportement d’épinglage personnalisé
  • Category Sticky Post — épingler des articles par catégorie
  • Simple Sticky Post — ajoute des options d’épinglage aux types de contenu personnalisés

Surveillez votre page de blog après chaque mise à jour WordPress

  • Les versions majeures de WordPress peuvent parfois modifier le comportement des requêtes
  • Vérifiez les articles épinglés dans les 24 heures suivant une mise à jour

Réflexions finales

La fonctionnalité des articles épinglés est simple mais fragile. La plupart des articles épinglés « cassés » ne le sont pas vraiment — ils sont simplement remplacés par un autre article épinglé ou ignorés par un thème qui ne les supporte pas.

Rappelez-vous :

  • WordPress permet plusieurs articles épinglés (mais les thèmes ne les gèrent pas toujours bien)
  • Les requêtes personnalisées ignorent les articles épinglés sauf si vous leur dites de ne pas le faire
  • Les thèmes par défaut fonctionnent toujours — utilisez-les pour tester
  • Videz les caches avant de supposer que quelque chose est cassé

Quand votre article épinglé se désépingle tout seul, commencez par la vérification la plus simple : quelqu’un (ou quelque chose) a-t-il défini un autre article comme épinglé ? Neuf fois sur dix, c’est la réponse.

Ce billet vous a été utile?
Offrez-nous un café!
Tags: