web-dev-qa-db-fra.com

Ajoutez plusieurs types de publication personnalisés dans functions.php, mais un seul type de publication personnalisé s'affiche dans le tableau de bord.

Je suis nouveau sur wordpress et j'essaie d'ajouter plusieurs types de publication personnalisés dans le functions.php.

Ajouter un cpt, c'est bien. mais si j'utilise la même fonction pour ajouter le deuxième cpt (avec juste un changement de nom de la fonction), le deuxième cpt ne s'affiche pas dans le menu du tableau de bord.

Ci-dessous sont les codes. J'apprécierais grandement l'aide dans ce domaine. Je vous remercie!

// register a new post type with Divi builder on

 function create_new_cpt()
{
$labels = array(
    'name' => _x('Article', 'Article', 'divi'), // CPT name is Article. Replace every instance of this CPT name with your own
    'singular_name' => _x('Article', 'article', 'divi'),
    'menu_name' => __('Article', 'divi'),
    'edit_item' => __('Edit Article', 'divi'),
    'add_new_item'          => __( 'Add New Article', 'divi' ),
    'update_item'           => __( 'Update Article', 'text_domain' ),
    'view_item'             => __( 'View Article', 'text_domain' ),
    'not_found_in_trash' => __('Not found in Trash', 'divi')
);
$args   = array(
    'labels' => $labels,
    'description'       => __('Articles', 'divi'),
    'supports'          => array('title', 'author', 'editor', 'thumbnail', 'excerpt', 'comments', 'revisions', 'custom-fields'),
    'menu_icon'         => 'dashicons-welcome-write-blog',
    'menu-position'     => null,
    'public'            => true,
    'publicly_queryable'=> true,
    'show_ui'           => true,
    'show_in_menu'      => true,
    'show_in_admin_bar' => true,
    'rewrite'           => array( 'slug' => 'article' ),
    'capability_type'   => 'post',
    'can_export'        => true,
    'has_archive'       => true,
    'hierarchical'      => false,
    'publicly_queryable'=> true
);
register_post_type('article', $args); // registering the CPT. 
    $labels = array(
    'name'              => esc_html__( 'Article Categories', 'divi' ),
    'singular_name'     => esc_html__( 'Article Category', 'divi' ),
    'search_items'      => esc_html__( 'Search Categories', 'divi' ),
    'all_items'         => esc_html__( 'All Categories', 'divi' ),
    'parent_item'       => esc_html__( 'Parent Category', 'divi' ),
    'parent_item_colon' => esc_html__( 'Parent Category:', 'divi' ),
    'edit_item'         => esc_html__( 'Edit Category', 'divi' ),
    'update_item'       => esc_html__( 'Update Category', 'divi' ),
    'add_new_item'      => esc_html__( 'Add New Category', 'divi' ),
    'new_item_name'     => esc_html__( 'New Category Name', 'divi' ),
    'menu_name'         => esc_html__( 'Categories', 'divi' ),
);
// registering the custom taxomoy for this CPT. 
register_taxonomy( 'article_category', array( 'article' ), array(
    'hierarchical'      => true,
    'labels'            => $labels,
    'show_ui'           => true,
    'show_admin_column' => true,
    'query_var'         => true,
) );
$labels = array(
    'name'              => esc_html__( 'Article Tags', 'divi' ),
    'singular_name'     => esc_html__( 'Article Tag', 'divi' ),
    'search_items'      => esc_html__( 'Search Tags', 'divi' ),
    'all_items'         => esc_html__( 'All Tags', 'divi' ),
    'parent_item'       => esc_html__( 'Parent Tag', 'divi' ),
    'parent_item_colon' => esc_html__( 'Parent Tag:', 'divi' ),
    'edit_item'         => esc_html__( 'Edit Tag', 'divi' ),
    'update_item'       => esc_html__( 'Update Tag', 'divi' ),
    'add_new_item'      => esc_html__( 'Add New Tag', 'divi' ),
    'new_item_name'     => esc_html__( 'New Tag Name', 'divi' ),
    'menu_name'         => esc_html__( 'Tags', 'divi' ),
);
register_taxonomy( 'article_tag', array( 'article' ), array(
    'hierarchical'      => false,
    'labels'            => $labels,
    'show_ui'           => true,
    'show_admin_column' => true,
    'query_var'         => true,
) );

}    

     // adding divi page builder to this CPT
