2017-07-27 52 views
0

我正在將「?sel」附加到我的URL中,以便跟蹤選擇哪個鏈接,然後根據該選擇在下一頁中顯示項目。我用的functions.php以下將其註冊爲一個查詢VAR(而不是僅僅使用$ _GET):在WordPress從URL中刪除自定義變量

function add_query_vars_filter($vars){ 
 
    $vars[] = "sel"; 
 
    return $vars; 
 
} 
 
add_filter('query_vars', 'add_query_vars_filter');

然後創建與使用VAR add_query_arg的鏈接()鏈接所在的模板。

$link = add_query_arg('sel', $slug, get_the_permalink($news_specials_listing_page_id)); 
<a href="<?php echo $link ?>"> 

但是,如果我點擊該鏈接,我仍然可以在URL中看到「?sel」。我已將我的永久鏈接設置設置爲在設置>永久鏈接中發佈名稱,所以我沒有看到典型的WordPress變量。是否可以隱藏「sel」以及其他註冊查詢變量,並仍然使用get_query_var()獲取值?

我也試過添加一個自定義的重寫標籤並沖洗我的固定鏈接。

function custom_rewrite_tag() { 
 
    add_rewrite_tag('%sel%', '([^&]+)'); 
 
} 
 
add_action('init', 'custom_rewrite_tag', 10, 0);

我一直在嘗試add_rewrite_rule(),並發現它增加的RewriteRules爲.htaccess。因此,如果我添加一個重寫規則來捕獲正則表達式中的sel變量並將其重定向,變量是否仍會保存?我也很難搞清楚規則是什麼。

回答

1

使用GET的重點是將變量放入您的URL中。這形成了一個可以被搜索引擎加入書籤和索引的獨特URL。如果你不想這樣做,請改用POST。 POST允許您加密變量名稱,使其遠比您所問的解決方案更安全。