前言:
作为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]
"https://example.com/video.mp4"
[/forbid]
这样,短代码就不会被解析执行,而是以代码的形式直接显示。
这个原理其实很简单:当 WordPress 解析带有[forbid]标签的内容时,它会首先解析内部的短代码,然后将解析结果作为参数传递给 shortcode_forbid()函数。由于 shortcode_forbid()函数只是简单地返回传入的内容,因此最终输出的结果不会包含被禁用的短代码。
短代码虽然已逐渐被区块所取代,但同样一个功能,短代码可能 10 行代码搞定,区块则需要几百行,查看源代码大量的样式代码,看着就闹心。
转载请注明:汇站网 » WordPress 教程 保护文章中的短代码禁止解析