6

I need to generate a simple error message on a page by passing a variable through the URL.

The URL is structured as follows:

http://site.com/parent-category/category/?error=pause

I'm sure it's the permalinks rewrite interfering, but I'm not sure how to resolve it.

  • You need to know you to generate using $_GET variable, or how to add query args in url? – Mamaduka Feb 6 '12 at 17:18
12

Try adding the variable to the WordPress' array of 'recognised query variables'...

add_filter('query_vars', 'my_register_query_vars' );
function my_register_query_vars( $qvars ){
    //Add query variable to $qvars array
    $qvars[] = 'my_error';
    return $qvars;
}

Then the value of 'my_error' can be found via get_query_var('my_error'). (See Codex)

EDIT

From Otto's comment, it's better to do:

add_action('init','add_my_error');
function add_my_error() { 
    global $wp; 
    $wp->add_query_var('my_error'); 
}
  • I wouldn't use that filter in particular. We have functions that you should use for that instead. add_action('init','add_my_error'); function add_my_error() { global $wp; $wp->add_query_var('my_error'); } – Otto Feb 6 '12 at 20:49
  • Cool. It doesn't really matter, actually, I just prefer to not use deep hooks when shallow ones will do the job. :) – Otto Feb 6 '12 at 21:01
  • I always use add_rewrite_tag($tagname,$regex). Any difference? – Rob Vermeer Feb 6 '12 at 21:10
0

This was the only way I could get this to work

add_action('init','add_query_args');
function add_query_args()
{ 
    add_query_arg( 'error', 'pause' );
}

http://codex.wordpress.org/Function_Reference/add_query_arg

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.