通过短代码禁用 WordPress 自动格式化

2013.05.21 38 Comments 30,690 次阅读

我们在 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 区域里的代码是不会被自动添加上其他标签的。

38 Responses
Comment (1)
Trackback (0)
  • 还没有Trackback
Leave a Reply