web-dev-qa-db-fra.com

Ajouter une taxonomie personnalisée au type d'article personnalisé

J'utilise wordpress 4.9.7 et souhaite ajouter une taxonomie personnalisée à mon type de publication.

J'ai emballé mon code dans un dossier mu-plugins afin qu'il soit requis par wordpress. Retrouvez ci-dessous mon code:

<?php

function computerBoxBuilder_post_types()
{

    // Computer Hardware Post Type
    register_post_type('Computer-Hardware', array(
        'supports' => array('title', 'editor', 'thumbnail', 'custom-fields'),
        'public' => true,
        // 'exclude_from_search' => true,
        'publicly_queryable' => true,
        'show_ui' => true,
        'labels' => array(
            'name' => 'Computer-Hardware',
            'add_new_item' => 'Add New Computer-Hardware',
            'edit_item' => 'Edit Computer-Hardware',
            'all_items' => 'All Computer-Hardware',
            'singular_name' => 'Computer-Hardware',
        ),
        'menu_icon' => 'dashicons-dashboard',
        'taxonomies' => array( 'category' ),
    ));

}

// Register Custom Taxonomy
function custom_taxonomy() {

    $labels = array(
        'name'                       => _x( 'Hardware-Creators', 'Taxonomy General Name', 'text_domain' ),
        'singular_name'              => _x( 'Hardware-Creator', 'Taxonomy Singular Name', 'text_domain' ),
        'menu_name'                  => __( 'Taxonomy', 'text_domain' ),
        'all_items'                  => __( 'All Items', 'text_domain' ),
        'parent_item'                => __( 'Parent Item', 'text_domain' ),
        'parent_item_colon'          => __( 'Parent Item:', 'text_domain' ),
        'new_item_name'              => __( 'New Item Name', 'text_domain' ),
        'add_new_item'               => __( 'Add New Item', 'text_domain' ),
        'edit_item'                  => __( 'Edit Item', 'text_domain' ),
        'update_item'                => __( 'Update Item', 'text_domain' ),
        'view_item'                  => __( 'View Item', 'text_domain' ),
        'separate_items_with_commas' => __( 'Separate items with commas', 'text_domain' ),
        'add_or_remove_items'        => __( 'Add or remove items', 'text_domain' ),
        'choose_from_most_used'      => __( 'Choose from the most used', 'text_domain' ),
        'popular_items'              => __( 'Popular Items', 'text_domain' ),
        'search_items'               => __( 'Search Items', 'text_domain' ),
        'not_found'                  => __( 'Not Found', 'text_domain' ),
        'no_terms'                   => __( 'No items', 'text_domain' ),
        'items_list'                 => __( 'Items list', 'text_domain' ),
        'items_list_navigation'      => __( 'Items list navigation', 'text_domain' ),
    );
    $args = array(
        'labels'                     => $labels,
        'hierarchical'               => true,
        'public'                     => true,
        'show_ui'                    => true,
        'show_admin_column'          => true,
        'show_in_nav_menus'          => true,
        'show_tagcloud'              => true,
    );
    register_taxonomy( 'Hardware-Creator', array( 'Computer-Hardware' ), $args );
}

add_action('init', 'computerBoxBuilder_post_types');
add_action( 'init', 'custom_taxonomy', 2 );

Comme vous pouvez le constater, la taxonomie n'est pas affichée:

 enter image description here 

Une suggestion de ce que je fais mal?

Appréciez votre réponse!

1
Kare

Il suffit de changer cette ligne, elle s'affichera dans admin

register_taxonomy( 'Hardware-Creator', array( 'Computer-Hardware' ), $args );

à

register_taxonomy( 'Hardware-Creator', array( 'computer-hardware' ), $args );
2
Techno Deviser

Essayez de changer l'ordre de add_action:

add_action( 'init', 'computerBoxBuilder_post_types'); add_action( 'init', 'custom_taxonomy' );

Dans votre code, la fonction custom_taxonomy est exécutée avant computerBoxBuilder_post_types et tente d'utiliser le type de publication personnalisé Computer-Hardware avant sa création.

1
nmr