Decentralization? We're still early!
返回課程

主权个人的WordPress入门课

0%完成
0/0 Steps
  1. 第一部分 WordPress基础知识入门

    WordPress:内容创作者的知识输出及展示利器
  2. WordPress的开源生态:开源软件运动、GPL协议与AI赋能
  3. WordPress的软件版本、路线图与社区文化
  4. 值得关注的WordPress信息源与常用工具
  5. 五分钟安装指南、主题插件与备份还原方法
  6. 第二部分 WordPress与本地知识管理
    如何在本地电脑/服务器快速部署WordPress站点
  7. 最强CMS:WordPress的文件结构、前端与后端
  8. 学习使用Gutenberg编辑器进行内容创作和排版
  9. 学习使用全站编辑主题(FSE)进行站点设计
  10. 自定义文章类型:WordPress的基础功能及其拓展
  11. 第三部分 如何在云端部署WordPress
    云端部署WordPress的方法:选购虚拟主机或VPS
  12. 如何实现WordPress站点的自动化部署
  13. 如何优化Linux服务器设置实现安全加固
  14. 如何压缩WordPress站点图片并设置CDN
  15. 第四部分 WordPress的维护优化与安全加固
    WordPress数据管理:学习导入导出数据、清理冗余数据
  16. 动态数据调取优化:为WordPress站点添加配置Redis缓存
  17. 页面速度优化:为WordPress站点添加配置fastcgi缓存
  18. 优化WordPress的安全设置,实现站点的安全加固
  19. 第五部分 WordPress主题及插件进阶研究
    WordPress主题的选择与站点设计基础知识
  20. 善用WordPress插件:优秀插件推荐及其使用
  21. 学习使用Kadence Blocks优化页面设计
  22. 学习使用Jetengine为WordPress创建管理动态内容
  23. 学习使用LearnDash创建 WordPress 学习管理系统
  24. 学习使用Woocommerce创建网上商店
  25. 第六部分 内容创作者的WordPress:迈向Web3
    如何通过WordPress打造个人品牌:一个简易指南
  26. AI时代的内容创作:文章配图与音视频版本生成
  27. 如何使用JPG Store铸造基于Cardano链的NFT
  28. 为WordPress添加比特币收款和比特币支付网关
  29. 为WordPress添加Cardano支付网关和Cardano钱包登录
  30. 为WordPress添加以太坊支付网关和以太坊钱包登录
  31. WordPress用户管理与会员管理、内容门控
  32. 第七部分 WordPress汉化与设计优化
    WordPress主题、插件的汉化:Poedit 使用教程
  33. 为WordPress站点添加自定义字体、繁简体转换、多语言
  34. 如何通过调整CSS美化WordPress站点细节
  35. 如何开发自定义插件完善WordPress功能
  36. WordPress的功能扩展:FSE与Interactivity API
  37. 第八部分 AI时代的WordPress实践
    AI赋能WordPress开发:技术实践与未来展望
  38. Trilium RSS Digest 插件使用教程
  39. Cardano NFT Minter 插件使用教程
  40. Trilium AI Design 插件使用教程
課 22 的 40
In Progress

学习使用Jetengine为WordPress创建管理动态内容

Brave 2024-01-22

WordPress 是世界上最流行的网站平台,它拥有强大的功能和灵活的扩展性。但是,如果你想用 WordPress 创建和管理一些动态的内容,如会员目录、房产数据库、课程表等,你可能会遇到一些困难和限制。例如,WordPress 自带的文章类型和分类法可能不足以满足你的需求,你可能需要使用一些代码或插件来创建和管理自定义的内容类型和字段。你也可能需要使用一些复杂的代码或插件来创建和显示自定义的查询和过滤器,来展示你的动态内容。你还可能需要使用一些额外的插件来创建和处理自定义的表单,来收集和处理你的动态内容的数据。

传统解决方案的痛点:

痛点传统方式存在问题
创建自定义文章类型手写代码或使用多个插件组合需要编程知识,插件之间可能冲突
添加自定义字段ACF、Meta Box 等插件需要额外学习,功能分散
前端展示修改主题模板文件需要 PHP 知识,更新主题可能丢失修改
数据查询与过滤编写 WP_Query 代码复杂且容易出错
表单处理需要额外的表单插件增加网站负担,数据不互通

