WordPress短代码与块编辑器

wen PHP项目 2

本文目录导读:

WordPress短代码与块编辑器

  1. 核心区别:短代码 vs. 块
  2. 块编辑器中的短代码
  3. 未来趋势:块将取代短代码
  4. 总结与行动建议

这是一个非常核心的问题,涉及到WordPress新旧两代编辑器的核心差异与兼容性。

块编辑器并没有完全消灭短代码,而是提供了一种更现代化、更直观的替代方案(块),但为了兼容旧内容和特定插件,块编辑器依然保留了对短代码的支持。

下面从核心区别、共存方式以及未来趋势三个维度为你详细解析。

核心区别:短代码 vs. 块

特性 短代码 (Shortcode) 块 (Block / Gutenberg Block)
出现时代 WordPress 2.5+ (2008年) WordPress 5.0+ (2018年)
核心思想 中插入一个 “文本占位符”,由服务器端PHP解析替换成复杂功能。 划分为独立的 “块” 单元,每个块自带样式、设置和数据。
用户交互 用户在文本编辑器里手动输入 [shortcode param="value"],或通过下拉菜单选择。 用户通过可视化拖拽、点击、侧边栏设置来编辑,所见即所得。
处理方式 服务器端保存为文本HTML,用户在前端看到的是解析后的结果。 前端 + 后端处理,块在编辑器中是动态的,在保存时生成特定HTML注释 <!-- wp:plugin/block -->
数据存储 内容存储在 post_content 字段中,包含原始短代码字符串。 内容存储在 post_content 字段中,但被包裹在块注释标记内,包含结构化JSON数据。
典型场景 插入相册、画廊、嵌入视频(YouTube)、自定义布局(如列、标签页)。 编辑文章段落、标题、图片、表格、封面、高级自定义布局(全站编辑模式)。
学习曲线 对开发者友好(写PHP函数),对用户不友好(要记忆语法)。 对用户友好(拖拽点击),对开发者有一定学习成本(需学习React/JS构建块)。
扩展性 通过 add_shortcode() 函数注册。 通过注册块类型(register_block_type())并搭建React组件。

块编辑器中的短代码

块编辑器并没有废除短代码,而是将其作为一个特殊的 “短代码”块 来处理。

  1. “短代码”块的作用:

    • 兼容性:当你的站点使用了依赖短代码的旧插件(如过去的很多表单插件、相册插件),你可以在块编辑器中添加一个名为 “短代码” 的块,然后像过去一样输入 [contact-form-7 id="123" ] 这样的代码。
    • 转换:当你编辑一篇用经典编辑器写作的旧文章时,原来的短代码会自动被包裹在一个“短代码”块中,确保它仍然能正常工作。
  2. 为什么还需要短代码块?

    • 过渡期:很多成熟的插件仍然主要使用短代码来提供功能([woocommerce_cart] 页面简码),这些功能尚未被重写为原生块,所以短代码块仍然是必要的桥梁。
    • 快速原型:对于开发者来说,写一个简单的短代码来快速呈现一个功能,比写一个完整的块要快得多。

未来趋势:块将取代短代码

  • 官方态度:WordPress官方强烈推荐开发者学习构建原生块,而不是继续依赖短代码,块编辑器是全站编辑(FSE)和未来Word进化的基础。
  • 用户体验:用户无需记住 [gallery ids="1,2,3"],可以直接在编辑器中拖拽、排序、设置图片块,这是巨大的体验提升。
  • 数据结构:块的数据以结构化的JSON形式存储,更利于未来搜索引擎、外部应用(如通过REST API调用)理解和利用内容。
  • 组件化:块是独立的、可重用的组件,你可以直接在“块”选项卡中导航、搜索,而不用去复杂的后台设置或记忆短代码参数。

总结与行动建议

你的身份 怎么做
普通用户 尽量使用块编辑器自带的块(段落、标题、图片、列等)来构建内容,对于插件(如表单、滑块)提供的功能,如果该插件提供了原生块,优先使用块;如果只有短代码,则使用“短代码”块安全地粘贴代码。
开发者 / 站点所有者 强烈建议学习开发原生块,虽然短期可能需要维护旧短代码,但长远来看,新的、面向未来的功能和用户体验都应构建在块之上,如果维护旧插件,可以逐步为用户提供一个“块”来替代“短代码”输入。

一句话总结:短代码是过去WordPress扩展功能的基石,块编辑器是其现代化的演进,两者当前共存,但块是未来。

抱歉,评论功能暂时关闭!