wp_redirect () 함수가 작동하지 않습니다
7 대답
- 투표
-
- 2012-03-21
두 가지 잘못된 점 :
- URL로
$post- >guid
를 사용하지 마세요 -
wp_redirect ()
( Codex 참조 ) <인용구>wp_redirect ()
는 자동으로 종료되지 않으며 거의 항상 종료되어야합니다.
//..... 문제의 코드 $post_id=wp_insert_post ($new_post); $ url=get_permalink ($post_id); wp_redirect ($ url); 출구();
Two things wrong here:
- Don't use
$post->guid
as an url - You must
exit()
after usingwp_redirect()
(see the Codex)wp_redirect()
does not exit automatically and should almost always be followed by exit.
//..... code as in question $post_id = wp_insert_post($new_post); $url = get_permalink( $post_id ); wp_redirect($url); exit();
-
30 초로 이길 : DBeat you by 30 seconds :D
- 0
- 2012-03-21
- soulseekah
-
페이지 콘솔을 실행하면 작동하지 않습니다. 302 Found 479ms jquery ... r=1.7.1 (4 행) http ://localhost/wordpress/newpages-17/가져 오기 200 OK 1.2 초 로딩 중 ..........this is not working, if i run the page console show 302 Found 479ms jquery...r=1.7.1 (line 4) GET http://localhost/wordpress/newpages-17/ 200 OK 1.2s loading..........
- 0
- 2012-03-21
- SANS780730
-
그것은 JS 오류입니다.`wp_redirect`와는 관련이 없습니다.위의 대답은 올바른 방법이므로 다른 일을 잘못하고 있어야합니다.Thats a JS error. Nothing to do with `wp_redirect`. The above answer is the correct way to do it, so you must be doing something else wrong.
- 2
- 2012-03-21
- Stephen Harris
-
죄송합니다. GET localhost/wordpress/newpages-17 200 OK 1.2s loading ..........sorry.it show only GET localhost/wordpress/newpages-17 200 OK 1.2s loading..........
- 0
- 2012-03-21
- SANS780730
-
@StephenHarris http://wordpress.stackexchange.com/q/76991/10413에서 내 리디렉션 질문을 살펴 보시겠습니까? $pid를 사용 하여이 답변에서 코드를 시도했지만 여전히 작동하지 않습니다.감사@StephenHarris would you mind looking over my redirect question at http://wordpress.stackexchange.com/q/76991/10413 I've also tried your code from this answer using $pid but still can't get it to work. Thanks
- 0
- 2012-12-22
- Anagio
-
이 질문은 많은 조회수를 얻으므로 문제가 해결되면이 답변을 수락하는 것을 고려하십시오.이렇게하면 질문이 답변 된 것으로 표시되고 사이트를 깔끔하게 유지하는 데 도움이됩니다.감사.This question gets a huge number of views, so please consider accepting this answer if it solved your problem. That way the question shows up as answered and helps us keep the site tidy. Thanks.
- 0
- 2016-07-23
- Andy Macaulay-Brook
-
- 2015-12-10
간단한 해결책이 있습니다. 다음을 읽어보세요.
-
테마 파일에서
wp_redirect($url)
를 사용하고 있고 작동하지 않는 경우 함수 파일에ob_clean() ob_start()
를 추가하십시오.상단. -
플러그인에서 사용하는 경우 맨 위에있는 기본 플러그인 파일에
ob_clean() ob_start()
를 추가합니다.
그리고 wp_redirect ($ url) 뒤에
exit() function after wp_redirect($url)
다음과 같이 :$url = 'http://example.com'; wp_redirect($url); exit();
I have a simple solution, please read:
If you are using
wp_redirect($url)
in theme files, and it is not working addob_clean() ob_start()
in your function file on top.If using in plugin add
ob_clean() ob_start()
in the main plugin file on top.
And make sure you have added
exit() function after wp_redirect($url)
Like this:$url = 'http://example.com'; wp_redirect($url); exit();
-
이렇게하면 리디렉션이 발생하기 위해 Mozilla Firefox가 302 대신 200을 반환하는 문제가 해결됩니다.Firefox는 그렇지 않지만 Chrome은 리디렉션합니다.이 수정이 도움이됩니다.감사합니다!This solves the issue with Mozilla Firefox returning 200 instead of 302 for the redirection to take place. Chrome redirects while Firefox doesn't. This fix helps. Thank you!
- 0
- 2018-09-12
- El'Magnifico
-
플러그인을 만들거나 템플릿을 디자인하는 경우 더 자세한 답변입니다.나를 위해 일했습니다.This is a more detailed answer if you are creating a plugin or designing template. worked for me.
- 0
- 2019-07-10
- Sayed Mohd Ali
-
이 작품을 내 커스텀 테마로 만들기 위해 고군분투하고 있습니다 ... 매력처럼 작동합니다 ...I've been struggling to make this work in my custom theme... Works like a charm...
- 0
- 2019-10-08
- ShivangiBilora
-
- 2013-05-01
이게 도움이 될지 모르겠지만 템플릿에 코드가 있다는 것을 알았습니다. 이 방법으로get_header ()로 시작했습니다.
<?php /** * .. Template comments */ get_header(); if(...) { ... if(...) { ... wp_redirect($url); exit(); } } ?>
그리고 이전에 보낸 헤더의 동일한 문제를 얻었습니다 ... 내가 한 것은get_header ()를 블록의 끝으로 옮기고 짜잔 !!!
<?php /** * .. Template comments */ if(...) { ... if(...) { ... wp_redirect($url); exit(); } } get_header(); ?>
사용 중지 된 플러그인이 없습니다.그리고 모든 것이 괜찮 았습니다 ... 이것이 당신에게 효과가 있다면 시도해 볼 수 있습니다
I am not sure if this will help... but I found that I had some code in a template and I was starting with get_header() in this way:
<?php /** * .. Template comments */ get_header(); if(...) { ... if(...) { ... wp_redirect($url); exit(); } } ?>
and was getting the same issue of header previously sent... What I did was just move get_header() to the end of the block and voila!!!
<?php /** * .. Template comments */ if(...) { ... if(...) { ... wp_redirect($url); exit(); } } get_header(); ?>
No plugin was disabled. and everything was ok... you may give a try if this works for you
-
테마 소스에 액세스 할 수있는 경우이를 수행하는 좋은 방법입니다.리디렉션은`get_header`를 호출하기 전에 실행해야합니다.This is a good way to do it, if you have access to the theme source. Redirects should run before the call to `get_header`.
- 0
- 2013-05-01
- s_ha_dum
-
get_header () 제거도 저에게 효과적이었습니다!removing get_header() also worked for me!
- 0
- 2014-10-31
- Magico
-
이것이 작동하지 않는`wp_redirect`로 고생하는 대부분의 사람들에게 가장 흔한 원인이라고 확신합니다.I'd bet this is the most common cause for most people struggling with `wp_redirect` not working
- 0
- 2019-02-25
- joehanna
-
- 2012-03-21
게시물 GUID 값을 절대 사용하지 마세요. 게시물의 실제 URL과 일치 할 필요는 없습니다.
http://codex.wordpress.org/Changing_The_Site_URL#Important_GUID_Note
wp_redirect( get_permalink( $post_id ) ); exit(); // always exit
또한
wp_redirect
가 작업을 올바르게 수행하지 못하게하는 다른 항목에 의해 연결되지 않았는지 확인하십시오.모든 플러그인을 비활성화하고 Twenty Ten/Eleven으로 되돌려 확인하세요.Never ever use the post GUID value, it does not have to match the real URL of the post.
http://codex.wordpress.org/Changing_The_Site_URL#Important_GUID_Note
wp_redirect( get_permalink( $post_id ) ); exit(); // always exit
Also, make sure
wp_redirect
is not plugged by something else which prevents it from doing its job correctly. Deactivate all plugins and revert to Twenty Ten/Eleven to check.-
플러그인 가능한`wp_redirect`에 대한 +1 좋은 호출+1 good call on `wp_redirect` being pluggable
- 0
- 2012-03-21
- Stephen Harris
-
감사합니다 ....thaning you....
- 0
- 2012-03-21
- SANS780730
-
- 2019-01-16
다음 항목이 없는지 확인하세요 :
get_header();
또는 템플릿에 머리글 및 바닥 글과 같은 콘텐츠를 잠재적으로 생성하는 모든 워드 프레스 함수.그렇지 않으면 리디렉션이 작동하지 않습니다.일부 개발자는
ob_start();
를 사용하여 페이지를 지우려고하지만ob_start();
를 사용하더라도 페이지에 콘텐츠가있는 경우 리디렉션이 발생합니다.작동합니다.다음 코드를 시도해보십시오.
wp_redirect(get_permalink($post->ID)); exit;
Make sure you don't have:
get_header();
or any wordpress function that potentially creates contents like header and footer in your template. Otherwise the redirection won't work.Some developers try to clear the page by using
ob_start();
but if you have content in your page even if you useob_start();
the redirection won't work.and then simply try this code:
wp_redirect(get_permalink($post->ID)); exit;
-
- 2019-08-06
if( is_page( ['wfp-dashboard', 'wfp-checkout'] ) ){ if(!is_user_logged_in()){ @ob_flush(); @ob_end_flush(); @ob_end_clean(); wp_redirect( wp_login_url() ); exit(); } }
if( is_page( ['wfp-dashboard', 'wfp-checkout'] ) ){ if(!is_user_logged_in()){ @ob_flush(); @ob_end_flush(); @ob_end_clean(); wp_redirect( wp_login_url() ); exit(); } }
-
문제를 해결하는 방법에 대한 설명을 포함 할 수 있습니까?코드에 출력 버퍼가있는 이유를 잘 모르겠고`@`연산자가 있습니다.`@`는 오류 발생을 방지하지 않고 오류 로그에서 숨 깁니다.Can you include some explanation of how this fixes the issue? I'm not sure why there are output buffers in the code, and they have the `@` operator, `@` doesn't prevent errors from happening, it just hides them from the error log
- 0
- 2020-07-22
- Tom J Nowell
-
- 2020-07-22
이미 보낸 헤더가 주된 이유입니다.헤더가 이미 전송되었으므로 다시 보낼 수없고 리디렉션에 실패합니다.init 후크에서와 같이 헤더 앞에 사용합니다.
add_action('init', 'your_app_function');
header already sent is main reason. As header already sent, so its unable to resend it and fails to redirect. Use before header like in init hook.
add_action('init', 'your_app_function');
wp_redirect($post->guid)
가 작동하지 않습니다.이 문제를 어떻게 해결할 수 있습니까?다음은 내 코드입니다.