那么,有没有一种方法,可以让你在 WordPress 中轻松地创建和管理任何类型的动态内容,而不需要任何编码技能或额外的插件呢?答案是有的,那就是 JetEngine


🔧 什么是 JetEngine

JetEngine 是由 Crocoblock 团队开发的一款功能强大的 WordPress 动态内容管理插件,它是 Crocoblock 插件套件中的核心产品之一。 需要特别说明的是,JetEngine 是一款付费插件,用户需要购买 Crocoblock 的订阅计划才能使用。Crocoblock 提供多种订阅方案,包括单个插件购买和全套插件订阅,用户可以根据自己的需求选择合适的方案。

JetEngine 的核心定位是"一站式动态内容解决方案",它可以让你在古腾堡编辑器(Gutenberg)以及 Elementor 页面构建器中使用可视化的界面来创建和管理动态内容。无论是自定义文章类型、自定义内容类型、自定义字段、自定义表单、自定义查询等,都可以在一个插件中轻松完成。

JetEngine 与其他同类工具的对比:

功能JetEngineACF + CPT UIToolsetPods
自定义文章类型✅ (需两个插件)
自定义字段
前端展示模板✅ 内置❌ 需额外方案❌ 需额外方案
动态查询构建器✅ 可视化❌ 需代码❌ 需代码
表单功能✅ 内置❌ 需额外插件❌ 需额外插件
关系字段✅ 高级✅ 基础
与页面构建器集成✅ 深度集成⚠️ 有限⚠️ 有限⚠️ 有限

JetEngine 不仅提供了更多的动态内容的类型和选项,而且还提供了更直观和更易用的操作方式,让你可以在古腾堡编辑器中添加和编辑动态内容,而不需要切换到文本模式或预览模式。JetEngine 还提供了更高的兼容性和可扩展性,你可以通过安装Crocoblock 生态系统中的其他插件(如 JetSmartFilters、JetBooking、JetFormBuilder 等)来增加更多的动态内容的功能,或者通过编写代码来创建你自己的动态内容,而不需要担心与其他插件或主题的冲突。


⭐ JetEngine 的核心特点与优势

📦 一、多样化的动态内容类型

JetEngine 提供了多种动态内容的类型,让你可以根据你的需求来创建和管理你的动态内容。理解这三种内容类型的区别是使用 JetEngine 的基础,选择正确的类型将直接影响你的网站性能和开发效率。


1️⃣ 自定义文章类型(Custom Post Type, CPT)

这是 WordPress 的默认的动态内容的类型,它可以让你创建和管理一些特定的内容,如产品、服务、项目等。你可以为自定义文章类型添加自定义的字段、分类法、元框、选项页等,来扩展和优化你的内容。

🎯 适用场景:

  • 需要在前端展示的内容,如:产品展示、团队成员、作品案例、房产列表、课程目录等
  • 需要 SEO 优化的内容(每个条目都有独立的 URL 和页面)
  • 需要使用 WordPress 原生功能的内容(如评论、修订历史、特色图片等)

⚙️ 技术特点:

  • 数据存储在 WordPress 原生的 wp_postswp_postmeta 表中
  • 完全兼容 WordPress 的所有原生功能(REST API、修订版本、预览等)
  • 可以与 WordPress 的固定链接系统无缝集成
  • 支持古腾堡编辑器进行内容编辑

📝 创建 CPT 时的关键设置:

  • Post Type Slug:URL 中显示的标识符,建议使用小写英文和连字符
  • Menu Position:在后台菜单中的位置
  • Supports:选择支持的功能(标题、编辑器、缩略图、摘要等)
  • Has Archive:是否创建归档页面

2️⃣ 自定义内容类型(Custom Content Type, CCT)

这是 JetEngine 的独特的动态内容的类型,它可以让你创建和管理一些不需要显示在前端的内容,如会员、订单、预约等。你可以为自定义内容类型添加自定义的字段、元框、选项页等,来存储和管理你的内容。你也可以通过自定义的查询和列表来显示你的内容,或者通过自定义的表单来收集和处理你的内容的数据。

🎯 适用场景:

  • 后台管理型数据:如会员信息、内部订单记录、员工考勤等
  • 不需要独立 URL 的数据:如配置项、临时数据、日志记录等
  • 高性能需求场景:当你有大量数据(数万条以上)需要快速查询时
  • 前端用户提交的数据:如用户反馈、预约申请、表单提交记录等

