Comment résoudre l’erreur ‘404 page not found for custom post type’ sur WordPress ? Guide complet

Comment résoudre l'erreur '404 page not found for custom post type' sur WordPress ? Comment résoudre l'erreur '404 page not found for custom post type' sur WordPress ? image
Rate this post

Pourquoi l’erreur 404 apparaît-elle sur vos types de publication personnalisés ?

L’erreur ‘404 page not found for custom post type’ est un problème fréquent sous WordPress. Elle survient généralement après la création d’un nouveau type de publication personnalisé (custom post type) ou après une modification des permaliens. Les visiteurs tentent d’accéder à une page de contenu personnalisé, mais le serveur ne parvient pas à la localiser. Cela peut nuire à l’expérience utilisateur et à votre référencement. Heureusement, plusieurs solutions simples existent pour corriger ce problème.

Les causes courantes de l’erreur 404 pour les custom post types

1. Permaliens non mis à jour

WordPress utilise des structures de permaliens pour générer les URL. Si vous créez un custom post type sans réenregistrer les permaliens, les nouvelles URL ne seront pas reconnues. C’est la cause la plus fréquente.

2. Enregistrement incorrect du custom post type

Lorsque vous enregistrez un type de publication personnalisé via functions.php ou un plugin, des paramètres comme ‘rewrite’ ou ‘has_archive’ peuvent être mal configurés, entraînant des erreurs 404.

3. Conflit avec des plugins de cache ou de permaliens

Certains plugins de cache ou de gestion de permaliens peuvent interférer avec la génération des URL des custom post types.

4. Thème incompatible

Votre thème peut ne pas inclure les templates nécessaires pour afficher les custom post types, ce qui provoque des erreurs 404.

Solutions pas à pas pour corriger l’erreur 404

1. Réinitialiser les permaliens

La solution la plus rapide consiste à réenregistrer la structure des permaliens. Rendez-vous dans Réglages > Permaliens et cliquez simplement sur ‘Enregistrer les modifications’ sans rien changer. Cela force WordPress à recréer les règles de réécriture.

  • Allez dans le tableau de bord WordPress.
  • Accédez à Réglages > Permaliens.
  • Cliquez sur ‘Enregistrer les modifications’.

Testez ensuite vos URL de custom post type. Si l’erreur persiste, passez à l’étape suivante.

2. Vérifier le code d’enregistrement du custom post type

Si vous avez créé le custom post type via code, assurez-vous que les paramètres sont corrects. Voici un exemple de code fonctionnel :

function create_custom_post_type() {
    register_post_type('produit',
        array(
            'labels' => array('name' => 'Produits'),
            'public' => true,
            'has_archive' => true,
            'rewrite' => array('slug' => 'produits'),
            'supports' => array('title', 'editor', 'thumbnail')
        )
    );
}
add_action('init', 'create_custom_post_type');

Vérifiez que ‘rewrite’ est défini avec un slug unique et que ‘has_archive’ est true si vous souhaitez une page d’archive. Si vous modifiez le code, n’oubliez pas de réenregistrer les permaliens.

3. Utiliser un plugin de custom post type

Si vous n’êtes pas à l’aise avec le code, utilisez un plugin comme Custom Post Type UI ou CPT UI. Ces plugins créent les types de publication avec les bons paramètres et évitent les erreurs de configuration.

  • Installez et activez le plugin.
  • Créez votre custom post type en suivant l’interface.
  • Assurez-vous de cocher les options ‘Public’ et ‘Has Archive’.
  • Enregistrez et réinitialisez les permaliens.

4. Vider le cache

Si vous utilisez un plugin de cache (comme W3 Total Cache ou WP Super Cache), videz le cache après avoir modifié les permaliens ou le code. Le cache peut conserver d’anciennes règles de réécriture.

  • Dans le plugin de cache, cherchez l’option ‘Vider le cache’.
  • Videz également le cache du navigateur.

5. Ajouter des templates de page

Parfois, le thème ne fournit pas de fichier single-{posttype}.php ou archive-{posttype}.php. Créez ces fichiers dans votre dossier de thème enfant. Par exemple, pour un custom post type ‘produit’, créez single-produit.php et archive-produit.php.

  • Copiez single.php de votre thème parent et renommez-le single-produit.php.
  • Modifiez le fichier selon vos besoins.
  • Faites de même pour archive-produit.php à partir d’archive.php.

6. Désactiver les plugins en conflit

Désactivez temporairement tous les plugins, surtout ceux liés aux permaliens, SEO ou cache. Si l’erreur disparaît, réactivez-les un par un pour identifier le coupable.

7. Vérifier les fichiers .htaccess

Parfois, le fichier .htaccess est corrompu ou mal configuré. Accédez à votre serveur via FTP, renommez .htaccess en .htaccess_old, puis allez dans Réglages > Permaliens et enregistrez à nouveau. WordPress recréera un fichier .htaccess propre.

Prévenir l’erreur 404 à l’avenir

Bien configurer dès le départ

Lors de la création d’un custom post type, prenez le temps de vérifier les paramètres. Utilisez des plugins réputés ou un code testé. Documentez-vous sur les bonnes pratiques.

Utiliser un thème compatible

Choisissez un thème qui supporte nativement les custom post types, ou créez un thème enfant avec les templates nécessaires.

Mettre à jour régulièrement

Gardez WordPress, vos plugins et votre thème à jour. Les mises à jour corrigent souvent des bugs liés aux permaliens.

Questions fréquentes sur l’erreur 404 pour custom post type

Pourquoi l’erreur 404 n’affecte que certains custom post types ?

Cela peut être dû à une configuration différente entre les types de publication. Vérifiez les paramètres ‘rewrite’ et ‘has_archive’ pour chaque type.

L’erreur 404 persiste après avoir réinitialisé les permaliens ?

Essayez de vider le cache de votre serveur (si vous utilisez un CDN ou un cache serveur) et vérifiez le fichier .htaccess.

Puis-je utiliser un plugin pour corriger automatiquement ?

Oui, des plugins comme ‘Permalink Manager’ ou ‘Custom Post Type Permalinks’ peuvent aider, mais ils peuvent aussi causer des conflits. Testez-les sur un site de développement.

En résumé

L’erreur ‘404 page not found for custom post type’ est frustrante mais rarement complexe. La plupart du temps, une simple réinitialisation des permaliens suffit. Si ce n’est pas le cas, vérifiez votre code, vos templates et les plugins. En suivant ces étapes, vous pourrez offrir une expérience utilisateur fluide et préserver votre référencement. N’oubliez pas de toujours tester les modifications sur un environnement de staging avant de les appliquer en production.

Photo by Ri_Ya on Pixabay

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *