web-dev-qa-db-ja.com

Functions.phpに複数のカスタム投稿タイプを追加しますが、ダッシュボードに表示されるカスタム投稿タイプは1つだけです

私はwordpressの初心者で、functions.phpに複数のカスタム投稿タイプを追加しようとしています。

Cptを1つ追加すれば問題ありません。しかし、同じ関数を使って2番目のcptを追加すると(関数名を変更するだけで)、2番目のcptはダッシュボードメニューに表示されません。

以下はコードです。私はこれの助けを大いに感謝するでしょう。ありがとうございました!

// 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

スニペットにadd_action('init', 'create_new_cpt2');を追加し、 add_db_to_article functionを以下のように修正します。

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

注: 'news'は$ custom_post_types配列に追加されています。

3
VishwasDhamale

スニペットがありません

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