代码之家  ›  专栏  ›  技术社区  ›  adamlaughlin

WooCommerce固定链接:重写规则未按预期生成

  •  0
  • adamlaughlin  · 技术社区  · 2 年前

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

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

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

    我将WooCommerce的“商店页面”改回了一个空值,但没有恢复到以前的行为并显示我的自定义商店页面,这导致我为我们的店面构建的页面变为空-只有页眉和页脚,甚至没有404消息。我构建的页面的标签是“/shop”。

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

    然而,当我将自定义店面页面的标签改回“/shop”时,WordPress只在前端给我们一个页眉和页脚,中间没有任何内容(仍然没有404消息)

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

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

    1 回复  |  直到 2 年前
        1
  •  0
  •   Zain Abbas    2 年前

    永久链接:

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

    刷新重写规则:

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

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

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

    检查其他插件/主题:

    可能与其他插件或您正在使用的主题存在冲突。暂时停用其他插件并切换到默认的WordPress主题(如Twenty-Twenty-21),看看问题是否仍然存在。如果没有,请逐个重新激活每个插件/主题以确定罪魁祸首。

    WooCommerce模板文件:

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

    .htaccess文件:

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

    WooCommerce设置:

    仔细检查WooCommerce设置,尤其是在WooCommCommerce>设置>产品>陈列确保您的自定义商店页面被选为商店页面。

    数据库检查:

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

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

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

    在进行重大更改之前,请记住备份您的网站,如果可能的话,最好先在临时站点上执行这些测试。