Jak wyświetlić formularz rejestracyjny użytkownika WordPress (formularz, który pojawia się na stronie „www.mywebsite.com/wp-register.php”) na froncie mojego bloga?
Dostosowałem formularz rejestracyjny. Ale nie wiem, jak wywołać ten formularz na stronie interfejsu użytkownika. Każde wsparcie będzie naprawdę świetną pomocą.
Z góry dziękuję. :)
registration
forms
bueltge
źródło
źródło
Odpowiedzi:
Proces obejmuje 2 kroki:
Są trzy różne podejścia, które przychodzą mi na myśl, aby pokazać frontend:
Do tej odpowiedzi użyję tego drugiego. Powody są następujące:
1: Zbuduj adres URL
Wszyscy wiemy, że domyślna forma rejestracji witryny WordPress jest często celem spamerów. Korzystanie z niestandardowego adresu URL pomaga rozwiązać ten problem. Ponadto chcę również użyć zmiennego adresu URL, tzn. Adres URL formularza rejestracji nie powinien być zawsze taki sam, co utrudnia spamerom życie. Trik odbywa się za pomocą nonce w adresie URL:
Korzystanie z tych funkcji jest łatwe do wyświetlenia w szablonach link do formularza rejestracyjnego, nawet jeśli jest dynamiczny.
2: Rozpoznaj adres URL, pierwszy odcinek
Custom_Reg\Custom_Reg
klasyTeraz musimy rozpoznać adres URL. W tym celu zacznę pisać klasę, która zakończy się w dalszej części odpowiedzi:
Funkcja wygląda na pierwszą część adresu URL później
home_url()
, a jeśli pasuje do naszej wartości jednorazowej, zwraca PRAWDA. Ta funkcja będzie używana do sprawdzenia naszego żądania i wykonania niezbędnych działań w celu wyświetlenia naszego formularza.3:
Custom_Reg\Form
KlasaNapiszę teraz klasę, która będzie odpowiedzialna za generowanie znaczników formularza. Użyję go również do przechowywania we właściwości ścieżki pliku szablonu, która powinna zostać użyta do wyświetlenia formularza.
Klasa generuje formularze zapętlając wszystkie pola dodając
create
metodę wywoływania na każdym z nich. Każde pole musi być instancjąCustom_Reg\FieldInterface
. Dodano dodatkowe ukryte pole do weryfikacji nonce. Metodą formularza jest domyślnie „POST”, ale można ją ustawić na „GET” przy użyciusetVerb
metody Po utworzeniu znacznik jest zapisywany we$form
właściwości obiektu, która jest powtarzana przezoutput()
metodę, zaczepiona w'custom_registration_form'
hook: w szablonie formularza wystarczy wywołaćdo_action( 'custom_registration_form' )
wyświetli formularz.4: szablon domyślny
Jak powiedziałem, szablon formularza można łatwo zastąpić, jednak potrzebujemy podstawowego szablonu na wypadek awarii. Napisałem tutaj bardzo szorstki szablon, bardziej dowód koncepcji niż prawdziwy szablon.
5:
Custom_Reg\FieldInterface
interfejsKażde pole powinno być obiektem, który implementuje następujący interfejs
Myślę, że komentarze wyjaśniają, co powinny robić klasy implementujące ten interfejs.
6: Dodanie niektórych pól
Teraz potrzebujemy kilku pól. Możemy stworzyć plik o nazwie „fields.php”, w którym zdefiniujemy klasy pól:
Użyłem klasy bazowej do zdefiniowania domyślnej implementacji interfejsu, jednak można dodać bardzo spersonalizowane pola bezpośrednio implementujące interfejs lub rozszerzające klasę podstawową i zastępujące niektóre metody.
W tym momencie mamy wszystko do wyświetlenia formularza, teraz potrzebujemy czegoś, aby zweryfikować i zapisać pola.
7:
Custom_Reg\Saver
KlasaTa klasa ma 2 główne metody, jedna (
validate
), która zapętla pola, sprawdza je i zapisuje dobre dane w tablicy, druga (save
) zapisuje wszystkie dane w bazie danych i wysyła hasło pocztą elektroniczną do nowego użytkownika.8: Korzystanie ze zdefiniowanych klas: zakończenie
Custom_Reg
zajęćTeraz możemy znów pracować nad
Custom_Reg
klasą, dodając metody, które „kleją” zdefiniowany obiekt i sprawiają, że działająKonstruktor klasy akceptuje instancję
Form
i jedną zSaver
.init()
metoda (za pomocącheckUrl()
) spójrz na pierwszą część adresu URL pohome_url()
, a jeśli pasuje do właściwej wartości jednorazowej, sprawdza, czy formularz został już przesłany, jeśli tak, używającSaver
obiektu, sprawdza poprawność i zapisuje dane użytkownika, w przeciwnym razie po prostu wydrukuj formularz .init()
Metoda uruchamia także hak akcji,'custom_reg_form_init'
przekazując instancję formularza jako argument: tego haka należy użyć do dodania pól, ustawienia niestandardowego szablonu, a także do dostosowania metody formularza.9: Składanie rzeczy
Teraz musimy napisać główny plik wtyczki, w którym możemy
Custom_Reg
klasy instancji i połączeniainit()
na niej metodę za pomocą odpowiednio wczesnego przechwytywaniaWięc:
10: Brakujące zadania
Teraz wszystko jest dość skończone. Musimy tylko dostosować szablon, prawdopodobnie dodając niestandardowy plik szablonu w naszym motywie.
W ten sposób możemy dodawać określone style i skrypty tylko do niestandardowej strony rejestracji
Za pomocą tej metody możemy kolejkować niektóre skrypty js do obsługi sprawdzania poprawności po stronie klienta, np. Ten . Znaczniki potrzebne do działania skryptu można łatwo obsłużyć edytując
Custom_Reg\BaseField
klasę.Jeśli chcemy dostosować e-mail rejestracyjny, możemy skorzystać ze standardowej metody i mając niestandardowe dane zapisane w meta, możemy z nich skorzystać w e-mailu.
Ostatnim zadaniem, które prawdopodobnie chcemy wdrożyć, jest zapobieganie prośbie o domyślny formularz rejestracyjny, tak prosty jak:
Wszystkie pliki można znaleźć w Gist tutaj .
źródło
TLDR; Umieść w formularzu następujący formularz,
name
aid
atrybuty i są ważne:Znalazłem doskonały artykuł Tutsplus na temat tworzenia od podstaw fantazyjnego formularza rejestracyjnego Wordpress . Spędza to dużo czasu na stylizowaniu formularza, ale ma następującą dość prostą sekcję na temat wymaganego kodu Wordpress:
Edycja: Dodałem dodatkowy końcowy fragment z artykułu, aby wyjaśnić, gdzie umieścić powyższe fragmenty kodu - jest to po prostu formularz, dzięki czemu można przejść do dowolnego szablonu strony lub paska bocznego lub zrobić z niego krótki kod. Ważna sekcja
form
zawiera powyższe fragmenty i ważne wymagane pola.źródło
wp-login.php?action=register
stronęw tym artykule znajduje się bardzo tutorial dotyczący tworzenia własnych formularzy rejestracji / logowania / przywracania hasła.
lub jeśli szukasz wtyczki, skorzystałem z niej już wcześniej i mogę polecić:
źródło
Jakiś czas temu stworzyłem stronę internetową, która wyświetlała niestandardowy formularz rejestracyjny na przedniej stronie. Ta strona nie jest już dostępna, ale oto kilka zrzutów ekranu.
Oto kroki, które wykonałem:
1) Aktywuj możliwość, aby wszyscy odwiedzający poprosili o nowe konto poprzez Ustawienia> Ogólne> Opcja członkostwa. Strona rejestracji pojawi się teraz pod adresem URL /wp-login.php?action=register
2) Dostosuj formularz rejestracyjny, aby wyglądał jak interfejs witryny. Jest to trudniejsze i zależy od używanego motywu.
Oto przykład z dwudziestoletnim:
Następnie zmodyfikuj arkusz stylów motywu, aby formularz wyglądał tak, jak chcesz.
3) Możesz dalej modyfikować formularz, dostosowując wyświetlane komunikaty:
4) Jeśli potrzebujesz formularza rejestracyjnego, prawdopodobnie nie będziesz chciał, aby zarejestrowani użytkownicy widzieli backend po zalogowaniu.
Jest wiele kroków, ale wynik jest tutaj!
źródło
O wiele łatwiej: użyj funkcji WordPress o nazwie
wp_login_form()
( tutaj strona Kodeksu ).Możesz stworzyć własną wtyczkę, aby użyć krótkiego kodu na swoich stronach:
Wszystko, co musisz zrobić, to stylizować formularz na interfejsie.
źródło
Jeśli jesteś otwarty na korzystanie z wtyczek, wcześniej korzystałem z dodatku Rejestracja użytkownika dla formularzy Gravity, działało to bardzo dobrze:
http://www.gravityforms.com/add-ons/user-registration/
Edycja: Zdaję sobie sprawę, że to nie jest bardzo szczegółowe rozwiązanie, ale robi dokładnie to, czego potrzebujesz i jest dobrym rozwiązaniem.
Edycja: Aby rozwinąć moją odpowiedź, dodatek Rejestracja użytkownika dla formularzy grawitacyjnych pozwala na mapowanie dowolnych pól w formularzu utworzonym za pomocą formularzy grawitacyjnych na pola specyficzne dla użytkownika. Na przykład możesz utworzyć formularz z imieniem, nazwiskiem, adresem e-mail, witryną internetową i hasłem. Po przesłaniu dodatek mapuje te dane wejściowe na odpowiednie pola użytkownika.
Kolejną wspaniałą rzeczą jest to, że możesz dodać zarejestrowanych użytkowników do kolejki zatwierdzania. Ich konta użytkowników zostaną utworzone dopiero po zatwierdzeniu przez administratora w backendie.
Jeśli powyższy link się zepsuje, wystarczy Google „Rejestracja użytkownika dodać do formularzy Gravity”
źródło