wordpress设置伪静态后,发现打开中文标签出现404错误,英文标签非常正常。
第一种方法:此方法对wordpress 3.5版本貌似无效,3.5版本见方法三。
查找网站根目录下的wp-includes/class-wp.php文件中的如下代码(3.3.1版本是这个文件):
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]);
$req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], 'utf-8', 'GBK');
好了,问题解决。
第二种方法:
function get_tag_permastruct() {
if (isset($this->tag_structure)) {
return $this->tag_structure;
}
if (empty($this->permalink_structure)) {
$this->tag_structure = ”;
return false;
}
if (empty($this->tag_base))
$this->tag_structure = $this->front . ‘tag/’;
else
$this->tag_structure = $this->tag_base . ‘/’;
$this->tag_structure .= ‘%tag%’;
return $this->tag_structure;
将其中的
if (empty($this->permalink_structure)) {
修改为
if (! empty($this->permalink_structure)) {
(注意只加了一个英文“ !”号,经测试,使用的这个方法有效。)
第三种方法:使用用插件Atuo Tag Slug
在后台插件搜索安装即可。
本站设置成全部转换成汉语拼音格式的,以后每写一篇都自动添加,但之前的标签不会自动转换,这需要你手动转换一下,如下图所示:
继续阅读
痕风的起点
专注于互联网资讯、中央空调、Windows、wordpress、建站技术、软件应用等相关网络资源的分享。
2013年1月8日 12:43 1F
嗯。。不错,改代码方法对于wordpress3.5已经无效。。只能用这个插件了!
2013年1月8日 12:46 2F
插件Atuo Tag Slug的api号谁有,给分享个出来啊!!