⚙️ 技术特点:

  • 数据存储在独立的自定义数据库表中,而非 WordPress 的 wp_posts 表
  • 查询性能更优:对于大数据量场景,查询速度明显快于 CPT
  • 不占用 Post ID:不会导致 WordPress 的自增 ID 快速增长
  • 更轻量:不加载 WordPress 文章的额外功能,内存占用更少
  • 注意:CCT 不支持古腾堡编辑器,只能使用 JetEngine 的字段编辑界面

💡 CPT vs CCT 如何选择?

考虑因素选择 CPT选择 CCT
是否需要独立页面和 URL?✅ 需要❌ 不需要
是否需要 SEO?✅ 需要❌ 不需要
数据量大小?中小型(<5000条)大型(>5000条)
是否需要古腾堡编辑?✅ 需要❌ 不需要
是否需要 REST API?✅ 原生支持⚠️ 需额外配置

3️⃣ 自定义表(Custom Database Tables)

这是 JetEngine 的另一个独特的动态内容的类型,它可以让你创建和管理一些需要以表格的形式存储和展示的内容,如价格表、库存表、统计表等。你可以为自定义表添加自定义的列、索引、关系等,来组织和优化你的内容。你也可以通过自定义的查询和列表来显示你的内容,或者通过自定义的表单来收集和处理你的内容的数据。

🎯 适用场景:

  • 纯数据存储:如价格表、库存记录、日志数据、API 缓存数据等
  • 与外部系统集成:当你需要存储来自第三方 API 的数据时
  • 复杂数据关系:需要使用 SQL JOIN 进行复杂查询的场景
  • 数据迁移场景:从其他系统迁移数据到 WordPress

⚙️ 技术特点:

  • 创建完全独立的 MySQL 数据表
  • 支持设置索引以优化查询性能
  • 可以使用原生 SQL 查询
  • 最大程度的灵活性和性能控制

⚠️ 注意事项:

  • 需要一定的数据库知识才能充分利用
  • 与 WordPress 原生功能的集成需要额外开发
  • 备份和迁移时需要特别注意这些自定义表

🎛️ 二、丰富的动态功能与控制

JetEngine 提供了丰富的设置和控制,让你可以调整每个动态内容的外观和功能。


🏷️ 动态标签(Dynamic Tags)

这是 JetEngine 的核心功能之一,它可以让你在古腾堡编辑器中动态地插入你的动态内容的数据,如字段值、元数据、选项值等。你可以使用动态标签来显示你的动态内容的标题、内容、图片、链接、按钮等,而不需要使用任何代码或短代码。

动态标签的工作原理是将占位符替换为实际数据。 例如,当你在模板中使用动态标签 {post_title} 时,JetEngine 会在页面渲染时自动将其替换为当前文章的标题。

常用动态标签示例:

  • {post_title} - 文章标题
  • {post_content} - 文章内容
  • {post_thumbnail} - 特色图片
  • {field_name} - 自定义字段值(将 field_name 替换为实际字段名)
  • {current_user_name} - 当前登录用户名

🔢 动态函数(Dynamic Functions)

这是 JetEngine 的另一个核心功能之一,它可以让你在古腾堡编辑器中动态地执行一些函数,如计算、转换、格式化等。你可以使用动态函数来处理你的动态内容的数据,如求和、平均、百分比、日期、货币等,而不需要使用任何代码或短代码。

内置动态函数类型:

函数类型功能说明使用示例
数学计算加减乘除、求和、平均值、最大/最小值计算商品总价、统计平均评分
日期处理日期格式化、日期差计算、相对时间显示"3天前发布"、计算活动倒计时
字符串处理截取、替换、大小写转换、字数统计生成摘要、格式化显示
条件判断IF/ELSE 逻辑、空值检查根据库存显示不同状态
数据格式化货币格式、数字格式、百分比价格显示为 ¥1,234.00

👁️ 动态可见性(Dynamic Visibility)

这是 JetEngine 的一个高级功能,它可以让你根据一些条件,来控制你的动态内容的可见性,如字段值、用户角色、设备类型、时间范围等。你可以使用动态可见性来隐藏或显示你的动态内容的部分或全部,以实现一些特定的效果或功能,如会员限制、促销活动、倒计时等。

