最后更新时间为 2018年8月16日
我们在 WordPress后台 发表文章的时候,如果你对文字没有设置什么样式,那么WP的编辑器会自动将你的代码格式化,例如:你写输入一行文字,它会自动给你的文字加上标签,有时候这个功能会对我们带来很多麻烦,特别是给某段文字添加样式的时候。所以我们需要特殊手段解决这个问题。这个方法周良也是查阅而来,并非原创哦。
通过使用短代码,可以对WordPress编辑器自动格式化进行过滤。在使用主题的 functions.php 里加入下面的代码:
function my_formatter($content) {
$new_content = ‘’;
$pattern_full = ‘ { ([raw]. ? [/raw])}is’;
$pattern_contents = ‘{[raw](.?)[/raw]
}
is’;
$pieces = preg_split($pattern_full, $content, -1, PREG_SPLIT_DELIM_CAPTURE);
foreach($pieces as $piece) {
if (preg_match($pattern_contents, $piece, $matches)) {
$new_content. = $matches[1];
} else {
$new_content. = wptexturize(wpautop($piece));
}
}
return $new_content;
}
remove_filter(‘the_content’, ‘wpautop’);
remove_filter(‘the_content’, ‘wptexturize’);
add_filter(‘the_content’, ‘my_formatter’, 99);
添加这段代码后,我们写发表文章的时候使用 [raw] 需要禁用 WordPress 自动格式化的内容 [/raw] 这样的短代码形式写代码即可(在编辑器的HTML方式下),这样raw 区域里的代码是不会被自动添加上其他标签的。