I need to determine a redirect to another page very early in WP loading, specifically within init
hook. For anyone familiar, at init
hook, no global variables, like $pagenow
or $wpdb
, are set or initialized yet. So I have to rely on $_SERVER
superglobal to determine the current page. But which of the various $_SERVER
variables is the safest to use? I'm reading that some don't exist at specific environments. I checked mine, and I got the following results...
['REQUEST_URI']
<- current page, also contains the query string, ie./current-page/?some-query-string
['REDIRECT_URL']
<- clean current page, ie./current-page/
['SCRIPT_URI']
<- full URL, doesn't contain the query string, ie.https://my-domain.tld/current-page/
['SCRIPT_URL']
<- clean current page, ie./current-page/
['REDIRECT_SCRIPT_URI']
<- full URL, doesn't contain the query string, ie.https://my-domain.tld/current-page/
['REDIRECT_SCRIPT_URL']
<- clean current page, ie./current-page/
What I need is the current page, free of query-strings, etc, so anything like REDIRECT_URL
, SCRIPT_URL
, REDIRECT_SCRIPT_URL
are fine, but which of the three is the safest to use?
Thank you in advance for any answer.
CodePudding user response:
If you're trying to redirect a page to another page then you should use template_redirect
action then you can check your page with the function is_page
and then using wp_safe_redirect
you can redirect your page to another page/url.