如何清理此代码?
Wordpress使用[短代码]形式的短代码为帖子和页面添加扩展功能。
我要做的是返回一个包含所有'stray'括号的字符串,其中没有被任何短代码用作html实体。
我需要使用的是WordPress的这些变量:
$ shortcode_tags:所有短代码数组(不带括号)
和
get_shortcode_regex():将所有已注册的短代码标记组合成一个正则表达式。 (我在下面的代码中没有使用它)
function find_stray_brackets ($content) {
// this code repalces all occurences of every shortcode with special brackets.
// It then replaces remaining 'stray' brackets with the HTML character entitiy.
global shortcode_tags;
foreach($shortcode_tags as $k=>$item)
{
$pattern='/\[('.$k.'.*?(?=\]))\]/';
$content=preg_replace($pattern,'*{*$1*}*',$content);
$pattern='/\[\/('.$k.'.*?(?=\]))\]/';
$content=preg_replace($pattern,'*{*/$1*}*',$content);
}
$content=str_replace('[','[',$content);
$content=str_replace(']',']',$content);
$content=str_replace('*{*','[',$content);
$content=str_replace('*}*',']',$content);
return($content);
}
方法是用特殊字符替换所有围绕短代码的括号 - >用html实体替换流浪括号 - >重新插入原始括号