Redirecționare la pagina principală după deconectare
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"">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...
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() ); ?>

Î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 în3.0.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('&', '&', wp_logout_url($redirect_to));
header("Location: $location");
die;
}
}
