wordpress文章列表分页提示404的解决办法

就在刚才发现了我的个人博客网站上存在的一个问题,之前的分页一直好好的,今天竟然莫名其妙的出问题了,从第二页之后的所有分页都提示404错误,找不到页面,但是参数也传过来了,试了别的分页还是不行,都是一样的问题。在本地服务器代码改好了,可以正常显示分页了,但一上传到网上,原来的问题还是存在。

这下可是没辙了,于是找百度,寻求各种方法,终于看到一篇文章,按照上边的方法,把我的问题解决了。一是,害怕自己有一天还会遇到同样的问题,二是,如果还有小伙伴遇到和我一样的问题,可以帮助到大家,我现在把解决方法记录在这里,以便以后查找。解决方法如下:

打开目录下wp-includes\class-wp.php 这个文件,要找到function handle_404()这个函数,原代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
public function handle_404() {
global $wp_query;

// If we've already issued a 404, bail.
if ( is_404() )
return;

// Never 404 for the admin, robots, or if we found posts.
if ( is_admin() || is_robots() || $wp_query->posts ) {

$success = true;
if ( is_singular() ) {
$p = false;

if ( $wp_query->post instanceof WP_Post ) {
$p = clone $wp_query->post;
}

// Only set X-Pingback for single posts that allow pings.
if ( $p && pings_open( $p ) ) {
@header( 'X-Pingback: ' . get_bloginfo( 'pingback_url' ) );
}

// check for paged content that exceeds the max number of pages
$next = '<!--nextpage-->';
if ( $p && false !== strpos( $p->post_content, $next ) && ! empty( $this->query_vars['page'] ) ) {
$page = trim( $this->query_vars['page'], '/' );
$success = (int) $page <= ( substr_count( $p->post_content, $next ) + 1 );
}
}

if ( $success ) {
status_header( 200 );
return;
}
}

// We will 404 for paged queries, as no posts were found.
if ( ! is_paged() ) {

// Don't 404 for authors without posts as long as they matched an author on this site.
$author = get_query_var( 'author' );
if ( is_author() && is_numeric( $author ) && $author > 0 && is_user_member_of_blog( $author ) ) {
status_header( 200 );
return;
}

// Don't 404 for these queries if they matched an object.
if ( ( is_tag() || is_category() || is_tax() || is_post_type_archive() ) && get_queried_object() ) {
status_header( 200 );
return;
}

// Don't 404 for these queries either.
if ( is_home() || is_search() || is_feed() ) {
status_header( 200 );
return;
}
}

// Guess it's time to 404.
$wp_query->set_404();
status_header( 404 );
nocache_headers();
}

改成以下代码并删除 && !is_paged() 注意备份。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
function handle_404() {

global $wp_query;

if ( !is_admin() && ( 0 == count( $wp_query->posts ) ) && !is_404() && !is_robots() && !is_search() && !is_home() ) {

// Don’t 404 for these queries if they matched an object.

if ( ( is_tag() || is_category() || is_tax() || is_author() ) && $wp_query->get_queried_object() && !is_paged() ) {

if ( !is_404() )

status_header( 200 );

return;

}

$wp_query->set_404();

status_header( 404 );

nocache_headers();

} elseif ( !is_404() ) {

status_header( 200 );

}

}

我通过上边的方法解决了分页显示404的问题,如果谁有同样的问题,那就可以使用这个方法解决了,不用像我烦恼了一晚上。

分享本文至:


发布时间:2018-1-5 22:28 Friday
  • 版权声明:除非注明,文章均为【石家庄SEO_东轩博客一个自媒体的个人优秀博客】原创,欢迎转载!转载请注明本文地址,谢谢!

  • 作者:石家庄SEO_东轩博客一个自媒体的个人优秀博客

    东轩,IT专业,主攻网站前端设计制作方面以及seo技术。博主现在单身哦。有单身的小姐姐可以私信博主。

    返回列表
    上一篇:
    下一篇:

    发表评论

    快捷回复: