How to override url params with rewrite rules vars?

Viewed 29

Setup a rule:

add_action( 'init',  function() {
    add_rewrite_rule( '^myparamname/?$', 'index.php?myparamname=hello', 'top' );
} );

Whitelist the query param:

add_filter( 'query_vars', function( $query_vars ) {
    $query_vars[] = 'myparamname';
    return $query_vars;
} );

Get query vars:

localhost/myparamname

get_query_var('myparamname'); // hello

localhost/myparamname?myparamname=hi or localhost/myparamname/?myparamname=hi

get_query_var('myparamname'); // hi

As you can see, "hi" message is displayed instead of "hello" in the second example. Here, the desired situation is generally "hello".

0 Answers
Related