web-dev-qa-db-fra.com

Comment remplacer wp-login.php

J'aimerais remplacer la page de connexion par défaut de WordPress: wp-login.php.

La raison en est que, je veux écrire du code personnalisé en haut du fichier, qui vérifie certaines conditions dans le backend et effectue des tâches telles que la redirection de l'utilisateur vers une autre page.

Je souhaite le faire car je souhaite exécuter ma propre logique d'authentification dans un fichier personnalisé, sans afficher le formulaire de connexion WordPress par défaut. Ma logique inclut l'analyse de certaines données de cookie et de session (aucun formulaire de connexion en particulier, peut être un formulaire personnalisé).

J'ai en fait pensé écrire ma logique dans le fichier header.php d'un thème enfant, mais malheureusement, le fichier wp-login.php n'inclut pas le fichier d'en-tête du thème.

Je ne souhaite pas modifier le wp-login.php directement, car je crains que toutes mes modifications ne soient perdues lors de futures mises à jour de WordPress.

Existe-t-il un moyen de remplacer en toute sécurité la page de connexion WordPress sans subir de perte après une mise à jour WordPress?

Ou est-il possible de router toutes les demandes vers wp-login.php, dans un fichier personnalisé PHP, afin que je puisse écrire toute ma logique dans ce fichier?

3
shasi kanth

Ne modifiez pas le noyau, utilisez plutôt le système d'actions et de hooks

add_action( 'login_init', 'yourloginoverrides' );

function yourloginoverrides() {
    // do some check and call wp_redirect if its true or whatever you wanted to do
}
6
Tom J Nowell