我要以下网址:
https://www.example.com/shop/keyword/
可以按以下网址工作。 (下面的一个很好。)
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没有显示结果。
编辑:即使永久链接刷新后, 它也不起作用。
#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'
);
} );
评论前必须登录!
注册