如果你是一个WordPress主题或插件的开发者, 可能我和一样一直被个问题所困扰,那就是需要将短代码加到文章中,用于说明短代码使用方法,但当前的主题已包括这个短代码函数,添加短代码后,会直接运行解析,例如,这个 WordPress 内置的视频短代码:
[video src="video.mp4" width="640" height="360"]
正常添加会直接解析运行,根本看不到短代码,直接显示的是视频播放器,所以我一般用【】代替[]:
【video src="video.mp4" width="640" height="360"】
用户复制短代码后,还要替换符号,非常不便。
偶然发现,解决这个问题非常简单,只要短代码外面再套个短代码即可,将下在代码添加到functions.php模板中:
// 禁止解析短代码 function shortcode_forbid( $atts, $content = null ) { return $content; } add_shortcode('forbid', 'shortcode_forbid');
之后用 [forbid][/forbid] 把短代码包裹起来。
[forbid] [video src="https://example.com/video.mp4" width="640" height="360"] [/forbid]
这样短代码将不会解析运行,以代码的形式显示。
原理就是,当 WordPress 解析带有[forbid]短代码的内容时,会先解析内部的短代码,然后将结果作为参数传递给shortcode_forbid()函数。因为shortcode_forbid()函数只是简单地返回传入的内容,所以输出的结果不包含被禁用的短代码。
短代码虽然已逐渐被区块所取代,但同样一个功能,短代码可能10行代码搞定,区块则需要几百行,查看源代码大量的样式代码,看着就闹心。
本站文章大部分为原创,用于个人学习记录,可能对您有所帮助,仅供参考!
我的微信
微信号已复制
版权声明
本站原创文章转载请注明文章出处及链接,谢谢合作!