增强 WordPress Shortcode 检测和判断能力,实现 doing_shortcode() 和 current_shortcode() 函数
💡
原文中文,约2500字,阅读约需6分钟。
📝
内容提要
WordPress 的简码功能允许用户通过短代码添加内容,但缺乏追踪当前执行的过滤器的函数。建议实现 current_shortcode() 和 doing_shortcode($tag) 函数,以判断当前处理的简码。通过创建全局数组存储正在处理的简码,可以有效管理其执行状态。
🎯
关键要点
- WordPress 的简码功能允许用户通过短代码添加内容,使用简单且功能强大。
- 当前简码功能缺乏追踪正在执行的简码的函数,建议实现 current_shortcode() 和 doing_shortcode($tag) 函数。
- current_filter() 和 doing_filter() 函数用于检测当前执行的 Hook,类似的功能也需要在简码处理中实现。
- 通过 doing_filter() 可以判断当前是否在处理摘要,避免重复调用生成目录的代码。
- 在处理简码时,可能需要判断当前是否需要执行某些功能,例如密码保护。
- 可以通过创建全局数组来存储正在处理的简码,利用 pre_do_shortcode_tag 和 do_shortcode_tag 过滤器来管理简码的执行状态。
- WPJAM Basic 插件中已经整合了 current_shortcode() 和 doing_shortcode() 函数,用户可以直接使用或参考实现类似功能。
❓
延伸问答
WordPress 的简码功能是什么?
简码是使用[]包含的短代码,WordPress 会识别并根据定义的回调函数输出相应内容,方便用户添加各种功能。
为什么需要 current_shortcode() 和 doing_shortcode() 函数?
这两个函数用于追踪当前正在执行的简码,帮助判断简码的执行状态,避免重复调用代码。
如何实现 current_shortcode() 和 doing_shortcode() 函数?
可以通过创建全局数组存储正在处理的简码,并在处理前后推入和推出该数组来实现这两个函数。
doing_filter() 和 current_filter() 函数在简码处理中有什么作用?
这两个函数用于检测当前执行的 Hook,类似的功能在简码处理中也需要实现,以避免重复调用。
WPJAM Basic 插件中如何使用 current_shortcode() 和 doing_shortcode()?
WPJAM Basic 插件已经整合了这两个函数,用户可以直接使用或参考其实现方式。
在处理简码时,如何判断是否需要执行某些功能?
可以使用 doing_shortcode() 函数判断当前是否在处理特定的简码,从而决定是否执行相关功能。
➡️