wake-up-neo.com

leite wp-login.php auf eine andere Seite um

Ich möchte diese Seite wp-login.php auf /login weiterleiten. Wenn ein Benutzer auf einen Link wie diesen <a href="/wp-login.php">login</a> klickt, leitet ihn wordpress zu /register weiter.

Ich habe diese Funktion gefunden und modifiziert:

add_action('init','custom_login');

function custom_login(){
 global $pagenow;
 if (( 'wp-login.php' == $pagenow ) && (!is_user_logged_in())) {
  wp_redirect('/login');
  exit();
 }

Ich bin nicht gut mit WordPress-Codierung.

Die Umleitung funktioniert einwandfrei, aber die Authentifizierung scheint unterbrochen zu sein. Wenn ich meinen Login/Pass eingebe, wird dieselbe Seite (/login) erneut geladen, ohne authentifiziert zu werden.

Irgendwelche Vorschläge, um die Umleitungsfunktion zu reparieren?

3
4m1nh4j1

Wenn Sie sich nur um Anmeldelinks sorgen, die auf Ihren Seiten angezeigt werden, sollten Sie die URL ändern können, indem Sie den login_url -Filter einbinden. Dadurch wird ein Benutzer, der http://MYSITE/wp-login.php direkt in seinen Browser eingibt, nicht weitergeleitet, es sollte sich jedoch auf die Anmeldelinks auswirken, die auf Ihrer Website angezeigt werden.

Dies ist der Beispielcode von der login_url Codex-Seite :

add_filter( 'login_url', 'my_login_page', 10, 2 );
function my_login_page( $login_url, $redirect ) {
  return home_url( '/my-login-page/?redirect_to=' . $redirect );
}
2
thirdender

1. Ändern Sie Ihre .htaccess -Datei - fügen Sie diese Zeile nach der index.php -Rewrite-Regel hinzu:

RewriteRule ^index\.php$ – [L]<br />
RewriteRule ^yoursecretpath$ wp-login.php [L,NC,QSA]

dabei ist yoursecretpath Ihr Pfad zum Admin-Bereich.

2. Ändern Sie die Funktion login_header in der Datei wp-login.php - fügen Sie diesen Code kurz vor Zeile 59 ein (wo das Tag für den Typ des HTML-Dokuments beginnt, um zu verhindern, dass Header Fehler senden):

<?php $uri = $_SERVER['REQUEST_URI']; if(stripos($uri, ‘wp-login’) or stripos($uri, ‘wp-admin’) && !stripos($GLOBALS["HTTP_COOKIE"], ‘wordpress_logged_in’)) {  header("Location: ".get_site_url().'/yoursecretpath' ); exit(); } ?>
0
SoftProdigy

Ich habe eigentlich schon ein Open Source Plugin, das das schon macht:

https://github.com/tripflex/wp-login-flow

Es wurde erstellt, um Benutzer zur Überprüfung ihrer E-Mails aufzufordern. Sie können diese Funktion jedoch deaktivieren und einfach die Funktion zum Umschreiben verwenden, die in der neuesten Version von WordPress repo (1.0.0) verfügbar ist.

Sie können sich den Code ansehen, um zu sehen, wie ich mit den Änderungen umgehe:

https://github.com/tripflex/wp-login-flow/blob/master/classes/rewrite.php#L312

Ich arbeite gerade daran, um einige wichtige Updates und Patches zu haben, aber im Moment funktioniert 1.0.0 perfekt für das Neuschreiben. Genießen :)

0
sMyles