【问题标题】:Woocommerce Add_Rewrite_Rule Not Working For Shop PageWoocommerce Add_Rewrite_Rule 不适用于商店页面
【发布时间】:2019-10-21 08:25:32
【问题描述】:

我想要以下网址:

https://www.example.com/shop/keyword/

按照以下 URL 工作。 (下面一个效果很好。)

https://www.example.com/shop/?search_text=keyword

当我将以下代码添加到functions.php 时,我可以为我的/search/ 页面实现此行为。

function my_rewrite_rule() {
    add_rewrite_rule('^search/([^/]*)?','index.php?pagename=search&search_text=$matches[1]','top');
}

但相同的代码不适用于/shop/ 页面。

正常行为应该是列出所有产品。但是/shop/ 页面 URL 没有显示任何结果。

编辑:即使在永久链接被刷新后它也不起作用。

【问题讨论】:

  • 转到设置 > 永久链接并保存,即使您不更改任何内容。那就试试这些网址吧。
  • @SagarBahadurTamang 抱歉,即使更新了永久链接,它也无法正常工作。

标签: wordpress woocommerce url-rewriting wordpress-theming


【解决方案1】:

我可能不完全理解你的问题,但这就是你想要做的吗?

如果是这样,/shop/ 存档的 WooCommerce 查询匹配 post_type=product

尝试此重写规则并通过转到 WordPress 仪表板中的“设置”->“永久链接”,然后单击“保存”按钮来刷新您的永久链接。

/**
 * Add rewrite rule from `/shop/keyword/` to `shop/?search_text=keyword`
 *
 * @link https://stackoverflow.com/questions/56467044/woocommerce-add-rewrite-rule-not-working-for-shop-page
 */
add_action( 'init', function (): void {
    add_rewrite_rule(
        '^shop/([^/]*)?',
        'index.php?post_type=product&search_text=$matches[1]',
        'top'
    );
} );

【讨论】:

  • 谢谢,这正是我需要的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-16
  • 2017-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多