WordPress,分类目录,tag标签,404错误,固定链接修改法

很多朋友用wordpress做博客,博客做了伪静态后发现了2个问题,

第一个问题是wordpress分类目录打开显示404错误,

第二个问题是wordpress的tag标签打开显示404错误,

这个问题搞的我头大,找了很久,终于才发现了解决方法。

只需要改动下面几个小代码解决了问题,确切的说这只是一种临时的解决方法,因为只是把固定链接改了一下。

解决分类目录和标签打开错误。

在wp-includs文件夹下面,找到rewrite.php文件,复制保存或者下载下来。保存一下,防止修改出处,万一出错了,可以覆盖还原。

3.3.1 以前的老版本的设置方法

然后用记事本打开rewrite.php文件,找到这个函数名:function get_category_permastruct()(大约在970行),代码如下。

function get_category_permastruct() {
 if ( isset($this->category_structure) )
 return $this->category_structure;
 if ( empty($this->permalink_structure) ) {
 $this->category_structure = ”;
 return false;
 }
 if ( empty($this->category_base) )
 $this->category_structure = trailingslashit( $this->front . ‘category’ );
 else
 $this->category_structure = trailingslashit( ‘/’ . $this->root . $this->category_base );
 $this->category_structure .= ‘%category%’;
 return $this->category_structure;
 } 

然后在这个下面找到

if ( empty($this->permalink_structure) ) 

把这个改为

if ( !empty($this->permalink_structure) ) 

注意,这里只加了一个英文‘!’解决了wordpress分类目录404错误的问题。
再找到这个函数function get_tag_permastruct()(大约在986行),里面也有一个

if ( empty($this->permalink_structure) ) 

一样,还是改为

if ( !empty($this->permalink_structure) ) 

这里只加了一个英文‘!’解决了wordpress的tag标签404错误的问题。
至此所有的问题都解决了,看看是不是很简单啊!

有些同学打开3.2.1版rewrite.php文件的时候,可能没有发现上述方法中的代码,而是如下的内容:
3.8也用这种方法

function get_category_permastruct() {
 return $this->get_extra_permastruct(‘category’);
 } 

应该是对代码进行了优化。往下找,找到了function get_extra_permastruct($name),代码如下:

function get_extra_permastruct($name) {
 if ( empty($this->permalink_structure) )
 return false;
 if ( isset($this->extra_permastructs[$name]) )
 return $this->extra_permastructs[$name][0];
 return false;
 } 

对这段代码进行修改,添加个英文”!”即可,改为如下形式:

function get_extra_permastruct($name) {
 if ( !empty($this->permalink_structure) )
 return false;
 if ( isset($this->extra_permastructs[$name]) )
 return $this->extra_permastructs[$name][0];
 return false;
 } 

即把代码

if ( empty($this->permalink_structure) ) 

中的
empty前加上英文的惊叹号“!”

上传覆盖掉原来的文件即可完美解决设置固定链接后分类目录和标签的404错误问题。

3.3.1 版本的设置方法

3.3.1 版本和3.3.1 版本以前的老版本设置方法还是一样的,只不过函数function get_category_permastruct()和function get_tag_permastruct()已经合并为一个了,如下:

<p>function get_category_permastruct() {
 return $this->get_extra_permastruct(‘category’);
 }</p><p>function get_tag_permastruct() {
 return $this->get_extra_permastruct(‘post_tag’);
 }</p><p>function get_extra_permastruct($name) {
 if ( empty($this->permalink_structure) )
 return false;</p><p>if ( isset($this->extra_permastructs[$name]) )
 return $this->extra_permastructs[$name][0];</p><p>return false;
 }</p> 

修改方法和上面的一样。只要修改一处即可,要修改的地方大约在第1000行。

保存上传到网站根目录,刷新或者重新打开网站。

此时,你会发现文章可以正常打开阅读了。

Tags: , , , , , ,

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • Twitter
  • RSS

Leave a Reply

You must be logged in to post a comment.

文字链