regex 注意:preg_match():编译失败:quantifier does not follow a repeatable item at offset 1 in wp-includes/class-wp.php on line 222

siv3szwd  于 2023-10-22  发布在  PHP
关注(0)|答案(4)|浏览(172)

任何带有页面类型文章、订单类型文章或文章的页面都显示此错误。这仅在托管环境中可见。我无法在本地复制错误
我按照这个顺序做了以下事情:
1.停用所有插件
1.转到设置->永久链接并重新保存%postname%选项
1.验证错误仍然存在,没有插件和永久链接重置。
1.更新了所有插件和主题。
1.验证错误仍然存在。
1.在当地遵循相同的程序,无法重现此问题。
从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;
    }
}

我已经在网上搜索了这个问题的答案,但我什么也没找到。请让WordPress迷们说话。

jchrr9hc

jchrr9hc1#

谢谢大家的帮助。这最终与一个名为事件日历的插件发生冲突。如果您创建一个名为事件的页面,并将事件日历默认页面的“事件”更改为其他内容,则会发生此错误。因为这是一个第三方应用程序,我只是去寻找其他的东西,以满足我的需要。通过从plugins目录中完全删除该文件夹,可以清 debugging 误。

szqfcxe2

szqfcxe22#

更改Permalink设置

在您的WordPress网站中,在设置->如果永久链接设置为文章名称尝试将其更改为自定义结构,反之亦然。这帮助我修复了这个错误。
enter image description here

pepwfjgg

pepwfjgg3#

我有同样的错误在所有网页上,除了主页。当我将永久链接从“Postname”更改为“Simple”(页面ID)时,错误消失了。当我切换回来时,错误也回来了。最后,我试着在设置->通用->“WordPress地址(URL)”和“站点地址(URL)"中的基本URL末尾添加一个斜杠。保存设置后,斜线消失了(因为它是无效的),但问题也解决了。

p8h8hvxi

p8h8hvxi4#

停用事件日历插件摆脱了错误。这个错误发生在我删除了一个名为“事件”的页面之后。

相关问题