Comprobando si un usuario ha iniciado sesión y redirigirlo a una página diferente
Estoy creando un sitio solo para miembros que requiere que los usuarios inicien sesión para usar el sitio.
La página de inicio es visible públicamente. En la página de inicio, me gustaría incluir una función para redirigir a los usuarios a una página dentro del sitio si han iniciado sesión.
El código que intenté
<?php if (is_user_logged_in() ) {
wp_redirect ('dashboard' );
exit;
}
?>
Me da un error de "headers already sent" (cabeceras ya enviadas). El código está colocado en la parte superior de mi archivo php.
¿Qué estoy haciendo mal?

No estoy seguro si lo simplificaste por ejemplo, pero asegúrate de usar la URL completa en la llamada a wp_redirect()
.
Además, en lugar de tenerlo en la plantilla, creo que sería más apropiado ejecutarlo en el hook template_redirect
.

Mi solución es wp_redirect ( home_url("/dashboard") );
, y he puesto este código en la línea 1 de la plantilla. Aunque no estoy familiarizado con los hooks, así que probablemente tengas un punto válido. ¿Por qué?

@javy template_redirect
es semánticamente el lugar adecuado en el código como "WP sabe lo que necesita para comenzar a cargar y mostrar, pero puedes cambiar su decisión". El inicio de la plantilla es "ya estamos cargando esto". Si no quieres lo que hay en la plantilla, no hay razón para llegar tan lejos en el proceso.

<?php if (is_user_logged_in() ) {
wp_redirect ( home_url("/dashboard") );
exit;
}
?>
Es lo que he conseguido hacer, y funciona. Además, creo que también me equivoqué al poner esto debajo
<?php
/*Plantilla Nombre: Inicio*/
?>
El nuevo código está en la línea 1 y funciona.
