60 votes

Redirection après connexion sur WordPress

Je suis en train de créer un thème WordPress personnalisé à partir d'un site existant.

Je veux utiliser un tableau de bord alternatif que j'ai créé.

Comment puis-je faire en sorte que l'utilisateur soit dirigé vers ' news.php après la connexion au lieu de ' /wp-admin/ ' ?

--

EDIT : J'ai un plug-in fonctionnel pour cela, mais la prime est toujours disponible pour quiconque peut trouver un moyen manuel de le faire via functions.php, car ce serait plus sûr que d'utiliser un plug-in tiers.

0 votes

Où se trouve news.php - dans le front-end ou dans la zone d'administration (c'est-à-dire le tableau de bord, c'est-à-dire un enfant de /wp-admin/... ) ? Pouvez-vous fournir un chemin complet ? example.com/... et ensuite quoi ?

0voto

Omprakash Patel Points 51
// Used theme's functions.php  
add_action('login_form', 'redirect_after_login'); 
function redirect_after_login() 
{     
global $redirect_to; 
if   (!isset($_GET['redirect_to'])) 
{ 
$redirect_to =   get_option('sample-page');
//  sample-page = your page name after site_url
} }

0voto

Zeth Points 146

En me basant sur d'autres réponses, j'ai trouvé ça :

/**
 * Require login on all pages
 */
function so8127453_require_login() {
  if ( ! is_user_logged_in() ) {

    $protocol = $_SERVER['HTTPS'] == 'on' ? 'https://' : 'http://';
    $base = $_SERVER['SERVER_NAME'];
    $uri = $_SERVER['REQUEST_URI'];

    $attempted_accessed_url = $protocol . $base . $uri;
    $login_url = 'https://' . $base . '/wp-login.php?redirect_to=' . $attempted_accessed_url;

    wp_redirect( $login_url );
  }
}
add_action( 'template_redirect', 'so8127453_require_login' );

Redirige tout le trafic vers une page de connexion. Et ensuite vers l'URL de tentative d'accès.

0voto

J'ai cherché "Comment résoudre le problème de rafraîchissement et de redirection de la page de connexion de WordPress" et je n'ai pas trouvé de solution satisfaisante. J'ai obtenu de l'aide grâce à cette question Stackoverflow. J'aimerais la partager avec d'autres personnes pour qu'en cas de besoin, elles obtiennent de l'aide.

Sur mon site web, lorsque je saisissais l'email et le mot de passe, j'étais redirigé encore et encore vers wp-admin et on me demandait les mots de passe. Ce code m'a aidé à résoudre le problème :

function admin_default_page() {
  return '/';
}

add_filter('login_redirect', 'admin_default_page');

0voto

Andreea Purta Points 158

Pour WooCommerce : redirections pour la connexion / déconnexion - fonctionnement en 2021

add_filter('woocommerce_login_redirect', 'login_redirect');

function login_redirect($redirect_to) {

    return home_url();

}

add_action('wp_logout','logout_redirect');

function logout_redirect(){

    wp_redirect( home_url() );

    exit;

}

-1voto

Pour rediriger globalement après une connexion réussie, trouvez ce code dans wp-login.php, sous la section.

   <form name="loginform" id="loginform" action="<?php echo esc_url( site_url( 'wp-login.php', 'login_post' ) ); ?>" method="post">

<input type="hidden" name="redirect_to" value="<?php echo esc_attr($redirect_to); ?>" />

et remplacer <?php echo esc_attr($redirect_to); ?> avec votre URL où vous voulez rediriger. L'URL doit commencer par http:// et se terminer par /sinon la page redirige vers l'emplacement par défaut.

Faites la même chose en redirigeant le formulaire après l'enregistrement dans le même fichier mais sous le nom de <form name="registerform"> section.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X