Unde trebuie plasat wp_redirect pentru a funcționa corect?
Am o pagină de editare a articolelor pe front-end la adresa mysite/post_id/edit și încerc să redirecționez utilizatorii care nu sunt autorii înapoi la articol. Iată codul cu care lucrez:
<?php
global $current_user; get_currentuserinfo();
if($post->post_author != $current_user->ID):
wp_redirect( the_permalink() ); exit;
?>
Problema pe care o am este că acest cod pare să afișeze permalinkul articolului în loc să facă redirecționarea.
wp_redirect spune "wp_redirect nu va fi apelat dacă pagina a început să se încarce, așa că asigură-te să-l apelezi mai sus în cod." - dar după ce am plasat codul în partea de sus a fișierului header.php am avut aceeași problemă cu afișarea permalinkului în loc de redirecționare.
Unde ar fi locul potrivit pentru a adăuga acest cod pentru a face redirecționarea?
Mulțumesc anticipat!
EDIT: Am încercat ceva cu sfatul lui milo, dar voi urma postul lui Tommix înainte de a actualiza pe baza sugestiilor lui Milo

Odată ce ai ajuns în șablon, este prea târziu, deoarece antetele au fost deja trimise. Trebuie să te conectezi mai devreme în cerere pentru a verifica, cum ar fi hook-ul de redirecționare a șablonului:
add_action( 'template_redirect', 'wpse52455_redirect' );
function wpse52455_redirect(){
// faci verificarea și apelezi wp_redirect aici
}
Reține că aceasta va fi apelată la fiecare cerere, așa că trebuie să faci și o verificare dacă pagina curentă este pagina ta de editare.
EDITARE - codul de mai sus ar trebui să fie introdus în fișierul functions.php
al temei tale.

Acest cod curent returnează eroarea Cannot modify header information - headers already sent by

Ciudat, pentru mine funcționează perfect. L-am adăugat în fișierul single.php. Poate fișierul tău deja afișează ceva? Pune codul cât mai sus poți în partea de sus a fișierului php. Desigur, ar trebui să acceseze și variabila $post pentru că dacă nu o obține, nu va ști dacă utilizatorul este autorul, deci ar trebui să fie plasat după ce variabila $post are date. Codul în sine este bun, doar plasarea e greșită :) Poate ai pus acest cod într-un fișier inclus?

Ai dreptate - funcționează parțial - deși ciudat este că redirecționează când ($post->post_author == $current_user->ID)
în loc să redirecționeze când ($post->post_author != $current_user->ID)

ce se întâmplă dacă încerci să folosești această condiție $post->post_author !== $current_user->ID

ah, am înțeles, nu poate obține $post->author deoarece acea variabilă nu a fost setată atât de devreme în pagină
