WooCommerce 永久链接:重写规则未按预期生成

问题描述 投票:0回答:1

我在两个独立的环境中开发了一个 Wordpress / WooCommerce 网站。启动后,我遇到了实时和开发环境不一致的问题,我无法解决。

在我们的开发环境中,我将 WooCommerce“商店页面”设置留空,因为我打算使用我们自己设计的页面作为店面。这在当时效果很好。

在我们的网络主机服务器上上线后的某个时刻,“商店页面”设置已更改以匹配我们构建的页面的 URL,并且 WooCommerce 开始在我们为我们构建的页面底部回显其默认店面模板商店。

我将 WooCommerce“商店页面”更改回空值,但没有恢复到之前的行为并显示我的自定义商店页面,这导致我为店面构建的页面呈现为空 - 只有页眉和页脚,甚至没有404消息。我构建的页面的 slug 是“/shop”。

将自定义店面页面的别名更改为“/store”使其可以正常工作。然而,客户对“/shop”的 URL 有着强烈的渴望。

然而,当我将自定义店面页面的 slug 更改回“/shop”时,WordPress 只在前端为我们提供了页眉和页脚,中间没有任何内容(仍然没有 404 消息。)

我尝试创建一个“虚拟商店页面”来满足 WooCommerce 在 WooCommerce > 设置 > 产品中对“商店页面”的要求(带有虚拟商店页面),但这并没有改善情况我为我们的店面构建的“/shop”页面 - 如果该页面的 slug 是“/store”,则 WordPress 前端仍然只显示该页面的内容,即使“/shop”未被任何其他页面使用,或者由 WooCommerce 提供。

我尝试将flush_rewrite_rules()添加到我们的functions.php中并以这种方式加载它几次,但这是我能找到的唯一技巧,但没有成功。

wordpress woocommerce url-rewriting slug
1个回答
0
投票

永久链接:

检查开发和实时环境中的永久链接设置。转到“设置”>“永久链接”并确保它们在两个站点上的设置方式相同。您可能需要切换到默认设置(例如“普通”),然后返回到您的首选设置以刷新重写规则。

刷新重写规则:

您提到使用flush_rewrite_rules(),但让我们尝试更全面的方法。您可以临时将以下代码添加到主题的functions.php中:

php 复制代码 全局 $wp_rewrite; $wp_rewrite->flush_rules();

这应该刷新重写规则并可能解决问题。验证效果后记得删除此代码。

检查其他插件/主题:

可能与其他插件或您正在使用的主题发生冲突。暂时停用其他插件并切换到默认 WordPress 主题(例如“二十二十一”)以查看问题是否仍然存在。如果没有,请一一重新激活每个插件/主题以找出罪魁祸首。

WooCommerce 模板文件:

检查您的主题目录中是否有 WooCommerce 的自定义模板文件。有时,自定义模板可能会覆盖默认行为。确保您的自定义模板结构正确并且不会引起冲突。

.htaccess 文件:

确保您的 .htaccess 文件配置正确。您可以通过转到“设置”>“永久链接”并再次保存永久链接设置来重新生成它。

WooCommerce 设置:

仔细检查 WooCommerce 设置,尤其是在 WooCommerce > 设置 > 产品 > 显示下。确保选择您的自定义商店页面作为商店页面。

数据库检查:

有时,问题可能与数据库有关。确保两个环境上的数据库结构和数据相同。您可能希望从开发环境导出数据库并将其导入到实时环境中。

服务器缓存: 如果您的网络主机使用服务器端缓存,请清除缓存以确保任何更改生效。

WP_DEBUG: 在 wp-config.php 文件中启用 WP_DEBUG 以检查任何错误消息。查找与永久链接或 WooCommerce 相关的任何错误消息。

请记住在进行重大更改之前备份您的网站,如果可能的话,首先在临时网站上执行这些测试总是一个好主意。

© www.soinside.com 2019 - 2024. All rights reserved.