2012-07-11 39 views
8

Tôi đang tạo một plugin wordpress. Tôi đã sử dụng add_query_string() bên trong các neo để tải nội dung dựa trên liên kết mà người dùng đã nhấp vào. Bây giờ tôi cần biết cách tốt nhất để lấy giá trị tham số trong URI hiện tại.Nhận giá trị tham số chuỗi truy vấn trong wordpress

Đây có thể là câu hỏi khá cơ bản và ngu ngốc, nhưng tôi mới lập trình nên tôi xin lỗi nếu tôi hiểu sai một số cụm từ.

Đây là mã:

 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 

     } 

Trả lời

10

Tôi nghĩ rằng bạn đang yêu cầu get_query_var() chức năng. Trong trường hợp của bạn, bạn nên sử dụng get_query_var ('adminoption'). Hy vọng nó giúp

+1

Cảm ơn David. Nice gợi ý, nhưng điều đó trở lại trống cho tôi. Sự thật là tôi thậm chí không biết mình có nên sử dụng add_query_arg() hay không. Tất cả những gì tôi cần làm là hiển thị nội dung trên cùng một trang tùy thuộc vào chuỗi truy vấn. Tôi chỉ có thể tạo một trang cho mỗi liên kết nhưng đó không phải là một tùy chọn vì tôi không học bất cứ điều gì, và học tập là lý do chính tôi đang rối tung với việc tạo ra một plugin. – rzb

+2

Url của bạn như thế nào sau khi bạn nhấp vào liên kết? Có giống như www.yoursite.com/?adminoption=1 Chỉ cần biết liệu sự cố của bạn có bắt đầu trên add_query_arg() hay không. Dù sao bạn có thể thử với php cũ $ _GET ['adminoption']. –

+1

Có, URL sau khi nhấp vào liên kết là tốt. Và $ _GET ['adminoption'] làm việc như một sự quyến rũ. Cảm ơn nhiều! Tôi có phải lo lắng về bảo mật khi sử dụng $ _GET không? – rzb

8

Nâng cao câu trả lời ẩn trong các ý kiến ​​của David Carrus:

Dù sao bạn có thể thử với cái cũ php $ _GET [ 'adminoption'].

6

Để nhận được một vars từ chuỗi truy vấn, bạn có thể sử dụng phương thức $_GET['key'] của PHP.

Tùy thuộc vào những gì bạn đang làm, bạn cũng có thể sử dụng get_query_var('key'), this function works with parameters accepted by the WP_Query class (cat, author, etc).

Nếu bạn muốn sử dụng các truy vấn tùy chỉnh với hàm này, bạn cần sử dụng bộ lọc query_vars để sửa đổi danh sách các truy vấn được hỗ trợ, bạn có thể đọc cách thực hiện điều đó trong tài liệu được liên kết ở trên.

10

get_query_var ('adminoption') chỉ hoạt động với các vars chuẩn hoặc đăng ký. Vì vậy, đối với các vlog Wordpress không chuẩn, bạn cần phải đăng ký nó trước tiên trong tệp functions.php của mình:

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

get_query_var('adminoption'); 

Nhận ra câu hỏi là cũ nhưng hy vọng nó giúp mọi người.

+0

Các giải pháp hay. Hoàn toàn làm việc tốt cho tôi^_^ –

+0

Bạn đang thêm "nhóm" vào mảng '$ vars []'? Không nên là '$ vars [] =" adminoption ";'? –

Các vấn đề liên quan