今天粘贴代码时候发现半角的" " 都变成了乱七八糟的有半角有全角“”,代码粘下来用的时候就困难比较多了,总结一下解决方法:
1、插件方法
Quotmarks Replacer是一个通过禁用wptexturize函数来解决WordPress自动将半角的单引号、双引号和省略号转换为全角标点的问题。使后台输入的标点格式与前台读者浏览的标点格式保持一致的插件。
插件地址:http://sparanoid.com/archive/wordpress/quotmarks-replacer/
2、直接更改WP安装目录下wp-includes/formatting.php更改里面的过滤参数就可以避免这种情况了。具体如下:
#文件:wp-includes/formatting.php,将以下代码
$static_characters = array_merge(array('---', ' -- ', '--', 'xn–', '...', '``', '\'s', '\'\'', ' (tm)'), $cockney);
$static_replacements = array_merge(array('—', ' — ', '–', 'xn--', '…', '“', '’s', '”', ' ™'), $cockneyreplace);
$dynamic_characters = array('/\'(\d\d(?:’|\')?s)/', '/(\s|\A|")\'/', '/(\d+)"/', '/(\d+)\'/', '/(\S)\'([^\'\s])/', '/(\s|\A)"(?!\s)/', '/"(\s|\S|\Z)/', '/\'([\s.]|\Z)/', '/(\d+)x(\d+)/');
$dynamic_replacements = array('’$1','$1‘', '$1″', '$1′', '$1’$2', '$1“$2', '”$1', '’$1', '$1×$2');
替换成
$static_characters = array_merge(array(), $cockney);
$static_replacements = array_merge(array(), $cockneyreplace);
$dynamic_characters = array('/(\d+)x(\d+)/');
$dynamic_replacements = array('$1×$2');
3、编辑 wp-includes/formatting.php
将如下代码
for ( $i = 0; $i < $stop; $i++ ) {
$curl = $textarr[$i];
if (isset($curl{0}) && '<' != $curl{0} && '[' != $curl{0} && $next && !$has_pre_parent) { // If it's not a tag
// static strings
$curl = str_replace($static_characters, $static_replacements, $curl);
// regular expressions
$curl = preg_replace($dynamic_characters, $dynamic_replacements, $curl);
} elseif (strpos($curl, '<code') !== false || strpos($curl, '<kbd') !== false || strpos($curl, '<style') !== false || strpos($curl, '<script') !== false) {
$next = false;
} elseif (strpos($curl, '<pre') !== false) {
$has_pre_parent = true;
} elseif (strpos($curl, '</pre>') !== false) {
$has_pre_parent = false;
} else {
$next = true;
}
$curl = preg_replace('/&([^#])(?![a-zA-Z1-4]{1,8};)/', '&$1', $curl);
$output .= $curl;
}
改为
for ( $i = 0; $i < $stop; $i++ ) {
$curl = $textarr[$i];
if (isset($curl{0}) && '<' != $curl{0} && '[' != $curl{0} && $next && !$has_pre_parent) { // If it's not a tag
// static strings
//$curl = str_replace($static_characters, $static_replacements, $curl);
// regular expressions
//$curl = preg_replace($dynamic_characters, $dynamic_replacements, $curl);
} elseif (strpos($curl, '<code') !== false || strpos($curl, '<kbd') !== false || strpos($curl, '<style') !== false || strpos($curl, '<script') !== false) {
$next = false;
} elseif (strpos($curl, '<pre') !== false) {
$has_pre_parent = true;
} elseif (strpos($curl, '</pre>') !== false) {
$has_pre_parent = false;
} else {
$next = true;
}
$curl = preg_replace('/&([^#])(?![a-zA-Z1-4]{1,8};)/', '&$1', $curl);
$output .= $curl;
}
方法2和3其实使之一样,修改过滤方法的具体内容而已,只是地方不一样,3是直接注销掉过滤方法的调用了。希望不会出什么别的问题。
参考:1、http://blog.everalan.com/194.html
2、http://anylinux.net/post/627.html






坐个沙发慢慢看!
做个板凳看一楼
@卢松松
行了 我可以截图宣传这个了
很实用的耶
@北京热水器维修
呵呵 那就用呗
我没买票就来看了。还免费学习。蒽蒽。
@好名字要隐藏
补票吧 哈哈
我这好像没出现那问题.
我是来打酱油的。
@超人
哦 你是英文版的wp的吧