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

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

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


remove_filter( 'the_content', 'wpautop' );
add_filter( 'the_content', 'wpautop' , 12);

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

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


function bio_shortcode($atts, $content = null) {
   $content = wpautop(trim($content));
   return '<div class="bio">' . $content . '</div>';
}
add_shortcode('bio', 'bio_shortcode');

Shortcode 详细介绍和更多技巧:

  • WordPress 技巧:使用 Shortcode 快速插入表格
  • WordPress 技巧:只有指定的 Shortcode 存在时才载入相关脚本文件
  • WordPress 技巧:判断当前文章中是否有图集(Gallery)
  • WordPress 技巧:删除列表页的 Shortcode
  • WordPress 技巧:使用 Shortcode 快速插入列表
  • WordPress 短代码(Shortcode)详细介绍和使用
  • WordPress 技巧:在侧边栏 Widgets 中使用 Shortcode
  • WordPress 技巧:在主题的文件中使用 Shortcode
  • WordPress 技巧:使用 Shortcode 方式插入视频,并支持全平台播放
  • WordPress 技巧:防止博客内容中的 Email 地址被收集
  • WordPress 技巧:使用 Shortcode 投放 Google Adsense 广告
标签:WordPress Shortcode WordPress 技巧

随意打赏

提交建议
微信扫一扫,分享给好友吧。