I am busy developing a WordPress application and I need to be able to pass url parameters using WordPress functions. I use add_query_arg()
function to add a url parameter. However, when I try to get the passed value in the other page using get_query_var()
nothing gets returned. When I used $_GET['var_name']
the values gets returned.
What is the possible cause of this situation? I can successfully add arguments to the url but I am not able to access them.
get_query_var() only retrieves public query variables that are recognized by WP_Query. This means that if you create your own custom URLs with their own query variables, get_query_var() will not retrieve them without some further work (see below).
$query is an array with the values passed when WP_Query is called, your custom values. $query_vars is an array with all the parameters supported by WP_Query , including the parameters usen when WP_Query was called and the rest of the parameters with the default value.
To get a vars from the query string you can use PHP's $_GET['key'] method. Depending on what you are doing, you can also use get_query_var('key') , this function works with parameters accepted by the WP_Query class (cat, author, etc).
I managed to get the get_query_var()
function to work.
To use the two functions successfully, you need to add the query vars to wordpress's query vars array. Here is a code sample.
function add_query_vars_filter( $vars ){
$vars[] = "query_var_name";
return $vars;
}
//Add custom query vars
add_filter( 'query_vars', 'add_query_vars_filter' );
Now you can use get_query_var()
and add_query_arg()
as follows:
Add the query var and value
add_query_arg( array('query_var_name' => 'value'), old_url );
Get the query var value
$value = get_query_var('query_var_name');
More information and code samples can be found at the Codex: get_query_var and add_query_arg
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With