首页 > 其他随笔 > 解决WordPress自动将半角替换成全角的问题

解决WordPress自动将半角替换成全角的问题

其他随笔

今天在看自己写的Url编解码文章的时候,发现原本半角的字符全变成全角字符了。还以为是我笔误,在编辑面板中查看的时候,发现确实是半角字符。上网搜了一下,发现wordpress是会自动将半角字符自动输出为全角字符,不知道是出于什么原因。无怪乎以前逛别人博客的时候发现别人贴的代码总是带有全角字符,很不舒服,原来是这么回事。

网上倒是有插件Quotmarks Replacer可以解决这个问题,但是不想再整那么多插件了,麻烦。有人提供了更简单的办法,只需要进入wordpress管理后台,主题文件夹编辑窗口下,找到function.php,然后在文件末尾添加这么一行:

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

之所以会把半角替换成全角是因为调用了wptexturize函数,这行代码就是把这个函数给移除掉。参考:http://www.life-studio.cn/wordpress-code-without-plugins.html

update:

在其他地方也会用到此函数,因此需要更新上面的代码:

<?php
/*
Plugin Name: Quotmarks Replacer
Plugin URI: http://sparanoid.com/tag/quotmarks-replacer/
Description: A plugin disables wptexturize founction that keeps all quotation marks and suspension points in half-width form. 通过禁用 wptexturize 函数,解决 WordPress 自动将半角的单引号、双引号和省略号转换为全角标点的问题。使后台输入的标点格式与前台读者浏览的标点格式保持一致。
Version: 2.2
Author: Sparanoid
Author URI: http://sparanoid.com/
*/

$qmr_work_tags = array(
    'bloginfo',
    'comment_author',
    'comment_text',
    'list_cats',
    'link_name',
    'link_description',
    'link_notes',
    'single_post_title',
    'term_name',
    'term_description',
    'the_title',
    'the_content',
    'the_excerpt',
    'wp_title',
    'widget_title'
    );

foreach ( $qmr_work_tags as $qmr_work_tag ) {
    remove_filter ($qmr_work_tag, 'wptexturize');
}

?>

——Kevin Yang

本博客遵循CC协议2.5,即署名-非商业性使用-相同方式共享
写作很辛苦,转载请注明作者以及原文链接~
如果你喜欢我的文章,你可以订阅我的博客:-D点击订阅我的文章

  1. | #1

    这个对我来说太重要了,难怪几次调用函数都失败了

  1. 暂时没有trackbacks.