2012-07-11 12 views
8

Robię wtyczkę dla wordpress. Użyłem metody add_query_string() wewnątrz kotwicy, aby załadować zawartość na podstawie tego, który link kliknął użytkownik. Teraz muszę znać najlepszy sposób uzyskania wartości parametru w bieżącym identyfikatorze URI.Uzyskiwanie wartości parametru zapytania w wordpress

To prawdopodobnie dość proste i głupie pytanie, ale jestem nowy w programowaniu, więc przykro mi, jeśli źle interpretuję niektóre terminy.

Jest to kod:

 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 

     } 

Odpowiedz

10

myślę prosicie get_query_var() funkcji. W twoim przypadku powinieneś użyć get_query_var ('adminoption'). Nadzieja pomaga

+1

Dzięki David. Fajna sugestia, ale wróciło to dla mnie puste. Prawda jest, nie wiem nawet, czy powinienem używać add_query_arg(). Wszystko, co muszę zrobić, to pokazać zawartość na tej samej stronie w zależności od ciągu zapytania. Mogę po prostu utworzyć jedną stronę dla każdego linku, ale to nie jest opcja, ponieważ niczego się nie nauczyłem, a uczenie się jest głównym powodem, dla którego zaczynam tworzyć wtyczkę. – rzb

+2

Jaki jest Twój adres URL po kliknięciu linku? Jest to coś w stylu www.twojawitryna.pl/?adminopcja=1 Wystarczy wiedzieć, czy Twój problem zaczyna się na add_query_arg(). W każdym razie możesz spróbować ze starym php $ _GET ['adminoption']. –

+1

Tak, adres URL po kliknięciu łącza jest w porządku. A $ _GET ['adminoption'] działał jak czar. Wielkie dzięki! Czy muszę się martwić o bezpieczeństwo podczas korzystania z $ _GET? – rzb

8

Podnoszenie ukrytą odpowiedź w komentarzach Davida Carrus:

Zresztą można spróbować ze starym php $ _GET [ 'adminoption'].

6

Aby uzyskać vary z ciągu zapytania, można użyć metody PHP $_GET['key'].

W zależności od tego, co robisz, możesz również użyć get_query_var('key'), this function works with parameters accepted by the WP_Query class (cat, author, etc).

Jeśli chcesz użyć niestandardowych zmiennych zapytań z tą funkcją, musisz użyć filtru query_vars, aby zmodyfikować listę obsługiwanych zmiennych vars, możesz przeczytać, jak to zrobić w dokumentacji powiązanej powyżej.

10

get_query_var ('adminoption') działa tylko ze zmiennymi standardowymi lub zarejestrowanymi. Więc dla niestandardowych Wordpress vars trzeba by ją najpierw zarejestrować w pliku 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'); 

uświadomić sobie pytanie jest stary, ale mam nadzieję, że ktoś pomaga.

+0

Ładne rozwiązania. Całkowicie działa dla mnie^_^ –

+0

Co dodajesz "group" do tablicy '$ vars []'? Czy nie powinno to być '$ vars [] =" adminoption ";'? –

Powiązane problemy