WordPress中默认的文章类型是Post,如果现在我们想做一个在线商城或者一个电子书的主题,那么我们再使用Post作为我们的默认文章类型就有点不太合适了。我们这里以想做一个电子书主题为例,我们需要先新增一个book的文章类型,用于管理每一本书。

那么该如何在WordPress中新增这种自定义文章类型呢?

这里以新增book文章类型为例,我们需要在主题的functions.php中加入以下代码

/*
 * 注册自定义文章类型book
 */
function custom_post_type_book() {
    $labels = array(
        'name' => 'Books', // 文章类型的名称
        'singular_name' => 'Book', // 文章类型的单数名称
        'menu_name' => '书籍', // 后台菜单显示的名称
        'add_new' => '添加新书籍', // 添加新文章按钮的文本
        'add_new_item' => 'Add New Book', // 添加新文章的页面标题
        'edit_item' => '编辑书籍', // 编辑文章的页面标题
        'new_item' => 'New Book', // 添加新文章的按钮文本
        'view_item' => 'View Book', // 查看文章的链接文本
        'view_items' => 'View Books', // 文章类型页面左侧菜单链接的文本
        'search_items' => 'Search Books', // 搜索文章的文本
        'not_found' => 'No books found', // 没有找到文章时的提示文本
        'not_found_in_trash' => 'No books found in Trash', // 垃圾箱中没有找到文章时的提示文本
        'parent_item_colon'  => 'Parent Book:',
        'all_items'          => '所有书籍',
        'archives'           => 'Book Archives',
        'insert_into_item'   => 'Insert into book',
        'uploaded_to_this_item' => 'Uploaded to this book',
        'featured_image'        => 'Book Cover',
        'set_featured_image'    => 'Set book cover',
        'remove_featured_image' => 'Remove book cover',
        'use_featured_image'    => 'Use as book cover',
        'filter_items_list'     => 'Filter books list',
        'items_list_navigation' => 'Books list navigation',
        'items_list'            => 'Books list',
    );

    $args = array(
        'labels' => $labels,
        'public' => true,
        'has_archive' => true,
        'supports' => array('title', 'editor', 'thumbnail', 'tags', 'categories', 'taxonomies'), // 自定义文章类型支持的字段
        'rewrite' => array('slug' => 'books'), // 自定义文章类型的URL重写规则
        'taxonomies' => array( 'category', 'post_tag' ),
    );

    register_post_type('book', $args);
}
add_action('init', 'custom_post_type_book');

然后刷新主题后台就可以看到book的新增菜单了。