Melden Sie sich bei WordPress mit Get Variablen anstelle von Post an

Ich benutze Swish-e, um meine Unternehmens-Website und Dokumente zu indizieren. Problem ist, dass ich mich über Variablen in WordPress einloggen muss. WordPress Login verwendet Post Variable, aber ich muss mich mit GET Variablen anmelden

http://mysite.com/wp-login.php?log=username&pwd=password

Es gibt einen einfachen Weg, es zu tun? Ich habe nichts dagegen, Core-Dateien zu ändern, gibt es keine andere Option.

Ich habe mir wp-login.php angeschaut, aber ich habe keine Ahnung wie das geht.

Grüße

Solutions Collecting From Web of "Melden Sie sich bei WordPress mit Get Variablen anstelle von Post an"

Die Verwendung von GET Variablen für Benutzernamen und Passwörter ist nie eine gute Idee. Aber irgendwie sollte etwas wie das Folgende funktionieren

 if(isset($_GET['log']) && isset($_GET['pwd'])){ $creds = array(); $creds['user_login'] = $_GET['log']; $creds['user_login'] = $_GET['pwd']; $creds['remember'] = true; //Do you want the log-in details to be remembered? $user = wp_signon( $creds, false ); if ( is_wp_error($user) ) echo $user->get_error_message(); //Display error message if log-in fails } 

Sie können dies in eine Vorlage einfügen und dann mithilfe dieser Vorlage eine Seite erstellen, um eine alternative Anmeldeseite zu erstellen. In diesem Fall sollten Sie zu http: // [URL der Seite]? Log = username & pwd = password gehen

Um http://mysite.com/wp-login.php?log=username&pwd=password zu erhalten , müssen Sie den obigen Code in die Core-Datei wp-login.php einfügen. Anstatt den Code anzupassen (der beim nächsten Update von WordPress überschrieben wird), empfehle ich die Verwendung eines Hooks. Wie, so (ziehe das in deine functions.php oder ein Plug-in):

 add_action('init', 'GET_login'); function GET_login() { //Check that we are on the log-in page if(in_array($GLOBALS['pagenow'], array('wp-login.php'))): //Check that log and pwd are set if(isset($_GET['log']) && isset($_GET['pwd'])): $creds = array(); $creds['user_login'] = $_GET['log']; $creds['user_password'] = $_GET['pwd']; $creds['remember'] = true; //Do you want the log-in details to be remembered? //Where do we go after log-in? $redirect_to = admin_url('profile.php'); //Try logging in $user = wp_signon( $creds, false ); if ( is_wp_error($user) ){ //Log-in failed }else{ //Logged in, now redirect $redirect_to = admin_url('profile.php'); wp_safe_redirect($redirect_to); exit(); } endif; endif; //If we are not on the log-in page or credentials are not set, carry on as normal } 

Erläuterung: Unsere function wird mit init hook ausgeführt. Es prüft zuerst, ob wir auf der ./wp-login.php Seite sind, und dann, dass die Variablen log und pwd gesetzt sind. Wenn nicht, machen wir normal weiter. Wenn dies der wp_signon ist, versuchen wir eine Anmeldung mit wp_signon . Wenn wir erfolgreich sind, werden wir umgeleitet (wo auch immer Sie möchten), andernfalls, wenn es scheitert, machen wir etwas (Anzeigeerrors, vielleicht?).

Ich hoffe, das hilft