Redirecționare la pagina principală după deconectare

10 iul. 2012, 16:22:16
Vizualizări: 72.7K
Voturi: 13

Folosesc un meniu personalizat pentru autentificare/deconectare, iată codul meu:

<li>
      <?php
if (is_user_logged_in()) {
  $user = wp_get_current_user();
  echo 'Bun venit <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;">Deconectare</a>';
} else { ?>
  <strong><?php wp_loginout(); ?></strong>
  sau <a href="<?php bloginfo('url') ?>/wp-login.php?action=register"> <strong>Înregistrare</strong></a>
<?php }?>
    </li>

dar problema este:

redirecționează către pagina de autentificare, nu către pagina curentă...

Vreau să se redirecționeze către pagina principală după deconectare. Vă rog să mă ajutați...

0
Toate răspunsurile la întrebare 6
0
31
add_action('wp_logout','auto_redirect_after_logout');

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

Acest cod va face treaba.

22 mar. 2020 18:43:14
2

Dacă dorești să modifici doar logout și nu login, atunci folosește wp_logout_url(). În schimb, poți utiliza wp_login_url() doar pentru URL-ul de login.

Exemplu de link de logout:

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

Poți folosi în continuare funcția wp_loginout(), dar redirectarea va funcționa atât la login cât și la logout. Dar dacă acest lucru este acceptabil, ar putea arăta astfel:

<?php wp_loginout( home_url() ); ?>
10 iul. 2012 16:24:50
Comentarii

Mulțumesc Pontus, Am încercat cu codul tău... dar nu funcționează, merge la pagina 404.php... Este al doilea meu post dar problema nu s-a rezolvat... te rog ajută-mă...

Gopal Bhattacharjee Gopal Bhattacharjee
10 iul. 2012 17:57:22

încearcă get_bloginfo('url') în loc de home_url()

Deepak Kamat Deepak Kamat
30 ian. 2019 11:38:14
1

Pontus Abrahamsson are dreptate, acesta este un cod legal, dar iată un altul pe care îl folosesc în tema mea.

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

Funcționează pentru mine cu '/' pentru pagina principală, dar nu sunt sigur ce înseamnă $ aici

Fanky Fanky
29 iun. 2020 16:15:44
0

Începând cu WordPress 4.2.0, a fost introdus un filtru pentru redirecționarea la deconectare logout_redirect.

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

Filtrează URL-ul de redirecționare după deconectare.

Parametru Descriere
$redirect_to (string) URL-ul destinației de redirecționare.
$requested_redirect_to (string) URL-ul destinației de redirecționare solicitat, transmis ca parametru.
$user (WP_User) Obiectul WP_User pentru utilizatorul care se deconectează.

Exemplu simplu de utilizare

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

Folosind funcții anonime, PHP > 5.3 necesar


Află mai multe

  • Același lucru se aplică și pentru autentificare, cu un filtru login_redirect introdus în 3.0.0.
24 mar. 2021 02:42:20
0

Începând cu WordPress 4.2.0 poți pur și simplu să adaugi:

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

Încearcă asta

add_action('check_admin_referer', 'pfwp_logout_without_confirm', 10, 2);
function pfwp_logout_without_confirm($action, $result)
{
    /**
     * Permite deconectarea fără confirmare
     */
    if ($action == "log-out" && !isset($_GET['_wpnonce'])) {
        $redirect_to = isset($_REQUEST['redirect_to']) ? $_REQUEST['redirect_to'] : get_permalink( wp_logout_url() )// sau URL personalizat;
        $location = str_replace('&amp;', '&', wp_logout_url($redirect_to));
        header("Location: $location");
        die;
    }
}
26 mar. 2022 20:44:12