🆕 Bricks 2.4 已发布:查询循环性能提升 40%,迁移教程同步更新 →

首页 / 中文教程 / 教程

Bricks 产品列表模板怎么建?(自定义内容类型 CPT)

教程:用 Bricks Template 给自定义内容类型(如 Products)建列表模板,Query Loop 继承主查询,分类、分页一次搞定。

Ray ChanRay Chan·2026-08-15·约 2 分钟
目录
  1. 1.现象:自定义文章类型没有好看的列表页
  2. 2.根因:CPT 归档也是 Archive 模板,条件指向它即可
  3. 3.步骤:建并发布 CPT 列表模板
  4. 4.卡片与分页 + 常见坑
  5. 5.小结

现象:自定义文章类型没有好看的列表页

用 CPT UI 或代码注册了一个自定义内容类型(比如 products,专门放产品案例),但前台访问 /products/ 或它的分类页,出来的还是默认样式——没有缩略图墙,没有筛选,逼死强迫症。原因是:CPT 的归档页也是“归档”,但你没有给它做模板。

根因:CPT 归档也是 Archive 模板,条件指向它即可

自定义内容类型的归档页和文章归档是同一类东西,都用 Archive 模板类型接管。区别只在条件:文章归档的条件是 Post Type Archive → Post,你的 CPT 归档条件就是 Post Type Archive → products(换成你的 CPT slug)。一套 Archive 模板 + 指向 CPT 的条件,列表页就归你管了。

步骤:建并发布 CPT 列表模板

前置:CPT 已注册且有数据。没注册的话,先用 CPT UI 建一个,或参考下面的注册代码:

// functions.php 里注册一个 products 内容类型(示意)
add_action( 'init', function() {
    register_post_type( 'products', [
        'label'        => '产品',
        'public'       => true,
        'has_archive'  => true,      // 开启归档页 /products/
        'supports'     => [ 'title', 'editor', 'thumbnail', 'excerpt' ],
        'rewrite'      => [ 'slug' => 'products' ],
    ] );
} );

然后:

  1. 后台 Bricks → Templates → 新建模板,类型选 Archive,起名 Products Archive
  2. 条件:Template Conditions → Post Type Archive → products(slug 必须和注册的一致)。
  3. 进编辑器:页头标题区(动态数据取归档标题),主体拖 Container 打开 Query Loop,查询来源选 Main Query——让它继承当前 CPT 归档的查询(分类筛选、分页参数都在里面)。
  4. 循环内卡片:封面({featured_image})、标题({post_title} 链接 {post_permalink})、摘要({post_excerpt})。
  5. 循环外放 Pagination,保存并发布。

卡片与分页 + 常见坑

  • 卡片用 Grid 布局做响应式(桌面 3 列 / 平板 2 / 手机 1),图片设固定宽高比,避免参差不齐。
  • 没分类页 → 注册 CPT 时没挂分类法,给 CPT 加一个 taxonomy(CPT UI 里 attach taxonomy)再建归档条件。
  • 列表页 404 / 打不开 → CPT 注册时 has_archive 没开,或没去“固定链接”设置里保存刷新一次。
  • 分类筛选失效 → 循环用了自定义 Posts 查询而不是 Main Query,改回来。
  • 想在卡片里用 ACF 字段(比如型号、材质)→ 卡片里加 Text 元素绑 ACF 字段动态数据,写法按官方文档补全。

常见误区

  • slug 必须一致:模板条件里的 CPT slug(products)必须和注册时一致,大小写、拼写差一个都对不上。
  • 没分类页:注册 CPT 时没挂分类法(taxonomy),前台就没有 /products/category/ 这类页面;用 CPT UI 给 CPT attach 一个分类法即可。
  • 列表 404 / 打不开has_archive 没开,或注册后没去「固定链接」设置页保存一次刷新重写规则。
  • 卡片想放 ACF 字段:卡片里加 Text 元素绑 ACF 动态数据(写法按官方文档补全),型号、材质这类信息就都能上卡片。

小结

CPT 列表 = Archive 模板 + 条件 Post Type Archive 指向 CPT slug + Query Loop 用 Main Query + 卡片 + 分页。注册了 CPT 就顺手建一个,前台列表立刻专业。

产品案例库、型号库这类 CPT 想做得更全(详情页 + 筛选)?联系 Ray Chan,帮你把 CPT 模板体系搭完整。

常见问题(FAQ)

Q:CPT 列表页用什么模板类型? A:Archive 模板,条件设 Post Type Archive → 你的 CPT slug(如 products)。

Q:/products/ 访问 404? A:注册 CPT 时 has_archive 没开,或注册后没去「固定链接」设置页保存刷新一次。

Q:为什么没有分类页? A:注册 CPT 时没挂分类法,用 CPT UI 给 CPT attach 一个 taxonomy 再建归档条件。

Q:列表用哪种查询来源? A:Main Query(主查询),让它继承当前 CPT 归档的查询,分类筛选和分页参数都在里面。

Q:卡片能显示 ACF 字段吗? A:能,卡片里加 Text 元素绑 ACF 动态数据(写法按官方文档补全)。


Ray Chan

站长

Ray Chan

WordPress Developer & Bricks Specialist

WordPress developer with 10+ years of client builds. Switched to Bricks in 2023 — now builds fast WordPress sites and migrates legacy Elementor/Divi projects.

延伸阅读