标签: add_rewrite_tag, URL 重写, WooCommerce
- 该话题包含 1 个回复,2 人参与,最后由
诗语 更新于 6 年、 11 月前 。
-
作者帖子
-
本意是:
https://localhost/fhgroupauto/index.php?s=fb2&post_type=product&type_aws=true&id=1&filter=1
重写成
https://localhost/fhgroupauto/search/fb2
并获得 搜索参数 s, 传递给搜索页面.
由于使用 add_rewrite_rule, 将无法获得 $_GET[‘s’], 所以必须使用 add_rewrite_tag 去获得这个参数, 通过 $wp_query->query_vars[‘s’] 传递. 但是不知道测试的时候, 却 $wp_query->query_vars[‘s’] 获得的值为空.
下面是我写的 URL 重写的 PHP 代码:
function custom_rewrite_basic() {
add_rewrite_tag( ‘%s%’, ‘(.+)’ );
add_rewrite_rule(‘^search/(.+)/?$’, ‘index.php?s=$matches[1]&post_type=product&type_aws=true&id=1&filter=1’, ‘top’);
echo $wp_query->query_vars[‘s’];
}
add_action(‘init’, ‘custom_rewrite_basic’);
系统 URL 这个用的不是很多,如果特别有必要的话,这里是 WooCommerce
add_rewrite_tag
方面的资料可以参考下。https://codex.wordpress.org/Rewrite_API/add_rewrite_tag
https://developer.wordpress.org/reference/functions/add_rewrite_tag/
https://wordpress.stackexchange.com/questions/71305/when-should-add-rewrite-tag-be-used
https://www.daggerhart.com/wordpress-rewrite-api-examples/
我们一般只是为了简约好看,把 WooCommerce 的产品 URL 改成了 ID 形式的。
-
作者帖子
- 哎呀,回复话题必需登录。