【发布时间】:2020-01-12 19:27:28
【问题描述】:
任何具有页面类型帖子、订单类型帖子或帖子的页面都会显示此错误。这仅在托管环境中可见。我无法在本地复制错误
我已按此顺序完成以下操作:
- 停用所有插件
- 进入设置->永久链接并重新保存 %postname% 选项
- 验证错误仍然存在,没有插件和永久链接重置。
- 更新了所有插件和主题。
- 已验证的错误仍然存在。
- 在本地执行相同的过程,但无法复制此问题。
来自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 迷们说话。
【问题讨论】:
-
嗨 Zach,你试过换主题吗?像 WP 默认主题?
-
是的。错误仍然存在。
-
$match的内容是什么?我怀疑里面有量词。 -
您可以尝试重新安装 WordPress 吗?这听起来像是一个糟糕的安装或托管问题。什么都没有了……
-
@toto 我不确定它代表什么,也就是说......它必须与页面上引用内容的链接有关。 (例如订单、页面、帖子等...)。我不确定匹配 url 的目的是什么,因为我会以不同的方式编程以避免这种奇怪的用例。我真的不想再次迁移,哈哈……如果必须,我会的,但这只是一个利益相关者批准站点。仪表板错误未显示在前端。任何时候它都必须迭代多个页面链接/编辑选项。
标签: php regex wordpress woocommerce genesis