可用的可见性条件类型:

  • 用户相关:登录状态、用户角色、用户 ID、用户元数据
  • 内容相关:字段值、文章状态、分类、标签
  • 时间相关:日期范围、星期几、时间段
  • 设备相关:桌面端、平板、手机
  • URL 相关:查询参数、Referrer、Cookie

实际应用案例:

场景:VIP 会员专属内容
条件:用户角色 = "vip_member" 或 用户元数据 "membership_level" >= 2
效果:只有符合条件的用户能看到特定内容区块

📐 动态宏(Macros)

这是 JetEngine 的一个辅助功能,它可以让你在古腾堡编辑器中使用一些预定义的变量,如当前日期、当前用户、当前页面等。你可以使用动态宏来显示一些动态的信息,如欢迎语、导航栏、面包屑等,而不需要使用任何代码或短代码。

宏与动态标签的区别:

  • 动态标签:获取特定内容的数据(如某篇文章的标题)
  • :获取上下文相关的通用信息(如当前 URL、当前时间)

常用宏示例:

  • %current_user_id% - 当前用户 ID
  • %current_date% - 当前日期
  • %query_var|name% - URL 查询参数
  • %current_page% - 当前页码(用于分页)

🛠️ 三、便捷的开发工具与功能

JetEngine 提供了便捷的工具和功能,让你可以更高效地创建和管理你的动态内容。


🔍 自定义查询(Query Builder)

这是 JetEngine 的一个强大的功能,它可以让你在古腾堡编辑器中创建和管理你的自定义查询,来获取和显示你的动态内容的数据,无论是自定义文章类型、自定义内容类型、自定义表、SQL 表、REST API 等,都可以在一个界面中轻松完成。你可以为自定义查询添加自定义的参数、排序、分页、偏移等,来筛选和排序你的数据。你也可以为自定义查询添加自定义的宏、函数、条件等,来处理和显示你的数据。

Query Builder 支持的数据源:

  • WordPress Posts(包括 CPT)
  • Custom Content Types(CCT)
  • Terms(分类法术语)
  • Users(用户)
  • Comments(评论)
  • Custom Tables(自定义表)
  • SQL/AI Query(原生 SQL 查询)
  • REST API(外部接口数据)
  • WooCommerce Products(电商产品,需要 WooCommerce 插件)
  • Repeater Query(处理重复字段数据)

📋 自定义列表(Listing Grid)

这是 JetEngine 的一个实用的功能,它可以让你在古腾堡编辑器中创建和管理你的自定义列表,来展示你的动态内容的数据,无论是网格、滑块、地图、日历、轮播等,都可以在一个界面中轻松完成。你可以为自定义列表添加自定义的布局、样式、动画、背景、迭加等,来美化和优化你的列表。你也可以为自定义列表添加自定义的查询、过滤器、分页、加载更多等,来控制和交互你的列表。

Listing 的组成部分:

  1. Listing Template(列表模板):定义单个项目的展示样式
  2. Listing Grid(列表网格):定义多个项目如何排列
  3. Query(查询):定义获取哪些数据

Listing Grid 展示模式:

  • Grid(网格):标准的行列布局
  • Carousel/Slider(轮播/滑块):左右滑动展示
  • Masonry(瀑布流):Pinterest 风格的错落布局
  • Calendar(日历):按日期展示内容
  • Map Listing(地图):在地图上显示带位置的内容(需要 JetEngine Maps 模块)

📝 自定义表单(Forms)

⚠️ 重要说明:从 JetEngine 3.0 版本开始,表单功能已独立为单独的插件 JetFormBuilder,它是一个免费的独立插件,但与 JetEngine 深度集成。 如果你使用的是较新版本的 JetEngine,需要单独安装 JetFormBuilder 来实现表单功能。

JetFormBuilder 可以让你在古腾堡编辑器中创建和管理你的自定义表单,来收集和处理你的动态内容的数据,无论是注册、登录、联系、预约、评价等,都可以在一个界面中轻松完成。你可以为自定义表单添加自定义的字段、样式、验证、提交等,来完善和优化你的表单。你也可以为自定义表单添加自定义的动作、钩子、通知等,来处理和反馈你的表单的数据。

JetFormBuilder 与 JetEngine 的协作:

  • 前端发布/编辑内容:用户通过表单提交创建 CPT/CCT 内容
  • 数据收集:表单数据可直接写入自定义内容类型
  • 用户注册/资料更新:与用户系统深度集成
  • 条件逻辑:根据字段值动态显示/隐藏表单元素
  • 多步骤表单:创建向导式的分步表单

