今天,云服务器网(yuntue.com)小编收到某新手站长的帮助求求,说升级出现了错误。网站文章管理页和其它页面后台都打不开了, 感觉升级后果很严重,怕网站因此而打不开了。其实,这完全不用担心,这个升级错误其实很多做的比较大的博主也有发生过。
WordPress升级出错:preg_match(): Compilation failed: quantifier does not follow a repeatable item at offset 1 in wp-includes/class-wp.php on line 222
中文意思是:警告:preg_match():编译失败:量词在第222行的wp-includes / class-wp.php中的偏移量1处未跟随可重复项
下面,我们来仔细看一下解决方案:
具有页面类型帖子,订单类型帖子或帖子的任何页面都会显示此错误。这仅在托管环境中可见。我无法在本地复制错误。
我们可以按此顺序执行以下操作:
1、停用所有插件
2、转到设置->永久链接并重新保存%postname%选项
3、验证错误仍然存在,没有插件和固定链接重置。
4、更新了所有插件和主题。
5、验证错误仍然存在。
6、在本地执行相同的步骤,但无法复制此问题。
注意:有时候很可能就是插件问题导致的(后台容易出现),当然也可能是主题(前端容易出现),小编帮助这个新手站长停用所有插件,刷新错误页面,没有正常。然后,又重新启动了所有插件,再刷新错误页面,恢复正常了。还有,如果真的是插件问题,可以慢慢挨个停用插件,直接停用哪个插件后,恢复正常,那可能就是插件兼容性问题或其它相关问题!
来自class-wp.php:
foreach ( (array) $rewrite as $match => $query ) {
// If the requested file is the anchor of the match, prepend it to the path info.
if ( ! empty( $requested_file ) && strpos( $match, $requested_file ) === 0 && $requested_file != $requested_path ) {
$request_match = $requested_file . ‘/’ . $requested_path;
}
if ( preg_match( “#^$match#”, $request_match, $matches ) ||
preg_match( “#^$match#”, urldecode( $request_match ), $matches ) ) {
if ( $wp_rewrite->use_verbose_page_rules && preg_match( ‘/pagename=\$matches\[([0-9]+)\]/’, $query, $varmatch ) ) {
// This is a verbose page match, let’s check to be sure about it.
$page = get_page_by_path( $matches[ $varmatch[1] ] );
if ( ! $page ) {
continue;
}
$post_status_obj = get_post_status_object( $page->post_status );
if ( ! $post_status_obj->public && ! $post_status_obj->protected
&& ! $post_status_obj->private && $post_status_obj->exclude_from_search ) {
continue;
}
}
// Got a match.
$this->matched_rule = $match;
break;
}
}