
您现在的位置是:首页 > WordPress教程WordPress教程
如何创建WordPress自定义文章类型?
WP集市
2025-08-22
【WordPress教程】
1537人已围观
咱玩WordPress的,天天跟文章、页面打交道,但有时候默认的“文章”根本不够用——比如你想做个产品展示页,总不能把产品信息全塞“文章”里吧?乱糟糟的,管理起来头大。这时候就得整“自定义文章类型”(Custom Post Type,CPT),说白了就是给内容建个专属“抽屉”,啥产品、案例、课程,各放各的,清爽!
第一步:搞懂“注册”——核心就一个函数
创建自定义文章类型,本质是告诉WordPress:“嘿,我要个新的内容类型,你给我留个位置!” 用啥告诉它?register_post_type()
函数,官方爸爸给的工具,直接拿来用。
举个栗子:咱要建个“产品”类型,代码这么写(扔到主题的functions.php
里,或者自定义插件里,听我的,插件稳,换主题不丢):
function create_product_cpt() {
$args = array(
'public' => true, // 必须设true,不然后台看不见,等于白搞
'labels' => array( // 各种显示文字,别用默认的,用户看不懂
'name' => '产品',
'singular_name' => '产品',
'add_new_item' => '添加新产品',
'edit_item' => '编辑产品',
),
'supports' => array('title', 'editor', 'thumbnail', 'excerpt'), // 支持标题、编辑器、缩略图、摘要
'has_archive' => true, // 开启列表页,比如 /product/ 能看到所有产品
'menu_icon' => 'dashicons-cart', // 后台菜单图标,dashicons库随便挑
);
register_post_type('product', $args); // 'product'是类型的slug,自己起个短的
}
add_action('init', 'create_product_cpt'); // 挂到init钩子上,WordPress启动时执行
代码看着长,其实就俩核心:$args
数组(告诉WordPress这类型啥样),register_post_type()
(正式注册)。labels
里的文字改改,让后台用户看得懂;supports
里想加啥功能加啥,比如要评论就加'comments'
,要自定义字段(后面可能用ACF)就不用管,先把基础功能开了。
第二步:模板!没模板咋显示?
注册完后台能看到“产品”菜单了,能发产品了,但前台咋看?得写模板文件啊!跟页面、文章一样,WordPress认模板文件名的。
比如产品列表页,新建个archive-product.php
(product
是你注册时的slug),里面扔个循环:
<?php get_header(); ?>
<div class="08e6-6b40-a037-f5ed content">
<h1>所有产品</h1>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<article>
<h2><?php the_title(); ?></h2>
<?php the_excerpt(); ?>
<a href="<?php the_permalink(); ?>">查看详情</a>
</article>
<?php endwhile; endif; ?>
</div>
<?php get_footer(); ?>
产品详情页呢?新建single-product.php
,跟上面差不多,把循环里的the_excerpt()
换成the_content()
就行。嫌麻烦?直接复制主题自带的archive.php
和single.php
改改文件名,里面内容替换成你要的字段——套娃嘛,谁不会!
第三步:分类!光有类型不够,还得分类
产品多了总得分类吧?默认的“分类”“标签”是给文章用的,咱得给自定义文章类型配专属分类法(taxonomy)。比如“产品分类”,用register_taxonomy()
函数,跟注册文章类型差不多:
function create_product_taxonomy() {
$args = array(
'label' => '产品分类',
'rewrite' => array('slug' => 'product-category'),
'hierarchical' => true, // true是分类(有层级),false是标签(没层级)
);
register_taxonomy('product_category', 'product', $args); // 关联到'product'类型
}
add_action('init', 'create_product_taxonomy');
注册完刷新后台,产品下面就多了“产品分类”菜单,跟文章分类用法一样。
踩坑提醒:这些坑我都踩过!
-
404了?刷新固定链接!
注册完别急着看前台,先去“设置→固定链接”,啥也别改,点“保存更改”——这步叫“刷新重写规则”,不然WordPress不认识新的URL结构,直接404,白急半天。 -
没缩略图?
supports
里加'thumbnail'
!
后台编辑产品时看不到“特色图片”?看看$args['supports']
里有没有'thumbnail'
,没有就加上,再去“设置→媒体”确认缩略图功能开了。 -
换主题没了?用插件或子主题!
代码写在父主题的functions.php
里,主题一更新,代码全没!要么用子主题,要么专门建个插件(就一个php文件,写注册代码,激活就行),稳得一批。
总结:自定义文章类型就是“内容抽屉”
说白了,自定义文章类型就是给不同内容建专属抽屉——产品放产品抽屉,案例放案例抽屉,管理起来不乱,前台显示也方便(模板单独设计)。小到个人博客的作品集,大到企业站的产品库,都能用。
动手试试?先建个“电影”类型,注册代码改改slug和labels,加个“电影分类”,写个模板显示电影名、评分、海报,玩起来!有问题翻WordPress Codex,但不用全看,先跑通流程,遇到具体问题再查细节,效率高。
行了,代码复制过去,刷新固定链接,开整!
Tags:
文章版权声明:除非注明,否则均为WP集市原创文章,转载或复制请以超链接形式并注明出处。

热门文章
