撸linux


WordPress编码和垃圾评论屏蔽问题:functions.php到底该选择什么样的编码格式?

我在一篇关于blogilo同步错误的文章里总结了一条经验:wordpress主题目录下的functions.php文件不能用utf8格式编码,必须用ansi编码。这样才能使windows live writer或blogilo等离线博客软件正常同步、编写和发表博客。

但是为了实现Wordpress屏蔽垃圾评论功能,functions.php文件又必须采用utf8格式。因为需要添加类似以下内容才能实现垃圾评论的屏蔽:

function v7v3_comment_post( $incoming_comment ) {
$pattern = '/[一-龥]/u';
$jpattern ='/[ぁ-ん]+|[ァ-ヴ]+/u';
if(!preg_match($pattern, $incoming_comment['comment_content'])) {
header("Content-type: text/html; charset=utf-8");
wp_die( "
写点汉字吧,博主外语很捉急! Please write some chinese words!<a href='javascript:history.go(-1);'>返回文章页</a>
");
exit;
}
return( $incoming_comment );
}
add_filter('preprocess_comment', 'v7v3_comment_post');

如果含有以上代码的functions.php文件采用ansi格式,那么全部中文或非中文评论都会被其识别为纯英文评论而屏蔽。这是为什么呢?这是因为utf-8编码的网页跟ansi文本不兼容,ansi文本转化为utf8时会出现乱码,这些乱码字符统统会被当成英文字符。

要不就采用ansi格式,让垃圾评论屏蔽功能失效;要不就采用utf8格式,让wlw离线博客软件无法正常使用。真的就没有两全其美的办法吗?嘿嘿,经过博主小撸我的不懈探索,答案出来了:

用notepad++编辑functions.php,转换编码格式为"UTF-8无BOM编码格式"即可

相关博文



以下是网友的2条评论,您赞同吗?

  1. 2015-3-31 21:22

    呵呵,我编辑所有文件均设置为这个

  2. 匿名
    2014-12-13 5:34

    这个答案对我很受用。谢了!!

发表评论

电子邮件地址不会被公开。