WordPress自定义文章类型是一种强大的功能,可让你创建独特且多样化的内容,本文将指导你完成整个流程:在WordPress后台的“文章”菜单中找到“自定义文章类型”,然后选择“添加新”,填写文章类型名称和标签,定义文章属性和分类目录,确保用户可以轻松地根据这些设置创建和编辑新内容,自定义文章类型还可用于菜单、归档和其他功能,从而提高网站的导航效率和用户体验。
要在WordPress中添加自定义文章类型,请按照以下步骤操作:
- 登录到WordPress管理面板。
- 在左侧菜单中,选择“外观”> “编辑器”> “自定义文章类型”。
- 点击页面右侧的“添加新”按钮以创建新的自定义文章类型。
- 输入文章类型的名称(会员专属内容、报道等)。
- 定义有关此自定义文章类型的信息:
- 标题:自定义文章类型的显示标题。
- 缩略图:可以上传一张图片作为此自定义文章类型的缩略图。
- 元数据:输入有关此自定义文章类型的相关信息,如描述、关键词等。
- 根据需要,为自定义文章类型定义字段组,分类法、标签等,要添加字段组,请点击“添加新字段组”按钮。
- 在“字段组名称”框中,输入字段组的名称(会员”类别)。
- 将所需的字段拖到“字段”区域以构建字段结构,可以创建新的字段,也可以使用现有的标准WordPress字段,标题、内容、作者等。
- 当你完成自定义文章类型的设计并添加所有所需的字段后,点击页面底部的“保存更改”按钮以保存新的自定义文章类型。
完成这些步骤后,你就成功添加了一个自定义文章类型,在WordPress管理面板中创建并发布一篇该类型的文章。
在WordPress网站开发中,自定义文章类型(Custom Post Type)是一项非常核心且实用的功能,默认情况下,WordPress提供了“文章”和“页面”两种内容类型,但在实际建站时,我们往往需要管理更丰富的内容,作品集”、“课程”、“评价”、“房源”、“活动”等,这时候,自定义文章类型就能帮我们把这些内容分门别类地管理起来,让后台更清晰,前台展示也更灵活。
WordPress如何添加自定义文章类型?一篇搞定全流程
本文将从零开始,手把手教你如何通过三种方式(通过functions.php、使用插件、在主题中集成)添加自定义文章类型,并讲解常用的参数与实战技巧。
最推荐的方法:通过 functions.php 添加(代码可控,无需插件)
对于大多数开发者来说,直接在子主题的 functions.php 文件中添加代码是最灵活、最干净的方式。
基础代码示例
以下代码将创建一个名为“书籍”(Book)的自定义文章类型:
function create_book_post_type() {
$args = array(
'public' => true, // 是否公开可见
'label' => '书籍', // 后台显示的名称
'supports' => array( 'title', 'editor', 'thumbnail', 'excerpt' ),
'menu_icon' => 'dashicons-book', // 菜单图标
'has_archive' => true, // 是否启用归档页
'rewrite' => array( 'slug' => 'books' ), // URL重写规则
);
register_post_type( 'book', $args );
}
add_action( 'init', 'create_book_post_type' );
常用参数详解
| 参数 | 作用 | 常用值 |
|---|---|---|
public |
是否公开可见 | true / false |
label |
后台菜单名称 | 字符串,如“作品” |
supports |
支持的编辑器功能 | title, editor, thumbnail, excerpt, comments, author |
menu_icon |
后台菜单图标 | Dashicons URL,如 dashicons-portfolio |
has_archive |
是否生成归档页(如 /books/) | true / false |
rewrite |
URL重写规则 | array('slug' => '自定义slug') |
show_in_rest |
是否支持古藤堡编辑器 | true / false(建议打开) |
完整的高级示例(带分类和标签)
function create_portfolio_post_type() {
$labels = array(
'name' => '作品集',
'singular_name' => '作品',
'add_new' => '添加作品',
'edit_item' => '编辑作品',
);
$args = array(
'labels' => $labels,
'public' => true,
'supports' => array( 'title', 'editor', 'thumbnail', 'custom-fields' ),
'menu_icon' => 'dashicons-format-gallery',
'has_archive' => true,
'rewrite' => array( 'slug' => 'portfolio' ),
'show_in_rest' => true,
'taxonomies' => array( 'category', 'post_tag' ), // 复用文章分类和标签
);
register_post_type( 'portfolio', $args );
}
add_action( 'init', 'create_portfolio_post_type' );
// 同时注册一个自定义分类法(如“作品类型”)
function create_portfolio_taxonomy() {
$args = array(
'label' => '作品类型',
'public' => true,
'hierarchical' => true, // 是否像分类一样有层级
'rewrite' => array( 'slug' => 'portfolio-type' ),
);
register_taxonomy( 'portfolio_type', 'portfolio', $args );
}
add_action( 'init', 'create_portfolio_taxonomy' );
最简单的方法:使用插件(适合非开发者)
如果你不熟悉代码,或者不想动主题文件,用插件是最快的方案,推荐以下几款:
- Custom Post Type UI —— 最老牌,功能强大,可视化操作
- Podss —— 不仅支持自定义文章类型,还能自定义字段
- JetEngine —— 高级版,适合复杂内容架构
插件操作流程大致为:
安装插件 → 进入后台“CPT UI” → 添加新文章类型 → 填写名称、标签、Slug等 → 保存即可。
优点:零代码,风险低,适合快速上线
缺点:插件多了会影响性能,且换主题后数据不丢失,但展示逻辑可能需要重新调整
在主题中集成(正式项目推荐做法)
如果你在开发一个面向多客户的商业主题,或者自己长期使用的主题,建议把自定义文章类型放在一个单独的插件或主题的Inc文件夹中,而不是直接写在主题的 functions.php 里,原因如下:
- 换主题后自定义文章类型不会丢失
- 代码结构更清晰,便于维护
做法示例(假设主题名为 mytheme):
- 在主题根目录创建
/inc/custom-post-type.php - 在该文件中粘贴上面提到的
create_book_post_type()函数 - 在
functions.php中引入:
require_once get_template_directory() . '/inc/custom-post-type.php';
添加后如何使用与展示
添加成功后,你会在后台左侧菜单看到新的文章类型,接下来可以:
点击“添加新”,正常编写标题与内容,就像写普通文章一样。
前台访问
- 单个页面:
https://你的域名/books/书籍名称/ - 归档页面:
https://你的域名/books/ - 可以创建一个
archive-book.php文件来自定义列表样式 - 可以创建一个
single-book.php文件来自定义详情页样式
在后台设置中显示
如果你想让自定义文章类型出现在“文章”列表中(大部分情况不需要),可以在 $args 里添加 'show_in_admin_all_list' => true。
常见问题与避坑指南
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 添加后菜单不显示 | 权限或参数问题 | 检查 public 是否为 true,并重新保存固定链接(设置 → 固定链接 → 保存) |
| 前台访问404 | 重写规则未刷新 | 进入“设置 → 固定链接”,点击“保存更改”(不需要修改任何选项) |
| 古藤堡编辑器不生效 | 未设置 show_in_rest |
在 $args 中添加 'show_in_rest' => true |
| 想添加多个文章类型 | 多次调用 register_post_type |
将每一个类型的注册代码放入独立的函数,挂载到 init |
WordPress如何添加自定义文章类型,本质上就是用一行 register_post_type() 函数告诉WordPress:“嘿,我又创建了一种内容”,你可以通过代码精准控制它的行为,也可以通过插件快速上手,掌握这个能力后,你就能把WordPress从一个单纯的博客系统,变成一个灵活的内容管理平台,无论是企业官网、个人作品集、还是在线课程平台,都能轻松驾驭。
如果你正在做一个具体的项目,可以结合自定义字段(ACF)和自定义分类法,构建出非常强大的内容结构,养成“代码优先,插件辅助”的习惯,会让你的WordPress开发之路越走越稳。
现在就动手试试吧!



还没有评论,来说两句吧...