当前位置: 秋叶网络博客 WP教程 ◊ 新方法解决wordpress复制内容半角自动变全角

新方法解决wordpress复制内容半角自动变全角

作者:秋了秋 发表时间:2014年10月30日

最近有人反映本站的教程代码加上后会报错,经过我的观察,是因为复制下来的代码,wordpress为了不让外部恶意代码的执行会自动把半角转换为全角符号,这样造成的后果是,代码会失效。这对于访客来说是极其不友好的,想当初初学wp的时候我在网上看教程,文章很好,就是代码把我博客打不开了,非常气氛,也没有相关提示,立马在0.01秒内cut了他的网页。后来渐渐明白是符号问题,而且网络上大部分文章都存在这个通病。

有的并不是没有采取应对措施,而是采取的应对措施随着wp的升级失效了。比如说我之前在functions里面加的

<?php remove_filter('the_content', 'wptexturize'); ?>

我记得以前是可以的阻止wp自行转义的,但是现在不行了。网上的相关解决文章也是老旧老旧了,几乎都是一个模版刻出来的。

网上还有一种方法就是修改WordPress安装目录"/wp-includes/"目录里面的"formatting.php"文件里面的

// static strings $curl = str_replace($static_characters, $static_replacements, $curl); // regular e-xpressions $curl = preg_replace($dynamic_characters, $dynamic_replacements, $curl);

把这四行都加//注释掉。

然而我不知道这是哪个版本的formatting.php代码,但是现在的wp版本的相关代码是不一样的了,靠搜索是搜索不到的。而现在的代码是这样的:(大概在260行至270行,可以通过搜索$static_characters, $static_replacements, $curl找到)

// This is neither a delimiter, nor is this content inside of no_texturize pairs. Do texturize.

//$curl = str_replace( $static_characters, $static_replacements, $curl );

if ( false !== strpos( $curl, "'" ) ) { //$curl = preg_replace( $dynamic_characters['apos'], $dynamic_replacements['apos'], $curl ); } if ( false !== strpos( $curl, '"' ) ) { //$curl = preg_replace( $dynamic_characters['quote'], $dynamic_replacements['quote'], $curl ); } if ( false !== strpos( $curl, '-' ) ) { //$curl = preg_replace( $dynamic_characters['dash'], $dynamic_replacements['dash'], $curl ); }

在$curl前面用//注释即可,一共四行,全注释,你现在可以复制这段代码到你的编辑器里面看看半角有没有转全角就知道这方法行不行了。至于functions代码,已经不能解决这个问题了~所以暂且只提供这一个方法,有另法者可报上来。

0
除非注明,文章均由 秋叶网络博客 发布,欢迎转载。
转载请注明本文地址:http://www.mizuiren.com/155.html
目录: WP教程 | 标签: 解决半角变全角自行转义, wordpress | 11336次阅读