Reindirizzamento alla home page dopo il logout

10 lug 2012, 16:22:16
Visualizzazioni: 72.7K
Voti: 13

Sto utilizzando un menu personalizzato per login/logout, ecco il mio codice:

<li>
      <?php
if (is_user_logged_in()) {
  $user = wp_get_current_user();
  echo 'Benvenuto <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;">Logout</a>';
} else { ?>
  <strong><?php wp_loginout(); ?></strong>
  oppure <a href="<?php bloginfo('url') ?>/wp-login.php?action=register"> <strong>Registrati</strong></a>
<?php }?>
    </li>

ma il problema è:

viene reindirizzato alla pagina di login invece che alla pagina corrente...

Vorrei che dopo il logout venisse reindirizzato alla home page. Per favore aiutatemi...

0
Tutte le risposte alla domanda 6
0
31
add_action('wp_logout','auto_redirect_after_logout');

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

Questo farà al caso tuo.

22 mar 2020 18:43:14
2

Se vuoi modificare solo il logout e non il login, allora usa wp_logout_url(). Al contrario, puoi usare wp_login_url() solo per l'URL di login.

Esempio di un link per il logout:

<a href="<?php echo wp_logout_url( home_url() ); ?>" title="Esci">Esci</a>

Puoi ancora usare la funzione wp_loginout() ma il reindirizzamento funzionerà sia per il login che per il logout. Se va bene, potrebbe essere così:

<?php wp_loginout( home_url() ); ?>
10 lug 2012 16:24:50
Commenti

Grazie Pontus, Ho provato con il tuo codice... ma non funziona, va alla pagina 404.php... È il mio secondo post ma non ha risolto il mio problema... per favore aiutami...

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

prova get_bloginfo('url') al posto di home_url()

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

Pontus Abrahamsson ha ragione, quello è un codice valido, ma eccone un altro che utilizzo nel mio tema.

<a href="<?php echo wp_logout_url('$index.php'); ?>">Esci</a>
10 lug 2012 19:32:05
Commenti

Funziona per me con '/' per la homepage, ma non sono sicuro di cosa significhi $ qui

Fanky Fanky
29 giu 2020 16:15:44
0

Da WordPress 4.2.0 è stato introdotto un filtro per l'hook di logout chiamato logout_redirect.

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

Filtra l'URL di reindirizzamento dopo il logout.

Parametro Descrizione
$redirect_to (string) L'URL di destinazione per il reindirizzamento.
$requested_redirect_to (string) L'URL di reindirizzamento richiesto passato come parametro.
$user (WP_User) L'oggetto WP_User per l'utente che sta effettuando il logout.

Scenario d'uso semplice

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

Funzioni anonime utilizzate, richiede PHP > 5.3


Approfondimenti

  • Lo stesso vale per i login, con un filtro login_redirect introdotto in 3.0.0.
24 mar 2021 02:42:20
0

Da WordPress 4.2.0 puoi semplicemente aggiungere:

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

Prova questo

add_action('check_admin_referer', 'pfwp_logout_without_confirm', 10, 2);
function pfwp_logout_without_confirm($action, $result)
{
    /**
     * Permette il logout senza conferma
     */
    if ($action == "log-out" && !isset($_GET['_wpnonce'])) {
        $redirect_to = isset($_REQUEST['redirect_to']) ? $_REQUEST['redirect_to'] : get_permalink( wp_logout_url() )// oppure un URL personalizzato;
        $location = str_replace('&amp;', '&', wp_logout_url($redirect_to));
        header("Location: $location");
        die;
    }
}
26 mar 2022 20:44:12