Redirección a la página de inicio después de cerrar sesión

10 jul 2012, 16:22:16
Vistas: 72.7K
Votos: 13

Estoy usando un menú personalizado para inicio/cierre de sesión, aquí está mi código:

<li>
      <?php
if (is_user_logged_in()) {
  $user = wp_get_current_user();
  echo 'Bienvenido <strong><a href="http://kolkataonwheelsmagazine.com/wp-admin/index.php" >'.$user->user_firstname.'</a></strong>
  | <a  href="http://kolkataonwheelsmagazine.com/wp-login.php?action=logout&quot;">Cerrar sesión</a>';
} else { ?>
  <strong><?php wp_loginout(); ?></strong>
  o <a href="<?php bloginfo('url') ?>/wp-login.php?action=register"> <strong>Registrarse</strong></a>
<?php }?>
    </li>

pero el problema es:

redirige a la página de inicio de sesión y no a la página actual...

Quiero que vaya a la página de inicio después de cerrar sesión. Por favor ayúdenme...

0
Todas las respuestas a la pregunta 6
0
31
add_action('wp_logout','auto_redirect_after_logout');

function auto_redirect_after_logout(){
  wp_safe_redirect( home_url() );
  exit;
}

Esto hará el trabajo.

22 mar 2020 18:43:14
2

Si solo deseas modificar el cierre de sesión y no el inicio, entonces usa wp_logout_url(). Por el contrario, puedes usar wp_login_url() solo para la URL de inicio de sesión.

Ejemplo de un enlace de cierre de sesión:

<a href="<?php echo wp_logout_url( home_url() ); ?>" title="Cerrar sesión">Cerrar sesión</a>

Todavía puedes usar la función wp_loginout() pero la redirección funcionará tanto en el inicio como en el cierre de sesión. Pero si eso está bien, podría verse así:

<?php wp_loginout( home_url() ); ?>
10 jul 2012 16:24:50
Comentarios

Gracias Pontus, He probado con tu código... pero no funciona, va a la página 404.php... Es mi segundo post pero no resolvió mi problema... por favor ayúdame...

Gopal Bhattacharjee Gopal Bhattacharjee
10 jul 2012 17:57:22

prueba con get_bloginfo('url') en lugar de home_url()

Deepak Kamat Deepak Kamat
30 ene 2019 11:38:14
1

Pontus Abrahamsson tiene razón, ese es un código válido, pero aquí hay otro que estoy usando en mi tema.

<a href="<?php echo wp_logout_url('$index.php'); ?>">Cerrar sesión</a>
10 jul 2012 19:32:05
Comentarios

Funciona para mí con '/' para la página de inicio, pero no estoy seguro de qué significa $ aquí

Fanky Fanky
29 jun 2020 16:15:44
0

Desde WordPress 4.2.0 se introdujo un filtro para el hook de logout llamado logout_redirect.

apply_filters( 'logout_redirect', string $redirect_to, string $requested_redirect_to, WP_User $user )

Filtra la URL de redirección al cerrar sesión.

Parámetro Descripción
$redirect_to (string) La URL de destino de redirección.
$requested_redirect_to (string) La URL de destino de redirección solicitada pasada como parámetro.
$user (WP_User) El objeto WP_User del usuario que cierra sesión.

Ejemplo de uso básico

<?php
add_filter( 'logout_redirect', function() {
    return esc_url( home_url() );
} ); ?>

Se utilizan funciones anónimas, se requiere PHP > 5.3


Más información

  • Lo mismo aplica para inicios de sesión, con un login_redirect introducido en 3.0.0.
24 mar 2021 02:42:20
0

Desde WordPress 4.2.0 puedes simplemente añadir:

add_filter('logout_redirect', 'get_home_url');
31 mar 2022 22:38:10
0

Prueba esto

add_action('check_admin_referer', 'pfwp_logout_without_confirm', 10, 2);
function pfwp_logout_without_confirm($action, $result)
{
    /**
     * Permite cerrar sesión sin confirmación
     */
    if ($action == "log-out" && !isset($_GET['_wpnonce'])) {
        $redirect_to = isset($_REQUEST['redirect_to']) ? $_REQUEST['redirect_to'] : get_permalink( wp_logout_url() )// o URL personalizada;
        $location = str_replace('&amp;', '&', wp_logout_url($redirect_to));
        header("Location: $location");
        die;
    }
}
26 mar 2022 20:44:12