Récupération impossible des CPT dans les pages archives

  • WordPress :5.2
  • Statut : non résolu
8 sujets de 1 à 8 (sur un total de 8)
  • Auteur
    Messages
  • #2273435
    TiPi
    Participant
    Initié WordPress
    13 contributions

    Hello WPFR 😉

    Ma configuration WP actuelle

    • Thème utilisé : Extra d’Elegant Themes
    • Extensions en place : Amazon Affiliate for WordPress, Classic Editor, Contact Form 7, Duplicate Post, Edit Author Slug, Monarch Plugin, Pretty Links, Rename wp-login.php, Yoast SEO
    • Nom de l’hébergeur : O2switch
    • Adresse du site : privée

    J’ai créé un CPT qui fonctionne. J’ai donc ce CPT qui s’affiche bien en back et front. Seul hic, il n’apparaît pas dans les pages de catégories alors qu’il partage les mêmes fonctionnalités qu’un post classique.

    Après moultes recherches, j’ai trouvé un hook qui permet d’ajouter le CPT dans l’indexation des éléments de la taxonomy :

    function cpt_show_cpt_archives( $query ) {
     if( is_category() || is_tag() && empty( $query->query_vars['suppress_filters'] ) ) {
     $query->set( 'post_type', array(
     'post', 'nav_menu_item', 'custom-post-type-name'
     ));
     return $query;
     }
    }
    add_filter( 'pre_get_posts', 'cpt_show_cpt_archives' );

    J’ai ajouté le hook dans mon fuctions.php en modifiant le nom du CPT pour le faire correspondre avec le mien. Reste qu’il a l’air vieux et ne fonctionne pas. Si je mets ça en place, mes posts normaux donnent des 404 en front et, surtout, mes pages de taxonomy ne donnent pas un affichage des posts liés à la catégorie mais affichent le dernier post de la catégorie en question.

    Comment puis-je améliorer le code ou trouver quelque chose de plus à jour ? Comment vous faites pour récupérer des CPT sur une taxonomy partagée avec les posts classiques ?

    Merci pour vos réponses 😉

    • Ce sujet a été modifié le il y a 2 mois et 1 week par  TiPi.
    #2273458
    ferman
    Participant
    Maître WordPress
    1250 contributions

    Bonjour,

    Avez-vous regardé ça?

    #2273486
    TiPi
    Participant
    Initié WordPress
    13 contributions

    Hello Ferman et merci.

    J’ai essayé ce plugin après avoir codé tout mais c’était pareil.

    Je viens de retenter. Le CPT ne ressort pas dans les archives non plus même avec le hook indiqué…

    D’où ma question de savoir si c’était un hook obsolète ou pas. Votre lien date de fin 2016 quand même…

    Dans l’absolu, je recherche des articles qui peuvent avoir une hiérarchie et ressortir dans une catégorie lambda. Donc un mix entre le post classique et la possibilité de parent/enfant des pages.

    • Cette réponse a été modifiée le il y a 2 mois et 1 week par  TiPi.
    #2273488
    ferman
    Participant
    Maître WordPress
    1250 contributions

    Pour info (pas capable de donner un avis) et comme vous avez déjà pas mal cherché l’info est peut-être inutile : Encore ça plus récent et ça encore plus mais ça tourne toujours autour du même code. On voit quand même que pre_get_post n’est pas du tout obsolète (mais pose peut-être problème dans ce cas: voir l’article le plus récent).

    • Cette réponse a été modifiée le il y a 2 mois et 1 week par  ferman.
    #2273570
    TiPi
    Participant
    Initié WordPress
    13 contributions

    Hello et merci pour ta patience.

    J’ai essayé la 1ère page, je dois avoir la main sur le fichier archive qui n’existe pas par défaut dans mon thème.

    Pour la seconde option, j’ai mis le code :

    function namespace_add_custom_types( $query ) {
      if( (is_category() || is_tag()) && $query->is_archive() && empty( $query->query_vars['suppress_filters'] ) ) {
        $query->set( 'post_type', array(
         'post', 'projets'
            ));
        }
        return $query;
    }
    add_filter( 'pre_get_posts', 'namespace_add_custom_types' );

    Cela me refait le bug que j’avais au départ : sur la page de catégorie, le contenu du dernier article de ladite catégorie s’affiche en brut…

    #2273578
    ferman
    Participant
    Maître WordPress
    1250 contributions

    Désolé, à part rechercher un peu sur le net mon aide restera limitée. Je ne me suis jamais préoccupé de faire des cpt. Cela ne semble pourtant pas très difficile quand on regarde par exemple  là. Long et fastidieux à mon avis , mais pas compliqué (mais là ils créent aussi de nouvelles catégories pour les cpt ). Peut-être faut-il abandonner l’idée de se servir de la catégorie “post”puisque ça semble bloquer.

    J’essaierais quand même deux petites choses: remplacer add_filter par add_action puisque pre_get_posts est un hook d’action, pas de filtre . Je pense que ça ne changera pas grand chose mais sait-on jamais. A tout hasard, remplacer ‘pre_get_posts’ par ‘init’.

     

    #2273582
    TiPi
    Participant
    Initié WordPress
    13 contributions

    Re.

    Alors le tuto, j’ai déjà fait plus abouti. Ce n’est pas la création du CPT qui déconne mais bien la récupération de l’info par WP quand il récupère les éléments de la catégorie. En back, j’ai 3 éléments dans une catégorie, A ; en front, seulement 2 articles s’affichent, mon CPT est ignoré.

    J’ai testé tes deux magouilles sans succès, merci quand même 😉

    Je me demande du coup si on pourrait forcer l’ajout en ayant un fichier archive.php…

    #2273583
    TiPi
    Participant
    Initié WordPress
    13 contributions

    Mince, je viens de tester avec un thème par défaut WordPress et le CPT s’affiche correctement, j’ai zappé de tester avec un thème plus classique. Idem si je mets Divi à la place et que j’ajoute le hook en functions.php.

    Donc c’est Extra qui déconne, shit. Je vais voir à faire bouger le support.

    • Cette réponse a été modifiée le il y a 2 mois et 1 week par  TiPi.
8 sujets de 1 à 8 (sur un total de 8)
  • Vous devez être connecté pour répondre à ce sujet.