在WordPress中创建自定义文章类型需要使用register_post_type()
函数。以下是一个基本的步骤和示例代码,说明如何使用register_post_type()
来创建一个自定义文章类型。
-
确定自定义文章类型的名称和标签:
- 名称(singular):通常是一个单词,比如 "book"。
- 标签(plural):通常也是单词的复数形式,比如 "books"。
-
设置参数:
labels
:定义文章类型在后台显示的标签。public
:是否让文章类型公开。has_archive
:是否为该文章类型创建存档页面。- 其他参数,如
supports
、menu_position
等。
-
使用
register_post_type()
函数:- 在主题的
functions.php
文件中或者在插件的PHP文件中添加代码。
- 在主题的
以下是一个示例代码,它创建了一个名为“Book”的自定义文章类型:
function create_book_post_type() {
// 设置标签
$labels = array(
'name' => _x('Books', 'Post Type General Name', 'textdomain'),
'singular_name' => _x('Book', 'Post Type Singular Name', 'textdomain'),
'menu_name' => __('Books', 'textdomain'),
'name_admin_bar' => __('Book', 'textdomain'),
'archives' => __('Book Archives', 'textdomain'),
'attributes' => __('Book Attributes', 'textdomain'),
'parent_item_colon' => __('Parent Book:', 'textdomain'),
'all_items' => __('All Books', 'textdomain'),
'add_new_item' => __('Add New Book', 'textdomain'),
'add_new' => __('Add New', 'textdomain'),
'new_item' => __('New Book', 'textdomain'),
'edit_item' => __('Edit Book', 'textdomain'),
'update_item' => __('Update Book', 'textdomain'),
'view_item' => __('View Book', 'textdomain'),
'view_items' => __('View Books', 'textdomain'),
'search_items' => __('Search Book', 'textdomain'),
'not_found' => __('Not found', 'textdomain'),
'not_found_in_trash' => __('Not found in Trash', 'textdomain'),
'featured_image' => __('Featured Image', 'textdomain'),
'set_featured_image' => __('Set featured image', 'textdomain'),
'remove_featured_image' => __('Remove featured image', 'textdomain'),
'use_featured_image' => __('Use as featured image', 'textdomain'),
'insert_into_item' => __('Insert into book', 'textdomain'),
'uploaded_to_this_item' => __('Uploaded to this book', 'textdomain'),
'items_list' => __('Books list', 'textdomain'),
'items_list_navigation' => __('Books list navigation', 'textdomain'),
'filter_items_list' => __('Filter books list', 'textdomain'),
);
// 设置参数
$args = array(
'label' => __('Book', 'textdomain'),
'description' => __('Book custom post type', 'textdomain'),
'labels' => $labels,
'supports' => array('title', 'editor', 'thumbnail', 'revisions', 'custom-fields'),
'taxonomies' => array('category', 'post_tag'),
'hierarchical' => false,
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'menu_position' => 5,
'show_in_admin_bar' => true,
'show_in_nav_menus' => true,
'can_export' => true,
'has_archive' => true,
'exclude_from_search' => false,
'publicly_queryable' => true,
'capability_type' => 'post',
);
// 注册文章类型
register_post_type('book', $args);
}
// 当初始化钩子被触发时,调用create_book_post_type函数
add_action('init', 'create_book_post_type', 0);
在上面的代码中,我们定义了一个名为create_book_post_type
的函数,该函数在WordPress的init
钩子被触发时调用。在这个函数中,我们定义了自定义文章类型的标签和参数,并使用register_post_type()
函数注册了名为"book"的文章类型。
确保将上述代码添加到你的主题的functions.php
文件或者你的插件文件中,然后访问WordPress管理后台,你应该能看到一个新的"Books"菜单项,可以