在中创建自定义帖子类型的最简单方法WordPress
是通过使用插件。建议初学者使用此方法,因为它安全且简单。
例如:Custom Post Type UI
使用插件的问题是,当插件停用时,您的自定义帖子类型将消失。您可以通过在主题的functions.php
文件
// Our custom post type function
function create_posttype() {
register_post_type( \'events\',
// CPT Options
array(
\'labels\' => array(
\'name\' => __( \'Event\' ),
\'singular_name\' => __( \'Event\' )
),
\'public\' => true,
\'has_archive\' => true,
\'rewrite\' => array(\'slug\' => \'events\'),
)
);
}
// Hooking up our function to theme setup
add_action( \'init\', \'create_posttype\' );
它使用参数数组注册post类型“events”。这些参数是自定义post类型的选项。这个数组有两部分,第一部分是标签,它本身就是一个数组。第二部分包含其他参数,如public visibility、has archive和slug。
/*
* Creating a function to create Custom post type
*/
function custom_post_type() {
// Set UI labels for Custom Post Type
$labels = array(
\'name\' => _x( \'Events\', \'Post Type General Name\', \'twentythirteen\' ),
\'singular_name\' => _x( \'Event\', \'Post Type Singular Name\', \'twentythirteen\' ),
\'menu_name\' => __( \'Events\', \'twentythirteen\' ),
\'parent_item_colon\' => __( \'Parent Event\', \'twentythirteen\' ),
\'all_items\' => __( \'All Events\', \'twentythirteen\' ),
\'view_item\' => __( \'View Event\', \'twentythirteen\' ),
\'add_new_item\' => __( \'Add New Event\', \'twentythirteen\' ),
\'add_new\' => __( \'Add New\', \'twentythirteen\' ),
\'edit_item\' => __( \'Edit Event\', \'twentythirteen\' ),
\'update_item\' => __( \'Update Event\', \'twentythirteen\' ),
\'search_items\' => __( \'Search Event\', \'twentythirteen\' ),
\'not_found\' => __( \'Not Found\', \'twentythirteen\' ),
\'not_found_in_trash\' => __( \'Not found in Trash\', \'twentythirteen\' ),
);
// Set other options for Custom Post Type
$args = array(
\'label\' => __( \'events\', \'twentythirteen\' ),
\'description\' => __( \'Event news and reviews\', \'twentythirteen\' ),
\'labels\' => $labels,
// Features this CPT supports in Post Editor
\'supports\' => array( \'title\', \'editor\', \'excerpt\', \'author\', \'thumbnail\', \'comments\', \'revisions\', \'custom-fields\', ),
// You can associate this CPT with a taxonomy or custom taxonomy.
\'taxonomies\' => array( \'types\' ),
/* A hierarchical CPT is like Pages and can have
* Parent and child items. A non-hierarchical CPT
* is like Posts.
*/
\'hierarchical\' => false,
\'public\' => true,
\'show_ui\' => true,
\'show_in_menu\' => true,
\'show_in_nav_menus\' => true,
\'show_in_admin_bar\' => true,
\'menu_position\' => 5,
\'can_export\' => true,
\'has_archive\' => true,
\'exclude_from_search\' => false,
\'publicly_queryable\' => true,
\'capability_type\' => \'page\',
);
// Registering your Custom Post Type
register_post_type( \'events\', $args );
}
/* Hook into the \'init\' action so that the function
* Containing our post type registration is not
* unnecessarily executed.
*/
add_action( \'init\', \'custom_post_type\', 0 );