Wie kann ich das WordPress-Benutzerregistrierungsformular (das Formular, das auf der Seite "www.mywebsite.com/wp-register.php" angezeigt wird) im Front-End meines Blogs anzeigen?
Ich habe das Anmeldeformular angepasst. Aber ich weiß nicht, wie ich dieses Formular auf der Front-End-Seite aufrufen soll. Jede Unterstützung wird wirklich eine große Hilfe sein.
Danke im Voraus. :)
registration
forms
bueltge
quelle
quelle
Antworten:
Der Prozess umfasst 2 Schritte:
Es gibt 3 verschiedene Ansätze, die mir einfallen, um das Frontend zu zeigen:
Für diese Antwort verwende ich letzteres. Die Gründe sind:
1: Erstellen Sie die URL
Wir alle wissen, dass die Standardregistrierungsform einer WordPress-Site häufig ein Ziel für Spammer ist. Die Verwendung einer benutzerdefinierten URL ist eine Hilfe zur Lösung dieses Problems. Außerdem möchte ich auch eine variable URL verwenden, dh die Registrierungsformular-URL sollte nicht immer gleich sein, dies macht Spammern das Leben schwerer. Der Trick wird mit einem Nonce in der URL gemacht:
Die Verwendung dieser Funktionen ist einfach, in Vorlagen einen Link zum Registrierungsformular anzuzeigen, auch wenn es dynamisch ist.
2: Erkennen Sie die URL, den ersten Stub der
Custom_Reg\Custom_Reg
KlasseJetzt müssen wir die URL erkennen. Zum Zweck beginne ich mit dem Schreiben einer Klasse, die später in der Antwort beendet wird:
Die Funktion betrachtet den ersten Teil der URL danach
home_url()
und gibt TRUE zurück , wenn sie mit unserer Nonce übereinstimmt. Diese Funktion wird verwendet, um unsere Anfrage zu überprüfen und die erforderlichen Aktionen auszuführen, um unser Formular anzuzeigen.3: Die
Custom_Reg\Form
KlasseIch werde jetzt eine Klasse schreiben, die für die Generierung des Formular-Markups verantwortlich ist. Ich werde es auch verwenden, um in einer Eigenschaft den Pfad der Vorlagendatei zu speichern, der zum Anzeigen des Formulars verwendet werden soll.
Die Klasse generiert eine Formular-Markup-Schleife, in der alle Felder der jeweils hinzugefügten aufrufenden
create
Methode aufgeführt werden. Jedes Feld muss eine Instanz von seinCustom_Reg\FieldInterface
. Ein zusätzliches ausgeblendetes Feld wird zur Überprüfung hinzugefügt. Die Formularmethode ist standardmäßig 'POST', kann aber mitsetVerb
method auf 'GET' gesetzt werden . Nach der Erstellung der Auszeichnungs innerhalb der gespeicherten$form
Objekteigenschaft, die durch Echo wirdoutput()
in Verfahren, gehakt'custom_registration_form'
Hook: in der Formularvorlage, rufen Sie einfachdo_action( 'custom_registration_form' )
ausgeben wird die Form.4: Die Standardvorlage
Wie gesagt, die Vorlage für das Formular kann leicht überschrieben werden, wir benötigen jedoch eine grundlegende Vorlage als Fallback. Ich werde hier eine sehr grobe Vorlage schreiben, eher ein Proof of Concept als eine echte Vorlage.
5: Die
Custom_Reg\FieldInterface
SchnittstelleJedes Feld sollte ein Objekt sein, das die folgende Schnittstelle implementiert
Ich denke, dass Kommentare erklären, welche Klassen diese Schnittstelle implementieren sollten.
6: Hinzufügen einiger Felder
Jetzt brauchen wir ein paar Felder. Wir können eine Datei namens 'fields.php' erstellen, in der wir die Feldklassen definieren:
Ich habe eine Basisklasse verwendet, um die Standard-Schnittstellenimplementierung zu definieren. Man kann jedoch sehr angepasste Felder hinzufügen, die die Schnittstelle direkt implementieren oder die Basisklasse erweitern und einige Methoden überschreiben.
An diesem Punkt haben wir alles, um das Formular anzuzeigen. Jetzt brauchen wir etwas, um die Felder zu validieren und zu speichern.
7: Die
Custom_Reg\Saver
KlasseDiese Klasse hat 2 Hauptmethoden, eine (
validate
), die die Felder schleifen, validieren und gute Daten in einem Arraysave
speichern , die zweite ( ), alle Daten in der Datenbank speichern und ein Passwort per E-Mail an einen neuen Benutzer senden.8: Verwenden definierter Klassen: Beenden der
Custom_Reg
KlasseJetzt können wir wieder an der
Custom_Reg
Klasse arbeiten und die Methoden hinzufügen, die das definierte Objekt "zusammenkleben" und zum Funktionieren bringenDer Konstruktor der Klasse akzeptiert eine Instanz von
Form
und eine vonSaver
.init()
method (usingcheckUrl()
) schaut sich den ersten Teil der URL danachhome_url()
an und überprüft, ob das Formular bereitsSaver
gesendet wurde , wenn dies mit dem Objekt der Fall ist, überprüft und speichert es die Benutzerdaten, andernfalls druckt es einfach das Formular aus .init()
method löst auch den Aktions-Hook aus'custom_reg_form_init'
, der die Formularinstanz als Argument übergibt: Dieser Hook sollte zum Hinzufügen von Feldern, zum Einrichten der benutzerdefinierten Vorlage und zum Anpassen der Formularmethode verwendet werden.9: Dinge zusammenfügen
Jetzt müssen wir die Haupt-Plugin-Datei schreiben, wo wir können
Custom_Reg
und der Aufrufmethodeinit()
unter Verwendung eines relativ frühen HooksSo:
10: Fehlende Aufgaben
Jetzt ist alles ziemlich erledigt. Wir müssen nur die Vorlage anpassen und fügen wahrscheinlich eine benutzerdefinierte Vorlagendatei in unser Design ein.
Auf diese Weise können wir der benutzerdefinierten Registrierungsseite nur bestimmte Stile und Skripte hinzufügen
Mit dieser Methode können wir einige js-Skripte in die Warteschlange stellen, um die clientseitige Validierung durchzuführen, z . B. dieses . Das für die Ausführung des Skripts erforderliche Markup kann problemlos zum Bearbeiten der
Custom_Reg\BaseField
Klasse verwendet werden.Wenn wir die Registrierungs-E-Mail anpassen möchten, können wir die Standardmethode verwenden und benutzerdefinierte Daten auf Meta speichern und in der E-Mail verwenden.
Die letzte Aufgabe, die wir wahrscheinlich implementieren möchten, ist das Verhindern der Anforderung eines Standardregistrierungsformulars, so einfach wie:
Alle Dateien können in einem Gist finden hier .
quelle
TLDR; Fügen Sie das folgende Formular in Ihr Thema ein, die
name
undid
Attribute sind wichtig:Ich fand einen ausgezeichneten Tutsplus-Artikel über das Erstellen eines ausgefallenen Wordpress-Registrierungsformulars von Grund auf neu . Dies nimmt viel Zeit in Anspruch, um das Formular zu gestalten, enthält jedoch den folgenden recht einfachen Abschnitt zum erforderlichen WordPress-Code:
Bearbeiten: Ich habe das letzte Extra-Bit aus dem Artikel hinzugefügt, um zu erklären, wo die obigen Code-Schnipsel abgelegt werden sollen - es ist nur ein Formular, damit es in eine beliebige Seitenvorlage oder Seitenleiste eingefügt oder einen Shortcode daraus erstellt werden kann. Der wichtige Abschnitt
form
enthält die obigen Ausschnitte und die wichtigen erforderlichen Felder.quelle
wp-login.php?action=register
Seitedieser Artikel enthält eine kurze Anleitung zum Erstellen eigener Frontend-Registrierungs-, Anmelde- und Wiederherstellungsformulare für Kennwörter.
oder wenn du nach einem Plugin suchst, dann habe ich diese schon benutzt und kann sie empfehlen:
quelle
Ich habe vor einiger Zeit eine Website erstellt, auf der ein benutzerdefiniertes Registrierungsformular auf der Vorderseite angezeigt wurde. Diese Website ist nicht mehr live, aber hier sind einige Screenshots.
Hier sind die Schritte, denen ich gefolgt bin:
1) Aktivieren Sie die Möglichkeit für alle Besucher, über Einstellungen> Allgemein> Mitgliedschaft einen neuen Account anzufordern. Die Registrierungsseite wird jetzt unter der URL /wp-login.php?action=register angezeigt
2) Passen Sie das Registrierungsformular so an, dass es wie das Front-End Ihrer Website aussieht. Dies ist schwieriger und hängt vom verwendeten Thema ab.
Hier ist ein Beispiel mit dreizehn:
Ändern Sie dann das Design-Stylesheet, damit das Formular wie gewünscht angezeigt wird.
3) Sie können das Formular weiter modifizieren, indem Sie die angezeigten Meldungen anpassen:
4) Wenn Sie ein Front-End-Registrierungsformular benötigen, möchten Sie wahrscheinlich nicht, dass registrierte Benutzer das Back-End sehen, wenn sie sich anmelden.
Es gibt viele Schritte, aber das Ergebnis ist da!
quelle
Einfacher geht es nicht: Verwenden Sie eine WordPress-Funktion namens
wp_login_form()
( Codex-Seite hier ).Sie können Ihr eigenes Plugin erstellen, um einen Shortcode für eine Ihrer Seiten zu verwenden:
Alles was Sie tun müssen, ist Ihr Formular im Frontend zu gestalten.
quelle
Wenn Sie offen für die Verwendung von Plugins sind, habe ich das Add-On für die Benutzerregistrierung für Gravity Forms bereits verwendet. Es hat sehr gut funktioniert:
http://www.gravityforms.com/add-ons/user-registration/
Edit: Mir ist klar, dass dies keine sehr detaillierte Lösung ist, aber es macht genau das, was Sie brauchen und ist eine gute Lösung.
Bearbeiten: Um meine Antwort weiter zu erweitern, können Sie mit dem Benutzerregistrierungs-Add-On für Schwerkraftformulare beliebige Felder in einem Formular, das mit Schwerkraftformularen erstellt wurde, benutzerspezifischen Feldern zuordnen. Beispielsweise können Sie ein Formular mit Vorname, Nachname, E-Mail, Website und Kennwort erstellen. Nach dem Absenden ordnet das Add-On diese Eingaben den entsprechenden Benutzerfeldern zu.
Eine weitere großartige Sache ist, dass Sie registrierte Benutzer zu einer Genehmigungswarteschlange hinzufügen können. Ihre Benutzerkonten werden nur erstellt, wenn sie im Backend von einem Administrator genehmigt wurden.
Wenn der obige Link nicht funktioniert, fügen Sie einfach Google "Benutzerregistrierung für Gravity Forms" hinzu.
quelle