Wordpress Woocommerce添加\u重写\u规则不适用于商店页面

Wordpress Woocommerce添加\u重写\u规则不适用于商店页面,wordpress,woocommerce,url-rewriting,wordpress-theming,Wordpress,Woocommerce,Url Rewriting,Wordpress Theming,我想要以下网址: 工作如下网址。(下面的一个效果很好。) 当我将以下代码添加到functions.php时,我可以在我的/search/页面上实现这种行为 function my_rewrite_rule() { add_rewrite_rule('^search/([^/]*)?','index.php?pagename=search&search_text=$matches[1]','top'); } 但是相同的代码不适用于/shop/页面 正常行为应该是列出所有产品。

我想要以下网址:

工作如下网址。(下面的一个效果很好。)

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

function my_rewrite_rule() {
    add_rewrite_rule('^search/([^/]*)?','index.php?pagename=search&search_text=$matches[1]','top');
}
但是相同的代码不适用于
/shop/
页面

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


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

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

如果是,则针对
/shop/
存档的WooCommerce查询将匹配
post\u 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'
    );
} );

转到设置>永久链接并保存,即使您没有更改任何内容。那么试试这些URL。@SagarBahadurTamang很抱歉,即使是刷新的永久链接也无法使用。谢谢,这正是我需要的。