WordPress 警告:preg_match():编译失败:在偏移量 1 处没有可重复的内容

WordPress warning: preg_match(): Compilation failed: nothing to repeat at offset 1

我朋友的基于 WordPress 的网站突然开始在子页面上显示此警告:

Warning: preg_match(): Compilation failed: nothing to repeat at offset 1 in /wp-includes/class-wp.php on line 218

警告中返回的第218/219行如下:

if ( preg_match("#^$match#", $request_match, $matches) ||
     preg_match("#^$match#", urldecode($request_match), $matches) ) {

似乎代码负责 URL 返工。

有什么可能出错的想法吗?

错误没有出现在主页上,而是出现在子页面上。因此,我猜永久链接结构已损坏。一个经常被建议的修复是这样的:

  1. 暂时禁用您的所有插件!不要跳过这一步。
  2. 转到 WordPress 管理仪表板:设置 -> 永久链接 请注意您在其他地方的自定义永久链接字段中的内容
  3. 临时切换到默认永久链接。保存设置。
  4. 检查有问题的页面:preg_match 错误消失了吗?
  5. 切换回您之前的自定义永久链接设置
  6. 重新启用所有插件,页面应该恢复正常。

我遇到了同样的问题,这让我抓狂!

这对我来说是一个简单的修复,希望对遇到同样问题的其他人也适用!

我所要做的就是使用 /wp-admin 登录到站点的后端,然后转到“设置”>“永久链接”,然后将其设置为 'Post Name',然后单击 'Save Changes'。硬刷新您遇到问题的 page/s,它可能会得到解决。