WordPress 技巧:优先执行 Shortcode,移除 Shortcode 中自动添加的 br 和 p 标签

2023-04-15 10:21:16 浏览数 (2)

我们在使用 WordPress Shortcode API 开发插件的时候,有个比较麻烦的问题,就是 WordPress 会自动在 shortcode 内添加 br 或者 p 标签,这样可能会打乱你的原先预想的 HTML 结构和布局。

造成这个问题的原因是 WordPress 默认的日志内容处理流程中,wpautop(将回车转换成 p 或者 br 标签的函数)是在 Shortcode 前面运行的。所以我们的解决方案也是非常简单,改变它们执行的顺序,在当前主题的 functions.php 文件中添加:

代码语言:javascript复制
remove_filter( 'the_content', 'wpautop' );
add_filter( 'the_content', 'wpautop' , 12);

该功能已经整合到 WPJAM Basic 插件中,现已免费提供下载,你只需要勾选下就可以优先执行 Shortcode!

这样调整顺序之后,你的 shortcode 里面的内容,就不会有自动添加的 p 或者 br 标签,但是如果 shortcode 中部分的内容你又需要一些 p 或者 br 标签用来换行的话,你需要自己手动在自己 shortcode 处理程序中添加 wpautop 来处理了:

代码语言:javascript复制
function bio_shortcode($atts, $content = null) {
   $content = wpautop(trim($content));
   return '

<div class="bio">' . $content . '</div>
';
}
add_shortcode('bio', 'bio_shortcode');

0 人点赞