共计 1528 个字符,预计需要花费 4 分钟才能阅读完成。
今天,丸趣 TV(wanqutv.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;
}
}