如果你是一个WordPress主题或插件的开发者, 可能我和一样一直被个问题所困扰,那就是需要将短代码加到文章中,用于说明短代码使用方法,但当前的主题已包括这个短代码函数,添加短代码后,会直接运行解析,例如,这个 WordPress 内置的视频短代码:
正常添加会直接解析运行,根本看不到短代码,直接显示的是视频播放器,所以我一般用【】代替[]:【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]
[/forbid]这样短代码将不会解析运行,以代码的形式显示。原理就是,当 WordPress 解析带有[forbid]短代码的内容时,会先解析内部的短代码,然后将结果作为参数传递给shortcode_forbid()函数。因为shortcode_forbid()函数只是简单地返回传入的内容,所以输出的结果不包含被禁用的短代码。短代码虽然已逐渐被区块所取代,但同样一个功能,短代码可能10行代码搞定,区块则需要几百行,查看源代码大量的样式代码,看着就闹心。