有多个自定义帖子类型

时间:2013-10-31 09:28:19

标签: php wordpress themes wordpress-theming custom-post-type

我正在构建一个WordPress主题,并希望添加自定义帖子类型。我在网上看,但似乎无法找到答案。

现在我在functions.php中有了这段代码

add_action( 'init', 'register_cpt_tutorial' );

function register_cpt_tutorial() {

$labels = array( 
    'name' => _x( 'Tutorials', 'tutorial' ),
    'singular_name' => _x( 'Tutorial', 'tutorial' ),
    'add_new' => _x( 'Add New', 'tutorial' ),
    'add_new_item' => _x( 'Add New Tutorial', 'tutorial' ),
    'edit_item' => _x( 'Edit Tutorial', 'tutorial' ),
    'new_item' => _x( 'New Tutorial', 'tutorial' ),
    'view_item' => _x( 'View Tutorial', 'tutorial' ),
    'search_items' => _x( 'Search Tutorials', 'tutorial' ),
    'not_found' => _x( 'No tutorials found', 'tutorial' ),
    'not_found_in_trash' => _x( 'No tutorials found in Trash', 'tutorial' ),
    'parent_item_colon' => _x( 'Parent Tutorial:', 'tutorial' ),
    'menu_name' => _x( 'Tutorials', 'tutorial' ),
);

$args = array( 
    'labels' => $labels,
    'hierarchical' => false,
    'description' => 'Tutorials description will be here',
    'supports' => array( 'title', 'editor', 'thumbnail', 'comments' ),
    'taxonomies' => array( 'category' ),
    'public' => true,
    'show_ui' => true,
    'show_in_menu' => true,
    '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( 'tutorial', $args );
}

如果我复制并通过此代码并将“教程”更改为“视频”,则不会生成第二个帖子类型。有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

我建议使用WP插件自定义帖子类型UI

http://wordpress.org/plugins/custom-post-type-ui/

但是如果你想使用代码,试试这个:

add_action( 'init', 'register_cpt_tutorial' );

function register_cpt_tutorial() {

$labels = array( 
    'name' => _x( 'Tutorials', 'tutorial' ),
    'singular_name' => _x( 'Tutorial', 'tutorial' ),
    'add_new' => _x( 'Add New', 'tutorial' ),
    'add_new_item' => _x( 'Add New Tutorial', 'tutorial' ),
    'edit_item' => _x( 'Edit Tutorial', 'tutorial' ),
    'new_item' => _x( 'New Tutorial', 'tutorial' ),
    'view_item' => _x( 'View Tutorial', 'tutorial' ),
    'search_items' => _x( 'Search Tutorials', 'tutorial' ),
    'not_found' => _x( 'No tutorials found', 'tutorial' ),
    'not_found_in_trash' => _x( 'No tutorials found in Trash', 'tutorial' ),
    'parent_item_colon' => _x( 'Parent Tutorial:', 'tutorial' ),
    'menu_name' => _x( 'Tutorials', 'tutorial' ),
);

$args = array( 
    'labels' => $labels,
    'hierarchical' => false,
    'description' => 'Tutorials description will be here',
    'supports' => array( 'title', 'editor', 'thumbnail', 'comments' ),
    'taxonomies' => array( 'category' ),
    'public' => true,
    'show_ui' => true,
    'show_in_menu' => true,
    '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'
);
// ----- Second post type
$labels2 = array( 
    'name' => _x( 'video', 'video' ),
    'singular_name' => _x( 'video', 'video' ),
    'add_new' => _x( 'Add New', 'video' ),
    'add_new_item' => _x( 'Add New video', 'video' ),
    'edit_item' => _x( 'Edit video', 'video' ),
    'new_item' => _x( 'New video', 'video' ),
    'view_item' => _x( 'View video', 'video' ),
    'search_items' => _x( 'Search video', 'video' ),
    'not_found' => _x( 'No video found', 'video' ),
    'not_found_in_trash' => _x( 'No video found in Trash', 'video' ),
    'parent_item_colon' => _x( 'Parent video:', 'tutorial' ),
    'menu_name' => _x( 'video', 'video' ),
);

$args2 = array( 
    'labels' => $labels2,
    'hierarchical' => false,
    'description' => 'Tutorials description will be here',
    'supports' => array( 'title', 'editor', 'thumbnail', 'comments' ),
    'taxonomies' => array( 'category' ),
    'public' => true,
    'show_ui' => true,
    'show_in_menu' => true,
    '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( 'tutorial', $args );
register_post_type( 'video', $args2 );
}

注意$ args的变化 - $ args2和$ labels - $ labels2