Woocommerce Add_Rewrite_Rule不适用于商店页面

时间:2019-06-05 19:46:57

标签: wordpress woocommerce url-rewriting wordpress-theming

我想要以下URL:

  

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

以如下网址工作。 (下面的方法效果很好。)

  

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

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

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

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

通常的行为是列出所有产品。但是/shop/页的网址未显示任何结果。

编辑:即使刷新了永久链接,该按钮也无法使用。

1 个答案:

答案 0 :(得分:1)

我可能无法完全理解您的问题,但这是您的尝试吗?

enter image description here

如果是,则/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'
    );
} );