function add_db_to_article ($post_types) {
$custom_post_types = array ('article');
$output = array_merge($post_types, $custom_post_types);
return $output;
}   

add_action('init', 'create_new_cpt');
add_filter( 'et_builder_post_types', 'add_db_to_article' );


 //  register a new post type with Divi builder on

function create_new_cpt2()
{
$labels = array(
    'name' => _x('News', 'News', 'divi'), // CPT name is News. Replace every instance of this CPT name with your own
    'singular_name' => _x('News', 'news', 'divi'),
    'menu_name' => __('News', 'divi'),
    'edit_item' => __('Edit News', 'divi'),
    'add_new_item'          => __( 'Add New News', 'divi' ),
    'update_item'           => __( 'Update News', 'text_domain' ),
    'view_item'             => __( 'View News', 'text_domain' ),
    'not_found_in_trash' => __('Not found in Trash', 'divi')
);
$args   = array(
    'labels' => $labels,
    'description'       => __('News', 'divi'),
    'supports'          => array('title', 'author', 'editor', 'thumbnail', 'excerpt', 'comments', 'revisions', 'custom-fields'),
    'menu_icon'         => 'dashicons-welcome-write-blog',
    'menu-position'     => null,
    'public'            => true,
    'publicly_queryable'=> true,
    'show_ui'           => true,
    'show_in_menu'      => true,
    'show_in_admin_bar' => true,
    'rewrite'           => array( 'slug' => 'news' ),
    'capability_type'   => 'post',
    'can_export'        => true,
    'has_archive'       => true,
    'hierarchical'      => false,
    'publicly_queryable'=> true
);

register_post_type('news', $args); // registering the CPT. 
    $labels = array(
    'name'              => esc_html__( 'News Categories', 'divi' ),
    'singular_name'     => esc_html__( 'News Category', 'divi' ),
    'search_items'      => esc_html__( 'Search Categories', 'divi' ),
    'all_items'         => esc_html__( 'All Categories', 'divi' ),
    'parent_item'       => esc_html__( 'Parent Category', 'divi' ),
    'parent_item_colon' => esc_html__( 'Parent Category:', 'divi' ),
    'edit_item'         => esc_html__( 'Edit Category', 'divi' ),
    'update_item'       => esc_html__( 'Update Category', 'divi' ),
    'add_new_item'      => esc_html__( 'Add New Category', 'divi' ),
    'new_item_name'     => esc_html__( 'New Category Name', 'divi' ),
    'menu_name'         => esc_html__( 'Categories', 'divi' ),
);



// registering the custom taxomoy for this CPT. 
register_taxonomy( 'news_category', array( 'news' ), array(
    'hierarchical'      => true,
    'labels'            => $labels,
    'show_ui'           => true,
    'show_admin_column' => true,
    'query_var'         => true,
) );
$labels = array(
    'name'              => esc_html__( 'News Tags', 'divi' ),
    'singular_name'     => esc_html__( 'News Tag', 'divi' ),
    'search_items'      => esc_html__( 'Search Tags', 'divi' ),
    'all_items'         => esc_html__( 'All Tags', 'divi' ),
    'parent_item'       => esc_html__( 'Parent Tag', 'divi' ),
    'parent_item_colon' => esc_html__( 'Parent Tag:', 'divi' ),
    'edit_item'         => esc_html__( 'Edit Tag', 'divi' ),
    'update_item'       => esc_html__( 'Update Tag', 'divi' ),
    'add_new_item'      => esc_html__( 'Add New Tag', 'divi' ),
    'new_item_name'     => esc_html__( 'New Tag Name', 'divi' ),
    'menu_name'         => esc_html__( 'Tags', 'divi' ),
);
register_taxonomy( 'news_tag', array( 'news' ), array(
    'hierarchical'      => false,
    'labels'            => $labels,
    'show_ui'           => true,
    'show_admin_column' => true,
    'query_var'         => true,
) );

}
1
Cheung

ajoutez add_action('init', 'create_new_cpt2'); dans votre extrait et modifiez add_db_to_article function comme ci-dessous,

function add_db_to_article ($post_types) {
    $custom_post_types = array ('article', 'news');
    $output = array_merge($post_types, $custom_post_types);
    return $output;
}

Remarque: 'news' est ajouté dans le tableau $ custom_post_types.

3
VishwasDhamale

Votre extrait est manquant

add_action('init', 'create_new_cpt2');
1
David Sword