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".
question from:
https://stackoverflow.com/questions/65648158/how-to-override-url-params-with-rewrite-rules-vars 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…