Verificarea dacă un utilizator este autentificat și redirecționarea către o altă pagină
Creez un site exclusiv pentru membri care necesită ca utilizatorii să fie autentificați pentru a folosi site-ul.
Pagina principală este vizibilă public. Pe pagina principală, aș dori să pun o funcție care să redirecționeze utilizatorii către o pagină din interiorul site-ului dacă sunt autentificați.
Codul pe care l-am încercat
<?php if (is_user_logged_in() ) {
wp_redirect ('dashboard' );
exit;
}
?>
Îmi dă eroarea "headers already sent". Codul este plasat în partea de sus a fișierului meu PHP.
Ce fac greșit?

Nu sunt sigur dacă ai simplificat doar ca exemplu, dar asigură-te că folosești URL-ul complet în apelul wp_redirect()
.
De asemenea, în loc să-l ai în template, cred că ar fi mai potrivit să rulezi acest cod la hook-ul template_redirect
.

Soluția mea este wp_redirect ( home_url("/dashboard") );
, și am pus acest cod pe linia 1 a șablonului. Deși nu sunt familiarizat cu hook-uri, deci probabil ai un punct valid. De ce?

@javy template_redirect
este locul semantic în cod precum "WP știe ce are nevoie să înceapă să încarce și să afișeze, dar tu poți să-i schimbi decizia". Începutul șablonului înseamnă "deja încărcăm acest lucru". Dacă nu vrei ce este în șablon, nu există niciun motiv să ajungi atât de departe în proces.

<?php if (is_user_logged_in() ) {
wp_redirect ( home_url("/dashboard") );
exit;
}
?>
Este ceea ce am creat și funcționează. De asemenea, cred că am greșit prin plasarea acestui cod mai jos:
<?php
/*Template Name: Pagina Principală*/
?>
Noul cod este pe linia 1 și funcționează.
