平台严格禁止发布违法/不实/欺诈等垃圾信息,一经发现将永久封禁帐号,针对违法信息将保留相关证据配合公安机关调查!
我用的是第三方主题文章少的时候我会给每个标签添加别名,可是后来就没坚持下来,文章太多有时候总会忽略的,那些没有添加别名的就出现了点击之后跳转到404页面(我的不启用WP Super Cache,是正常的,启用之后.htaccess文件会多出一些规则,不知道和这个有没有关系,待验证,有知道的可以在下方留言,多谢!),于是我就去网络上看到有许多人遇到同样的问题,自己也都一一尝试了,结果还是不错,问题解决了,所以我就分享一下给那些遇到同样问题的人看。
网络上流行的三种方法如下:
第一种方法:
打开 WP-include/classes.php(3.1之前版本)或WP-include/class-wp.php(3.1+之后版本,下文称新版)找到第154行(新版为142行),把:
$pathinfo = $_SERVER['PATH_INFO';
$pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], 'UTF-8', 'GBK');
$req_uri = $_SERVER['REQUEST_URI';
$req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], 'UTF-8', 'GBK');
第二种方法:
1、在网站的根目录的wp-includes文件夹中找到“rewrite.php”这个文件;
2、备份一下“rewrite.php”,以防修改出错(改代码之前我们都最好备份一下原代码);
3、打开“rewrite.php”文件中我们找到如下代码:
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)) {
第三种方法:
最后解决中文TAG 404错误的方法,其实说到底就是ISAPI_Rewrite伪静态的规则(根目录下的.htaccess文件)没有写好才导致找不到网页文件的。
其实就是更改一下规则就可以了,之前的tag伪静态的规则(我就是用这种方法解决的,这种方法适合:支持中文显示,只是会跳的404页面)
RewriteRule /tag/(.*)$ /index\.php\?tag=$1
RewriteRule /tag/(.*)/$ /index\.php\?tag=$1
WordPress中文标签Tags分页打不开解决办法
设置了伪静态以后,对于中文的支持就很容易出现乱码,除了常见的utf-8更改格式以外。有一些插件仍然会出现bug。return "<a href='" . esc_url(mb_convert_encoding(get_pagenum_link($page), "UTF-8","GBK")) . "' class='$class'>$text</a>";
登录wordpress后台,在文章标签里。给每一个含中文的Tags标签,加上一个标签别名。“别名” 是URL友好的另外一个名称。它通常为小写并且只能包含字母,数字和连字符。
PS:方法二比较麻烦,但是效果不错,自己决定选择哪种一种!