2012-07-11 123 views
8

我正在製作一個wordpress插件。我在錨內使用了add_query_string(),以便根據用戶點擊的鏈接加載內容。現在我需要知道獲取當前URI中參數值的最佳方式。在wordpress中獲取查詢字符串參數值

這可能是一個相當基本和愚蠢的問題,但我是編程新手,所以我很抱歉,如果我誤解了一些術語。

這是代碼:

 if (current_user_can('manage_options')) { 
      echo (
       '<div> 
        <ul> 
         <li><a href="'.add_query_arg('adminoption', 1).'">option 1</a></li> 
         <li><a href="'.add_query_arg('adminoption', 2).'">option 2</a></li> 
        </ul> 
       </div>' 
      ); 

      // if adminoption == 1 load content A 
      // if adminoption == 2 load content B 

     } 

回答

10

,我認爲你所要求的get_query_var()功能。 在你的情況下,你應該使用get_query_var('adminoption')。 希望它可以幫助

+1

謝謝大衛。很好的建議,但這對我來說是空白的。 事實是,我甚至不知道我是否應該使用add_query_arg()。 我只需要根據查詢字符串在同一頁面上顯示內容。我可以爲每個鏈接創建一個頁面,但這不是一種選擇,因爲我不會學習任何東西,學習是我搞亂創建插件的主要原因。 – rzb 2012-07-11 23:25:21

+2

點擊鏈接後,您的網址喜歡什麼? 是不是像www.yoursite.com/?adminoption=1 只是要知道你的問題是從add_query_arg()開始。 無論如何,你可以嘗試使用舊的php $ _GET ['adminoption']。 – 2012-07-11 23:56:00

+1

是的,點擊鏈接後的網址沒問題。而$ _GET ['adminoption']就像一個魅力。謝謝一堆!我是否在使用$ _GET的時候擔心安全問題? – rzb 2012-07-12 00:09:27

8

由大衛·卡魯斯的意見提高隱藏答案:

反正你可以使用原先的PHP $ _GET [「adminoption」]試試。

10

get_query_var('adminoption')僅適用於標準或已註冊的變量。因此,對於非標準的WordPress瓦爾你需要在你的functions.php文件先註冊吧:

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

get_query_var('adminoption'); 

實現的問題是舊的,但希望它可以幫助任何人。

+0

好的解決方案。對我來說完全正常工作^ _^ – 2016-01-20 07:03:25

+0

你在「$ vars []'數組中添加」group「是什麼?它不應該是'$ vars [] =「adminoption」;'? – 2016-10-20 15:45:17

相關問題