wp redirect - wp_redirect is not working sometimes

admin2025-01-07  4

I've tested the following code in my function.php:

if ( $_GET['test'] ) {
  wp_redirect('');
}

and it works, if I go to /?test=true, I will be redirected to Google.

But I found out when I put wp_redirect() in a function hooked to some action, it won't work. Instead after its execution users will stay on the same page, and, in my case, some CSS files seems not being loaded.

Since I haven't figured out what kind of actions will trigger this behavior, it is hard for me to reproduce the problem and demonstrate it in a simple way. So I take some screen recording, hope that will help make sense of the problem I am experiencing:

I've tested the following code in my function.php:

if ( $_GET['test'] ) {
  wp_redirect('https://google.com');
}

and it works, if I go to https://example.com/?test=true, I will be redirected to Google.

But I found out when I put wp_redirect() in a function hooked to some action, it won't work. Instead after its execution users will stay on the same page, and, in my case, some CSS files seems not being loaded.

Since I haven't figured out what kind of actions will trigger this behavior, it is hard for me to reproduce the problem and demonstrate it in a simple way. So I take some screen recording, hope that will help make sense of the problem I am experiencing: https://www.loom.com/share/4cfad90fde494fbd99db113c30b7555b

Share Improve this question asked Apr 8, 2022 at 22:02 shenkwenshenkwen 1311 silver badge9 bronze badges 1
  • 1 From what I could tell, the problem is because wp_redirect() (which uses the native header() function in PHP) should actually be called on page load, or before any output is sent (to the browser), but then you actually called the function after the submit button is (and other output are) rendered... – Sally CJ Commented Apr 9, 2022 at 0:05
Add a comment  | 

1 Answer 1

Reset to default 0

As the docs say:

Note: wp_redirect() does not exit automatically, and should almost always be followed by a call to exit;:

wp_redirect( $url );
exit;
转载请注明原文地址:http://conceptsofalgorithm.com/Algorithm/1736257254a424.html

最新回复(0)