增强 WordPress Shortcode 检测和判断能力,实现 doing_shortcode() 和 current_shortcode() 函数
内容提要
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() 函数?
可以通过创建全局数组存储正在处理的简码,并在处理前后推入和推出该数组来实现。
WPJAM Basic 插件中是否包含这些函数?
是的,WPJAM Basic 插件中已经整合了 current_shortcode() 和 doing_shortcode() 函数,用户可以直接使用。
如何避免在处理摘要时重复调用生成目录的代码?
可以使用 doing_filter('get_the_excerpt') 来判断当前是否在处理摘要,从而避免重复调用。
在处理简码时需要考虑哪些功能?
在处理简码时,可能需要判断当前是否需要执行某些功能,例如密码保护。