標籤: 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 形式的。
-
作者帖子
- 哎呀,回覆話題必需登入。