CUSTOM POST TYPE : problème d’affichage de catégories (Créer un compte)

  • WordPress :5.4
  • Statut : non résolu
15 sujets de 1 à 15 (sur un total de 19)
  • Auteur
    Messages
  • #2343876
    Goudurisc
    Participant
    Chevalier WordPress
    337 contributions

    Bonjour,

    Ma configuration WP actuelle

    • Version de PHP/MySQL : 7.3
    • Thème utilisé : Astra
    • Extensions en place : Yoast
    • Nom de l’hébergeur : OVH
    • Adresse du site :

    Problème(s) rencontré(s) :

    Bonjour,

    Mon CPT fonctionne très bien à l’exception de l’affichage de la catégorie (ou des catégories) : quand j’affiche une pages créée depuis mon nouveau CPT, c’est l’une des catégories de mes articles (celle par défaut définie dans admin WP > Ecriture) qui apparaît et non pas la catégorie que j’ai définie depuis mon nouveau CPT. 

    Je suis épuisé, je ne trouve pas la solution.

    Pour info, mon test fonctionne depuis le modèle de wpmarmite.com soit :

    function wpm_custom_post_type() {
    
    	// Dénominations du CPT affichées dans l'administration
    	$labels = array(
    		// Nom au pluriel
    		'name' => _x( 'Séries TV', 'Post Type General Name' ),
    		// Nom au singulier
    		'singular_name' => _x( 'Série TV', 'Post Type Singular Name' ),
    		// Le libellé affiché dans le menu
    		'menu_name' => __( 'Séries TV' ),
    		// Les différents libellés de l'administration
    		'all_items' => __( 'Toutes les séries TV' ),
    		'view_item' => __( 'Voir les séries TV' ),
    		'add_new_item' => __( 'Ajouter une nouvelle série TV' ),
    		'add_new' => __( 'Ajouter' ),
    		'edit_item' => __( 'Editer la séries TV' ),
    		'update_item' => __( 'Modifier la séries TV' ),
    		'search_items' => __( 'Rechercher une série TV' ),
    		'not_found' => __( 'Non trouvée' ),
    		'not_found_in_trash' => __( 'Non trouvée dans la corbeille' ),
    	);
    
    	// Options du CPT
    
    	$args = array(
    		'label' => __( 'Séries TV' ),
    		'description' => __( 'Tous sur séries TV' ),
    		'labels' => $labels,
    		'menu_icon' => 'dashicons-admin-users',
    		// On définit les options disponibles dans l'éditeur de notre custom post type ( un titre, un auteur...)
    		'supports' => array( 'title', 'editor', 'thumbnail', ),
    		/* 
    		 * Différentes options supplémentaires
    		 */
    		'show_in_rest' => true,
    		'hierarchical' => false,
    		'public' => true,
    		'has_archive' => true,
    		'rewrite' => array( 'slug' => 'series-tv' ),
    
    	);
    
    	// On enregistre CPT nommé "serietv" et ses arguments
    	register_post_type( 'seriestv', $args );
    
    }
    add_action( 'init', 'wpm_custom_post_type', 0 );
    
    add_action( 'init', 'wpm_add_taxonomies', 0 );
    
    //On crée 1 Catégories de série.
    
    function wpm_add_taxonomies() {
    
    
    	// Catégorie de série
    
    	$labels_cat_serie = array(
    		'name' => _x( 'Catégories de série', 'taxonomy general name' ),
    		'singular_name' => _x( 'Catégories de série', 'taxonomy singular name' ),
    		'search_items' => __( 'Rechercher une catégorie' ),
    		'popular_items' => __( 'Catégories populaires' ),
    		'all_items' => __( 'Toutes les catégories' ),
    		'edit_item' => __( 'Editer une catégorie' ),
    		'update_item' => __( 'Mettre à jour une catégorie' ),
    		'add_new_item' => __( 'Ajouter une nouvelle catégorie' ),
    		'new_item_name' => __( 'Nom de la nouvelle catégorie' ),
    		'add_or_remove_items' => __( 'Ajouter ou supprimer une catégorie' ),
    		'choose_from_most_used' => __( 'Choisir parmi les catégories les plus utilisées' ),
    		'not_found' => __( 'Pas de catégories trouvées' ),
    		'menu_name' => __( 'Catégories de série' ),
    	);
    
    	$args_cat_serie = array(
    		// Si 'hierarchical' est défini à true, notre taxonomie se comportera comme une catégorie standard
    		'hierarchical' => true,
    		'labels' => $labels_cat_serie,
    		'show_ui' => true,
    		'show_in_rest' => true,
    		'show_admin_column' => true,
    		'query_var' => true,
    		'rewrite' => array( 'slug' => 'categories-series' ),
    	);
    
    	register_taxonomy( 'categoriesseries', 'seriestv', $args_cat_serie );
    }
    Mon test CPT

    #2343911
    Li-An
    Modérateur
    Maître WordPress
    24374 contributions

    Bonjour, si elles ont le même nom, c’est problématique et explique peut-être le fait qu’elles soient confondues.

    #2343915
    Goudurisc
    Participant
    Chevalier WordPress
    337 contributions

    Merci Li-An mais comme je découvre les CPT, je ne vois pas de quoi tu parles (même si tu as certainement raison), qu’est-ce qui a le même nom ?

    #2343916
    Li-An
    Modérateur
    Maître WordPress
    24374 contributions

    Désolé, je suis allé trop vite. Vous avez bien ajouté le add_action à la fin comme dans l’exemple ici https://wpchannel.com/wordpress/tutoriels-wordpress/creer-custom-post-types-wordpress/ ?

    #2343918
    Goudurisc
    Participant
    Chevalier WordPress
    337 contributions

    Dans le code ci-dessus, on trouve bien pour le CPT :

    add_action( 'init', 'wpm_custom_post_type', 0 );

    …et aussi pour la taxonomie / Ajout  d’une catégorie

    add_action( 'init', 'wpm_add_taxonomies', 0 );

    J’avais regardé l’exemple de WP channel, mais l’exemple que l’auteur prends (un site d’annonces immobilières) est très bien, il me semble qu’il n’est pas inégré dans le code proposé… Dommage, dans le principe, c’est ce que je recherche.

    #2343919
    Li-An
    Modérateur
    Maître WordPress
    24374 contributions

    Est-ce que vous avez généré le code via un moteur ou l’avez-vous juste recopié ?

    #2343920
    Goudurisc
    Participant
    Chevalier WordPress
    337 contributions

    Juste recopié, soit pour mon exemple, les deux parties proposée par Wpmarmite : le CPT et ensuite la catégorie. J’aurais préféré que le code exemple soit complet pour que je puisse simplement l’adapter… Il se peut donc par exemple que l’enchaînement des deux “add_action()” pose pb, mais je reconnais qua je ne maîtrise pas…

    En fait, je fais tout pour éviter un plugin et je tente de comprendre autant que possible ce code et sa mécanique, dans la douleur maintenant… Surtout que j’étais presque parvenu au bon résultat sans ce bug de catégories qui donne la priorité à celle des actus WP par défaut.

    #2343922
    Li-An
    Modérateur
    Maître WordPress
    24374 contributions

    Essayez de générer le code via https://generatewp.com/post-type/

    #2343936
    Goudurisc
    Participant
    Chevalier WordPress
    337 contributions

    Merci beaucoup Li-An pour ton suivi ! J’ai donc généré un code propre et qui fonctionne parfaitement mais (désolé pour le “mais) :

    Mon CTP est bien créé mais dans la liste des catégories de mon CTP, je trouve les catégories… de mes actus. Donc, le test fonctionne si j’ajoute une catégorie de mon CTP à celle des actus

    Hors, je souhaiterais bien entendu que les catégories de mon CTP soient seules à s’afficher dans la liste.

    Mon nouveau code tout beau, tout neuf grâce au générateur :

    add_action( 'init', 'register_cpt_equipe' );
    
    function register_cpt_equipe() {
    
    	$labels = array( 
    		'name' => _x( 'Equipes', 'equipe' ),
    		'singular_name' => _x( 'Equipe', 'equipe' ),
    		'add_new' => _x( 'Add New', 'equipe' ),
    		'add_new_item' => _x( 'Add New Equipe', 'equipe' ),
    		'edit_item' => _x( 'Edit Equipe', 'equipe' ),
    		'new_item' => _x( 'New Equipe', 'equipe' ),
    		'view_item' => _x( 'View Equipe', 'equipe' ),
    		'search_items' => _x( 'Search Equipes', 'equipe' ),
    		'not_found' => _x( 'No Equipes found', 'equipe' ),
    		'not_found_in_trash' => _x( 'No Equipes found in Trash', 'equipe' ),
    		'parent_item_colon' => _x( 'Parent Equipe:', 'equipe' ),
    		'menu_name' => _x( 'Equipes', 'equipe' ),
    	);
    
    	$args = array( 
    		'labels' => $labels,
    		'hierarchical' => true,
    		'description' => 'Equipe Brevets et Marques',
    		'supports' => array( 'title', 'editor', 'excerpt', 'thumbnail', ),
    		'taxonomies' => array( 'category', 'custom_taxonomy_one', ),
    		'public' => true,
    		'show_ui' => true,
    		'show_in_menu' => true,
    		'menu_icon' => 'dashicons-admin-users',
    		'menu_position' => '20',
    		'show_in_nav_menus' => true,
    		'publicly_queryable' => true,
    		'exclude_from_search' => false,
    		'has_archive' => true,
    		'query_var' => true,
    		'can_export' => true,
    		'rewrite' => true,
    		'capability_type' => 'post'
    	);
    
    	register_post_type( 'equipe', $args );
    
    }

     

     

     

    #2343950
    Li-An
    Modérateur
    Maître WordPress
    24374 contributions

    Mais il y juste le CPT, là, non ?

    #2343953
    Goudurisc
    Participant
    Chevalier WordPress
    337 contributions

    En fait, j’ai utilisé le générateur : https://michaelsmyth.co.uk/custom-post-types-generator/ qui me semblait un tout petit peu plus simple à prendre en main pour moi que https://generatewp.com/post-type/. Mais j’ai quand même testé les les deux et le résultat est équivalent.

    En revanche, je n’ai aucune idée de la manière d’ajouter des expertises indépendantes de celles dèjà utilisées dans les articles… Pourrais-tu me mettre sur la piste stp ?

    Sinon, il y a certains champs que je n’ai pas su interpréter/remplir (malgré les commentaires du codex) :  Text Domain ou Rest API, mais je pense que ça n’a pas d’incidence sur la création de catégories ?

    #2343958
    Li-An
    Modérateur
    Maître WordPress
    24374 contributions

    Text Domain sert à la traduction et l’API n’a pas d’incidence même si je ne maîtrise pas.

    J’ai regardé le code utilisé pour une extension perso (je ne suis absolument pas développeur) et j’ai un register_taxonomy qui n’apparait pas dans ton dernier code. Ça me parait étrange.

    #2343959
    Goudurisc
    Participant
    Chevalier WordPress
    337 contributions

    Si tu n’es pas développeur, on est deux du coup comme tu t’en es aperçu 😉 Sinon, je pense que tu as 100% raison, il faut que je case un register_taxonomy quelque part pour obtenir ces catégories séparées ! Bon après, faut que je trouve un code propre qui ne me plombe pas mon joli CPT qui marche très bien.

    Bon au pire, je peux tout gérer dans les catégories par défaut mais avec trois langues, compétences + atualités, ça va être le bazard et surtout pas très “pro”, faut que je trouve…

    #2343960
    Goudurisc
    Participant
    Chevalier WordPress
    337 contributions

    … mais je ne vois pas cette option dans les générateurs de CPT, bizarre, non ?

    #2343965
    Goudurisc
    Participant
    Chevalier WordPress
    337 contributions

    Bon, j’ai trouvé, c’est très clair enfin et pour non codeur fou : https://wordpress.bbxdesign.com/custom-post-type-custom-taxonomy, ça fonctionne en fait parfaitement mais (encore un “mais”, ça n’en finit plus), si les catégories se créent sans aucun pb, je dois préciser que j’utilise le constructeur de page WPBakery et depuis il refuse de faire remonter les catégories qui ne sont pas celle des articles…

    Bref, mais jolies nouvelle catégories ne pourront pas s’afficher et je vais donc tenter d’organiser au mieux mes différentes catégories comme je peux.

    Dans tous les cas, je te remercie très sincèrement pour tout le temps que tu as passé sur mon pb, je me suis senti moins seul dans ma galère, et surtout, tu m’as mis à chaque fois sur la bonne piste, mille mercis !!!!!!!!

15 sujets de 1 à 15 (sur un total de 19)
  • Vous devez être connecté pour répondre à ce sujet.