WordPress不支持中文tag标签链接解决办法

首先,产生中文tag链接无法打开或者找不到博客文章的原因在于WordPress不支持中文的编码。那我们

就需要强制让WordPress能支持中文的编码形式,即UTF-8和GBK编码。

修改方法,首先修改WP-include中的classes.php文件(需要使用用专门的PHP编辑器工具,推荐

EditPlus),将第47行和第52行代码进行修改。

 代码如下 复制代码

第47行原代码:
$pathinfo = $_SERVER['PATH_INFO'];

替换为:

$pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], “UTF-8“, “GBK“);

第52行原代码:

$req_uri = $_SERVER['REQUEST_URI'];

替换为:

$req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], “UTF-8“, “GBK“);

修改后,保存下,然后将保存后的classes.php文件上传并覆盖原文件即可

另一种办法

以下是wordpress 3.3的修改方法。【3.5版本的也通用的,不过代码是在1039行】

此方法只针对Windows服务器,Linux未测试过。

打开 wp-includes/rewrite.php,找到第1000行,【3.5版本在1039行】把:

 代码如下 复制代码
if ( empty($this->permalink_structure) )

注意:此文件下有很多的“if ( empty($this->permalink_structure) )”,需修改的是位于第1000行

,“function get_extra_permastruct($name)”函数下的那一个。

替换为:

 代码如下 复制代码
if ( !empty($this->permalink_structure) )【

其实就是用“!”屏蔽了错误】
注意:别用windows自带的记事本修改(推荐UltraEdit,Dreamweaver等)。

IIS上不能支持中文。

在网上看了几种解决方案,不过鄙人还是比较支持IIS对中文url解析的问题。找到

问题,修改起来就快多了。
打开wp-includesclasses.php文件
找到旧代码:

 代码如下 复制代码

if ( isset($_SERVER['PATH_INFO']) )
$pathinfo = $_SERVER['PATH_INFO'];
else
$pathinfo = ”;
 
$pathinfo_array = explode(‘?’, $pathinfo);
$pathinfo = str_replace(“%”, “%25″, $pathinfo_array[0]);
$req_uri = $_SERVER['REQUEST_URI'];

改成以下

 代码如下 复制代码

if ( isset($_SERVER['PATH_INFO']) )
$pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], “UTF-8″, “GBK”);
else
$pathinfo = ”;
 
$pathinfo_array = explode(‘?’, $pathinfo);
$pathinfo = str_replace(“%”, “%25″, $pathinfo_array[0]);
8.$req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], “UTF-8″, “GBK”);

时间: 2024-07-30 19:00:58

WordPress不支持中文tag标签链接解决办法的相关文章

Source Insight 中文注释为乱码解决办法(完美解决,一键搞定)【转】

转自:http://blog.csdn.net/bjarnecpp/article/details/70174752 版权声明:本文为博主原创文章,未经博主允许不得转载. Source Insight中文注释为乱码解决办法 我网上查了一堆解决办法,但是都是2017年以前的,并且都是针对于source insight 3.5及以下版本的解决方案,软件版本都到4.0了,应该有新方法出现. --------------------------------------干货:Source Insight

JS中页面与页面之间超链接跳转中文乱码问题的解决办法_javascript技巧

在原页面一张图片上添加了一个链接,链接中有中文,于是出现下面的情况:   解决办法是在tomcat的server.xml文件的中加入URIEncoding="utf-8",如下: <Connector URIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443

Ajax传输中文乱码问题的解决办法_AJAX相关

AJAX简介 AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). AJAX 不是新的编程语言,而是一种使用现有标准的新方法. AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下. ajax传输中文乱码问题描述: 我是在一个jsp页面有一个保存按钮,点击时会触发saveForm()的js函数,在saveForm()函数里经过校验后,会通过ajax发送数据请求,这样就不用通过提交表单来传输数据了,aj

jQuery使用serialize()表单序列化时出现中文乱码问题的解决办法_jquery

序列化中文时之所以乱码是因为.serialize()调用了encodeURLComponent方法将数据编码了 解决方法就是进行解码 原因:.serialize()自动调用了encodeURIComponent方法将数据编码了 解决方法:调用decodeURIComponent(XXX,true);将数据解码 例如: var params = jQuery("#formId").serialize(); // http request parameters. params = deco

Android Retrofit 中文乱码问题的解决办法

Android Retrofit 中文乱码问题的解决办法 使用retrofit和rxjava,提交数据时需注意,当数据中有中文时,传到后台,可能会是乱码,需处理: 解决: 1.GET请求改成POST; 2.参数Field改成Query 3.加上@FormUrlEncoded 如下: @FormUrlEncoded @POST("/test/test") Call<Response> register(@Field("name") String name)

Ajax传输中文乱码问题的解决办法

AJAX简介 AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). AJAX 不是新的编程语言,而是一种使用现有标准的新方法. AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下. ajax传输中文乱码问题描述: 我是在一个jsp页面有一个保存按钮,点击时会触发saveForm()的js函数,在saveForm()函数里经过校验后,会通过ajax发送数据请求,这样就不用通过提交表单来传输数据了,aj

Apache2.2.x不支持php5.1.x的解决办法

近来安装apache服务器的时候,发现apache2.2竟然无法跟php5.1.6搭配起来,在网上搜了一下,找到了一些解决办法,现在粘贴如下: 1. 下载.安装 2.若apache出现错误信息:The Apache service named reported the following error: >>> httpd.exe: Syntax error on line 115 of C:/Program Files/Apache Software Foundation/Apache2

apache服务器解决url中文无法正常显示解决办法

apache服务器解决url中文无法正常显示解决办法 我们在php教程中用个url 编码函数,利用它就可以解决了,方法下如. <?php $interest = "arts"; $homepage = "http://www.111cn.net"; $query = "homepage=".urlencode( $homepage ); $query .= "&interest=".urlencode( $int

解决wordpress不支持中文汉字用户名注册

搁置了好久的一个网站终于在昨天找到了一款适合的模板,也意味着最近可能要对那个网站动工了 然后一个小问题就是注册用户的时候不支持中文用户名,那个网站上打算互动的... SO 得想办法解决这个问题.. 其实也很简单上网搜索一下,中文的教程几乎是千篇一律地要修改WordPress的源文件formatting.php 至于怎么改呢?我也找到一段最简单的代码 将以下php代码复制到当前主题目录下的functions.php中, 就可以让WordPress支持使用中文用户名注册和登录了    代码如下 复制