Der heutige Beitrag wird nur ein kurzer sein, in dem ich Ihnen zeigen werde, wie Sie ein nettes kleines Feature auf Ihrer WordPress-Site installieren. Dies kann bei sicherer Anwendung sehr praktisch sein. Dies ist für die Verwendung auf WordPress-Sites gedacht, die ein generisches Konto für Benutzer zum Anmelden anbieten. Zum Beispiel erstellt der Autor bei vielen Backend-WordPress-Demos ein ‚Demo‘-Konto für potenzielle Kunden, um sich einzuloggen und mit seinem Produkt zu spielen. Meistens zeigt der Autor einfach einen Hinweistext an;
NUTZERNAME: Demo
PASSWORT: Demo
Dies ist ein bisschen Fußgänger. Sicherlich können wir die Demo etwas schlanker und professioneller aussehen lassen? Ich gebe Ihnen einen kurzen Ausschnitt, um sich mit diesen Anmeldeinformationen automatisch beim WordPress-Administrator anzumelden. Dies kann entweder in die Funktionsdatei Ihres Themes eingefügt oder in eine eigene Plugin-Datei eingefügt und aktiviert werden.
Dies könnte nützlich sein, wenn;
- Ihre Site verfügt über ein allgemeines Konto, bei dem sich anonyme Benutzer anmelden können.
- Sie möchten einen Login-Link mit einem Klick.
- Sie möchten die Produktdemo-Konvertierung maximieren, indem Sie einen schnellen und effizienten Weg zur Demo bereitstellen und die erforderlichen Schritte minimieren.
- Sie möchten Besucher direkt an die entsprechende Stelle (zB Einstellungsseite) leiten.
WICHTIG: Verwenden Sie dies niemals, um sich bei Konten mit echter Macht anzumelden; z.B. Administrator-/Editor-Konten usw.
Verwenden Sie diesen Ausschnitt mit Bedacht.
Verwenden Sie diesen Ausschnitt mit Bedacht.
Ok, wie ich es in meinen anderen Tutorials getan habe, gebe ich Ihnen zuerst den vollständigen, kommentierten Code, damit diejenigen unter Ihnen, die keine Fans des Lesens sind, direkt damit experimentieren können. Das folgende Snippet wurde in Form eines eigenständigen Plugins gestaltet (meine persönliche Präferenz).
/*
Plugin Name: Auto Login
Plugin URI: http://hbt.io/
Version: 1.0.0
Author: Harri Bell-Thomas
Author URI: http://hbt.io/
*/
function autologin() {
// PARAMETER TO CHECK FOR
if ($_GET['autologin'] == 'demo') {
// ACCOUNT USERNAME TO LOGIN TO
$creds['user_login'] = 'demo';
// ACCOUNT PASSWORD TO USE
$creds['user_password'] = 'demo';
$creds['remember'] = true;
$autologin_user = wp_signon( $creds, false );
if ( !is_wp_error($autologin_user) )
header('Location: wp-admin'); // LOCATION TO REDIRECT TO
}
}
// ADD CODE JUST BEFORE HEADERS AND COOKIES ARE SENT
add_action( 'after_setup_theme', 'autologin' );
VERWENDUNGSZWECK
Dies ist sehr einfach zu verwenden. Der Benutzername und das Passwort des Kontos sind in der Plugin-Datei (Code oben) angegeben, und um sich anzumelden, müssen Sie nur besuchen; http://example.com/wp-login.php?autologin=demo
Sie sollten sofort zu wp-admin weitergeleitet werden, in das angegebene Konto eingeloggt sein. Wenn die Anmeldeinformationen jedoch falsch sind, sollten Sie wie gewohnt das Anmeldeformular sehen.
ANPASSEN
Dieser Ausschnitt ist sehr einfach anzupassen. Es gibt im Wesentlichen nur 3 Dinge, die Sie bearbeiten müssen, und alle diese Änderungen sind im folgenden Codeblock vorzunehmen (Zeilen 11 bis 17 des vollständigen Codes)
if ($_GET['login'] == 'dummy_account') {
// ACCOUNT USERNAME TO LOGIN TO
$creds['user_login'] = 'dummy';
// ACCOUNT PASSWORD TO USE
$creds['user_password'] = 'pa55word';
In der ersten Zeile sehen Sie die bedingte Prüfung für den URL-Parameter. Der obige Codeblock sucht nach; wp-login.php?login=dummy_account
Diese Werte können beliebig sein, aber seien Sie vorsichtig, um die ursprünglichen WordPress-Parameter wie ‚loggedout‘, ‚action‘ und ‚redirect_to‘ zu vermeiden. In Zeile 4 geben Sie den Benutzernamen für die Anmeldung an; Das angepasste Code-Snippet versucht, sich beim „Dummy“-Konto anzumelden. Wie Sie sich wahrscheinlich vorstellen können, geben Sie in Zeile 7 das Passwort ein. Das obige Passwort ist ‚pa55word‘. Füllen Sie diese Werte aus und Sie können loslegen!
ERWEITERUNGEN
Im Moment ist unser Snippet nur für die automatische Anmeldung bei einem Konto eingerichtet. Was ist, wenn wir unterschiedliche Login-Links für verschiedene Konten benötigen? Dies geht ganz schnell und einfach und erfordert nicht, dass Sie das ganze Snippet immer wieder wiederholen. Schau dir unten meine Lösung an.
/*
Plugin Name: Auto Login
Plugin URI: http://hbt.io/
Description: Create convenient auto-login links to quickly login to generic accounts. Configure source code to make changes.
Version: 1.0.0
Author: Harri Bell-Thomas
Author URI: http://hbt.io/
*/
// Declare global var's
global $login_parameter, $accounts;
// THE PARAMETER TO CHECK FOR
// eg. http://exmaple.com/wp-login.php?param_name=account
$login_parameter = "autologin";
// ACCOUNT CODE BLOCK
$accounts[] = array(
"user" => "demo",
"pass" => "demo",
"location" => "wp-admin",
);
// END ACCOUNT CODE BLOCK
// EDIT AND REPEAT CODE BLOCK FOR AS MANY ACCOUNTS AS NEEDED
// Another example iteration
$accounts[] = array(
"user" => "tcwp",
"pass" => "demo",
"location" => "wp-admin/?tcwp-sent-me",
);
// SEE PREVIOUS EXAMPLE FOR DETAILS ABOUT THIS FUNCTION
function autologin() {
global $login_parameter, $accounts;
foreach ($accounts as $account) {
if ($_GET[$login_parameter] == $account['user']) {
$creds['user_login'] = $account['user'];
$creds['user_password'] = $account['pass'];
$creds['remember'] = true;
$autologin_user = wp_signon( $creds, false );
if ( !is_wp_error($autologin_user) )
header('Location: ' . $account['location']);
}
}
}
add_action( 'after_setup_theme', 'autologin' );
Im Kern ist dies im Wesentlichen dasselbe, jedoch mit einer frechen Foreach-Schleife plus Konten-Array. Der Aufbau der Funktion autologin() ist identisch, außer dass ihr Code für jedes Konto wiederholt wird (unter Verwendung der foreach-Schleife). Alle relevanten Details werden nun im globalen Array gespeichert. Das obige Beispiel ist für 2 Konten eingerichtet, aber unser Snippet kann so viele aufnehmen, wie wir benötigen. Um zusätzliche Konten hinzuzufügen, passen Sie einfach so viele der folgenden Codeblöcke an, wie Sie benötigen.
// ACCOUNT CODE BLOCK
$accounts[] = array(
"user" => "anotheraccount",
"pass" => "public_password",
"location" => "http://YouCanPutURLsHereToo.com/",
);
// END ACCOUNT CODE BLOCK
Sie werden auch feststellen, dass ich den Parameternamen auch in eine globale Variable verschoben habe: Dies ist nicht erforderlich, aber ich habe dies nur getan, um alle hartcodierten Werte aus der Funktion autologin() zu entfernen.
FAZIT
Dieses Snippet ist nur eine einfache Funktion, die für eine einfache Verwendung entwickelt wurde, z. B. auf einer Produktdemo-Site, hat jedoch das Potenzial, für viel komplexere Anmeldeszenarien verwendet zu werden. Der Rest des Codes sollte ziemlich selbsterklärend sein, aber wenn Sie Fragen zu dem haben, was ich getan habe oder warum ich es getan habe, hinterlassen Sie einfach unten einen Kommentar oder twittern Sie mich. Wenn Sie Feedback / Vorschläge / Ideen haben, hinterlassen Sie einen Kommentar im Kommentarbereich unten!