🚀 如何开始使用 JetEngine?

📥 Step 1:获取与安装

获取方式:

  1. 访问 Crocoblock 官网
  2. 选择适合你的订阅计划:
    • 单插件订阅:只购买 JetEngine
    • 全套订阅(All-Inclusive):获取所有 Crocoblock 插件
  3. 完成购买后,在账户中下载插件 ZIP 文件

安装步骤:

  1. 登录 WordPress 后台
  2. 进入 插件 → 安装插件 → 上传插件
  3. 选中下载的 ZIP 文件并点击"现在安装"
  4. 安装完成后点击"启用插件"
  5. (重要)安装并激活 Crocoblock Wizard 进行许可证验证

安装后的初始配置:

  • JetEngine → Settings:根据需要启用/禁用各功能模块
  • 建议初学者先启用:CPT、Meta Fields、Query Builder、Listing 模块
  • 高级模块(如 REST API、Data Stores)可以后续按需启用

🎯 Step 2:创建你的第一个自定义文章类型(CPT)

这是学习 JetEngine 最基础也是最重要的一步。让我们以创建一个"课程"(Courses)类型为例:

操作路径: JetEngine → Post Types → Add New

基本设置:

设置项示例值说明
Post Type Name课程在后台显示的名称
Post Type SlugcoursesURL 中使用的标识符
Menu Icondashicons-welcome-learn-more后台菜单图标

高级设置建议:

  • ✅ 启用 Has Archive(归档页)
  • ✅ 启用 Publicly Queryable(可公开查询)
  • ✅ 在 Supports 中勾选:Title、Editor、Thumbnail、Excerpt
  • 设置合适的 Menu Position 使其在后台易于找到

📊 Step 3:添加自定义字段(Meta Fields)

为刚创建的"课程"类型添加自定义字段:

操作路径: JetEngine → Meta Boxes → Add New

常用字段类型:

字段类型用途示例
Text课程讲师、课程时长
Textarea/WYSIWYG课程大纲、详细描述
Number价格、课时数
Date/Datetime开课日期、报名截止日期
Select/Radio/Checkbox难度级别、课程分类
Media/Gallery课程封面、课件资料
Repeater课程章节列表(可重复添加的字段组)
Relationship关联讲师(链接到另一个 CPT)

📄 Step 4:创建列表模板(Listing Template)

操作路径: JetEngine → Listings → Add New

选择创建方式:

  • Gutenberg(古腾堡):WordPress 原生编辑器,推荐初学者使用
  • Elementor:如果你已经在使用 Elementor 页面构建器
  • Bricks:如果你使用 Bricks Builder

模板设计要点:

  1. 使用动态标签插入数据(标题、图片、字段值等)
  2. 设计合理的布局结构
  3. 考虑响应式显示效果
  4. 添加交互元素(链接、按钮等)

🔗 Step 5:在页面中展示动态内容

使用 Listing Grid 区块:

  1. 编辑目标页面
  2. 添加 Listing Grid 区块
  3. 选择刚创建的 Listing Template
  4. 配置查询条件(可使用 Query Builder 创建的查询)
  5. 设置分页、列数、间距等展示参数

📚 延伸学习资源

🎬 官方视频教程

  • Crocoblock YouTube 频道https://www.youtube.com/@crocoblock
  • JetEngine 入门系列:WordPress Dynamic Content Explained: Gutenberg Edition
  • CPT 创建教程:JetEngine: How to Create a Custom Post Type

📖 官方文档

💡 实战建议

  1. 从简单项目开始:先创建一个简单的团队成员展示或作品集
  2. 逐步添加复杂功能:熟悉基础后再尝试关系字段、动态可见性等
  3. 善用官方模板:Crocoblock 提供了许多预制模板可供学习参考
  4. 加入社区:Crocoblock 有活跃的 Facebook 群组和论坛

📝 课程小结

概念要点
JetEngine 定位Crocoblock 的核心付费插件,一站式动态内容解决方案
三种内容类型CPT(需要前端展示)、CCT(后台数据)、自定义表(纯数据库)
核心功能动态标签、动态函数、动态可见性、Query Builder、Listing Grid
表单功能已确立为 JetFormBuilder(免费插件)
学习路径安装 → 创建 CPT → 添加字段 → 创建 Listing → 页面展示

回复