你好,今天我想和你分享一下,我使用Crocoblock的JetEngine插件,把自定义内容类型(CCT)和自定义分类关联起来,并在前台展示数据的具体过程。整个过程就像搭积木,一步步来,其实并不复杂。
开始之前,你需要准备好这些
- 一个你习惯的页面编辑器:Elementor免费版、WordPress自带的区块编辑器(Gutenberg),或者Bricks都可以。我常用的是Elementor。
- 插件基础:确保你已经安装并激活了JetEngine插件,并且按照它的指引,提前创建好了你的自定义内容类型(比如“产品”)和自定义分类法(比如“产品分类”),这是所有操作的前提。
我的详细操作步骤
第一步:在JetEngine里建立两者关联
这步是关键,目的是告诉系统“产品”和“产品分类”是有关系的。进入后台,找到 JetEngine > Relations 这个菜单,点击“Add New”按钮。
- 给这个关系起个名字,然后设置父对象和子对象。举个例子,我的“产品”CCT是父对象,“产品分类”是子对象。
- 关联类型我通常选择“一对多”,因为一个产品可能属于多个产品分类。
- 在常规设置里,我一般会保持“为父/子对象注册控件”是开启状态,这样在后面编辑内容时会方便很多。

- 标签部分你可以修改后台按钮的文字,让它更符合你的习惯,我一般就用默认的。
- 元字段标签页——这里不是必须的,你可以为这个关联关系本身添加一些额外信息字段,比如“关联有效期”。我这次用不到,就先跳过了。
- 全部检查一遍,然后保存。这样,关系就建立好了。
第二步:为具体的产品选择分类
现在,我们需要去具体的产品页面里,为他勾选对应的分类。

- 进入你创建的产品管理列表(通常在后台左侧菜单能找到),编辑某一个项目。
- 在编辑页面往下拉,你会看到多出来一个关联设置区域,点击那里的“关联 …”按钮(按钮文字会根据你之前设置的标签变化)。
- 在弹出的选项里,选择这个项目对应的“产品分类”,然后确认连接。
- 如果你第一步里为关联添加了元字段(比如“有效期”),那么在这里可以填写具体值,填好后记得点“保存元数据”。
- 最后,别忘了点击更新或发布按钮,保存这个产品。
- 重复这个操作,为你所有需要分类的产品设置分类。
第三步:创建两个“展示列表”
数据关联好了,现在我们要设计前台怎么展示,这里需要创建两个列表模板(Listing)。
- 首先,创建“产品分类”的Listing:
- 进入 JetEngine > Listing/Components。
- 点击“添加新项目”,在弹窗里,数据源选择“Terms”,然后在下拉框里选中你创建的“产品分类”。
- 为Listing起个名字,并选择你用的编辑器,比如Elementor。
- 点击创建,就会打开对应的编辑器。

- 接着,创建“产品”CCT的列表,具体可查看教程:JetEngine – 为自定义内容类型创建列表模板。
在不同编辑器里设计列表的要点:
如果你用Elementor:
- 在刚才创建的“产品分类”列表模板里:拖入一个动态字段(dynamic field)小部件,设置它的源为“文章/术语/用户/对象数据”(即:默认选项),对象字段选“术语名称/term name”,这样就能显示分类名称了。

- 在“产品”列表模板里:用动态图像、动态字段等小部件,把产品的图片、标题等信息摆好。
- 关键一步:把产品的分类也展示出来。从Elementor小部件里找到列表网格,拖进来,在它的设置里选择你刚才创建的“产品分类”列表。但这时你会发现可能不显示内容,因为我们还没告诉它“只显示当前产品的等级”。

所以,我们需要构建一个自定义查询:
去 JetEngine > Query Builder,新建一个查询,类型选“Terms Query”。

在Terms Query栏目的General的设置中,将taxonomy选择之前创建的从产品分类。

在包含/排除设置里,点“动态标签”按钮,在包含字段里选择“相关项目/Related Items”这个宏。
然后,在下面选择你第一步创建的关联关系,来源对象选“子对象/Child Object”,初始对象ID来源选“当前对象ID”/Current Object ID。这串设置的意思就是:“只找出和当前这个产品相关联的那些分类”。

保存这个Query。
最后,回到Elementor里产品的列表网格(Listing Grid)小部件的设置,找到自定义查询(Custom Query)选项,开启它,并选择你刚建好的那个Query。现在,预览一下,应该就能正确显示每个产品对应的分类了。

设计满意后,分别发布这两个列表模板(Listing)。
如果你用区块编辑器 (Gutenberg):
思路完全一样,只是操作换成了Gutenberg的区块。同样需要创建两个列表模板,并使用同样的自定义查询来关联数据。JetEngine为Gutenberg也提供了对应的动态字段块和列表网格块。
如果你用Bricks Builder:
操作逻辑是相通的。你需要参考Bricks相关的教程来创建列表模板,核心同样是确保创建了两个列表,并且在显示术语的那个列表里,应用我们上面构建好的那个自定义查询。
第四步:把产品列表放到页面上
列表模板设计好了,现在该让访客看到了。
- 在WordPress里新建一个页面,或者编辑一个现有页面。
- 用你熟悉的编辑器(Elementor/Gutenberg/Bricks),找到列表网格这个元素(或区块、小部件),把它拖到页面上。
- 在这个元素的设置里,选择你创建的“产品”列表作为数据源。
- 发布这个页面。

第五步:检查成果
打开你刚发布的那个页面,看看产品列表是否正常显示,每个产品下面是否正确地展示了他所属的“分类”,没问题的话,整个流程就完成了!

总结一下,整个过程就是从建立逻辑关系(关联),到填充具体数据(编辑CCT项目),再到设计展示界面(创建列表模板和查询),最后发布页面。希望我的这份经验梳理能帮你更顺畅地完成这个功能。(๑•̀ㅂ•́)و✧