阿里云服务器

今天客户wordpress网站出现列表分页显示404页面的情况,列表页正常,翻页的时候出现404的错误页面。

0200504135135.jpg

遇到这个问题需要修改wordpress文件wp-includes\class-wp.php ,

要找到对应函数function handle_404()

	public function handle_404() {
		global $wp_query;

		/**
		 * Filters whether to short-circuit default header status handling.
		 *
		 * Returning a non-false value from the filter will short-circuit the handling
		 * and return early.
		 *
		 * @since 4.5.0
		 *
		 * @param bool     $preempt  Whether to short-circuit default header status handling. Default false.
		 * @param WP_Query $wp_query WordPress Query object.
		 */
		if ( false !== apply_filters( 'pre_handle_404', false, $wp_query ) ) {
			return;
		}

		// 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', 'display' ) );
				}

				// 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();
	}


修改为如下代码,就可以解决这个问题。

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()  ) {  
if ( !is_404() )  
status_header( 200 );  
return;  
}  
$wp_query->set_404();  
status_header( 404 );  
nocache_headers();  
} elseif ( !is_404() ) {  
status_header( 200 );  
}  
}




热门话题

wordpress更改后台住房和城乡建设部网站无在建门头竹圈logo设计微信打不开百度网盘小程序织梦手机站发文不更新织音绘梦潮汕网站建设梦三国织炎龙舞电脑设计logo6织梦调用推荐文章标题字数蒂芙尼logo设计师wordpress的主题哪个好洛阳网站建设启辰网络
相关阅读:
  • wordpress设置游客只能访问指定页面的方法
  • wordpress页面默认排序修改的方法
  • wordpress新版本5.4 “Adderley” 发布上线,更新多项功能
  • wordpress默认编辑器功能增加的方法
  • wordpress多站点功能快速开启方法
  • wordpress分类和文章增加模板选择功能
  • wordpress文章编辑器标签自动生成排除
  • wordpress根据自定义字段来调用文章列表的方法
  • wordpress文章中图片模糊不清被压缩的问题
  • wordpress网站自动添加关键词的方法