Bonjour.
Custom Post Type = CPT
Pour le compte d'une association regroupant plusieurs sections sportives, j'ai créé un CPT entièrement personnalisé récréant :
*- titre, description, des champs à remplir pour chaque information (plus clairs, animés& conditions et des placeholder), des wp.media.model pour ajouter plusieurs documents (avec titres logo du type du doc), logo de la section , gallerie d'images et ajouter mes propres plugins de date de fin de publication , de datepicker, etc.
Ce CPT est ajouté à partir d'un plugin.
Pour cela j'utilise add_menu_page()
et add_submenu_page()
.
Avant de continuer, est-il possible de créer un CPT (entièrement refait = pages vides à remplir) sans ces deux fonctions?
Mon problème :
Sachant que add_submenu_page()
rentre en conflit avec la propriété "show_in_menu" si elle est à "true" dans les arguments de l'enregistrement du CPT, existe-il une solution (hook ou autre add_submenu_page()
) pour afficher l'onglet "catégorie" dans mes sous menu en continuant d'utiliser add_menu_page()
et add_submenu_page()
?
L'onglet "catégorie" correspondant au register_taxonomy déclaré.
Je précise que add_menu_page()
nécessite qu'un register_post_type()
soit déclaré pour fonctionner, je suppose donc qu'il existe un moyen d'utiliser add_submenu_page()
pour afficher le lien de la catégorie du register_post_type()
déclaré et lié au CPT.
Une Alternative : avec des bidouilles et la réécriture du titre du CPT dans le menu.
Si j'utilise à la fois add_menu_page()
et add_submenu_page()
et "show_in_menu" => true dans les arguments du register_post_type()
, le lien de la catégorie s'affiche comme prévu dans le menu du CPT, mais le CPT est dupliqué avec les labels par défaut d'un CPT et les labels sont modifiés (dans add_menu_page()
:
au lieu d'avoir "Toutes les sections" cela m'affiche "Tous les articles".
Je fais disparaître le menu dupliqué en faisant display:none sur son id.
`
function stm_section_post_type(){
$args = array(
'public' => true,
'show_in_menu' => false,
'has_archive' => true,
'taxonomies' => array( 'post_tag' ),
);
register_post_type( 'section_post_type', $args );
$labels_sections = array(
'name' => __( 'Catégories de sections'),
'singular_name' => __( 'catégories sections'),
'search_items' => __( 'Chercher une catégorie'),
'all_items' => __( 'Toutes les catégories de section' ),
'edit_item' => __( 'Editer' ),
'update_item' => __( 'Mettre à jour'),
'add_new_item' => __( 'Ajouter' ),
'new_item_name' => __( 'Nouveau nom de la catégorie' ),
'menu_name' => __( 'Catégories' ),
);
$args_sections = array(
'labels' => $labels_sections,
'hierarchical' => true,
'sort' => true,
'args' => array( 'orderby' => 'term_order' ),
'rewrite' => array( 'slug' => 'genres' ),
'show_admin_column' => true,
'show_in_rest' => true,
);
//'menu_slug' => 'edit-tags.php?taxonomy=stm_section_category&post_type=section_post_type',
register_taxonomy( 'stm_section_category' , array( 'section_post_type' ), $args_sections);
}
add_action( 'init', 'stm_section_post_type' );
function stm_new_posttype_plugin() {
add_menu_page(
'Toutes les sections',
'Toutes les sections',
'manage_options',
'/edit.php?post_type=section_post_type',
'stm_section_list',
'dashicons-fas fa-box-archive',
6
);
add_submenu_page(
'/edit.php?post_type=section_post_type',
'Ajouter une section',
'Ajouter une section',
'manage_options',
'add-section',
'stm_section_add'
);
add_submenu_page(
'/edit-tags.php?taxonomy=stm_section_category&post_type=section_post_type',
'Catégories des sections',
'Catégories des sections',
'manage_options',
'category-section',
null
);
}
add_action( 'admin_menu', 'stm_new_posttype_plugin','manage_options');`
Si vous pouvez m'aider, me conseiller, m'orienter vers un tuto qui parle précisément de mon cas je vous en remercie