我想要以下URL:
以如下网址工作。 (下面的方法效果很好。)
当我将以下代码添加到/search/
时,我的functions.php
页可以实现此行为。
function my_rewrite_rule() {
add_rewrite_rule('^search/([^/]*)?','index.php?pagename=search&search_text=$matches[1]','top');
}
,但是相同的代码不适用于/shop/
页。
通常的行为是列出所有产品。但是/shop/
页的网址未显示任何结果。
编辑:即使刷新了永久链接,该按钮也无法使用。
答案 0 :(得分: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'
);
} );