wordpress5.4引入了一个新函数 apply_shortcodes(),它是当前do_shortcode()函数的别名,也就是说,以后推荐使用 apply_shortcodes()来替代 do_shortcode() 。

总的来说,是为了规范命名语义do_*隐含的语义表示函数显示短代码的结果。但是实际上并非如此。实际上,do_shortcode()需要采用Echo输出其结果。

目前要输出简码结果,使用的代码为:

echo do_shortcode( '[wporg]My Text[/wporg]' );// 必须添加echo才能显示简码的结果

从语义上讲,我们应该不需要echo就可以输出简码结果,但实际上没有echo就无法输出结果:

do_shortcode( '[wporg]My Text[/wporg]' );// 但是这样写不会输出任何内容…

如您所知,do_shortcode() 它用于无数的插件和主题中。因此,目前无法直接弃用它。但是,如果大家可以开始围绕别名apply_shortcodes() 达成共识,那么弃用 do_shortcode() 最终可能会在将来成为现实。

这种做法是有先例的,比如之前采用 get_the_permalink() 来替代 get_permalink() 一样(WordPress 3.9.0)。

apply_shortcodes旨在获得更好的语义:不是执行操作并输出到当前缓冲区,而是将过滤器应用于输入并返回结果。该过程更简单,更简洁,更易于维护,也更利于新开发者理解和接受。

apply_shortcodes()可以和目前do_shortcode()使用一样的方式:

echo apply_shortcodes( '[wporg]My Text[/wporg]' );// 显示简码的结果

邀请主题/插件作者和WordPress开发人员开始使用apply_shortcodes(),而不再使用do_shortcode()

需要明确的是,目前还没有决定何时弃用 do_shortcode()。但是开发人员越早将所有内容切换到更具语义的apply_shortcodes(),核心团队就可以越早计划弃用旧函数。从 WordPress 5.4 开始,推荐使用apply_shortcodes()来显示简码结果

发表回复

后才能评论