web-dev-qa-db-fra.com

Rediriger vers la page en cours après la connexion

Dans ma page wordpress, j'ajoute l'élément Login-logout au menu principal à l'aide du code (dans functions.php) ci-dessous:

add_filter('wp_nav_menu_items', 'add_login_logout_link', 10, 2);
function add_login_logout_link($items, $args) {
        ob_start();
        wp_loginout('index.php');
        $loginoutlink = ob_get_contents();
        ob_end_clean();
        $items .= '<li>'. $loginoutlink .'</li>';
    return $items;
}

Lorsque la connexion est effectuée à l'aide de ce bouton, il convient de rediriger la page actuelle sur laquelle vous cliquez sur la connexion. Comment puis je faire ça?

Je pense que wp_loginout('index.php') doit changer car après la connexion et la déconnexion, je suis redirigé vers la page d'accueil. Que devrais-je écrire pour aller à la page précédente?

1

wp_loginout accepte deux arguments, $redirect (chaîne) et $echo (booléen). Vous pouvez spécifier l'URL de la page à rediriger après la connexion ou la déconnexion avec le paramètre $redirect. Dans votre code actuel, $redirect est 'index.php'.

Vous pouvez obtenir l'URL complète de la page en cours en utilisant

( is_ssl() ? 'https' : 'http' ) . '://' . $_SERVER['HTTP_Host'] . $_SERVER['REQUEST_URI']

cédant

wp_loginout( ( is_ssl() ? 'https' : 'http' ) . '://' . $_SERVER['HTTP_Host'] . $_SERVER['REQUEST_URI'] );

Cela devrait faire l'affaire!

1
engelen