Cum să creați propria pagina de înregistrare în multilocație WordPress - revista wp

Acasă → Diverse → Cum de a crea pagina de înregistrare în propriul WordPress multilocație

Modul multilocație vă permite să utilizați o singură instalare de WordPress la mai multe site-uri simultan. În plus, fiecare site-ul devine propria lor masă în baza de date cu un prefix unic.

În modul WordPress multilocație, nucleul începe să se comporte ușor diferit și atunci când faceți clic pe link-ul wp-login.php? Action = registru va redirecționa către wp-signup.php. Aceasta este pagina de înregistrare a rețelei, care în mod implicit are de WordPress.

Cum să creați propria pagina de înregistrare în multilocație WordPress - revista wp

Pagina de înregistrare implicită

Cum să creați propria pagina de înregistrare în multilocație WordPress - revista wp

Setări de rețea în modul multisite

Cea mai mare parte a paginii de conectare nu arata foarte bine. Multe teme folosind CSS-cadre, de exemplu, Bootstrap și propriile lor clase specifice stilului diferitelor elemente de pe paginile, astfel încât este dificil de a scrie un singur HTML, care se va potrivi cu toată lumea.

Dar nu disperați, dacă pagina arată murdar. Fișier wp-signup.php mare lucru de la început, atunci când nu există nici un timp pentru a lucra în fiecare detaliu al site-ului - vă puteți concentra pe alte pagini mai importante și de conținut.

Site-ul principal de rețea

În mod implicit, WordPress se deschide pagina de înregistrare (wp-signup.php) în rețeaua primară de domeniu (site). Cu toate acestea, puteți crea o pagină de înregistrare pentru fiecare site-ul de rețea, chiar dacă acestea au domenii diferite și subiecte.

Considerăm cazul în care toate site-urile de rețea folosind o singură temă, dar fiecare dintre ele are o pagină de înscriere. Site-urile diferă în limba (engleză și română), deci din pagina de înscriere va fi afișată în limba „nativă“ a site-ului. Dacă site-urile folosesc diferite teme, toate vor depinde de ce anume această temă, indiferent dacă acesta este același aspect (situație diferită, care vă poate împinge de a unifica toate temele lor) adecvate sau necesare pentru a lucra în pagini individuale.

functions.php alternativă

fișier functions.php familiară multor utilizatori de WordPress evenimente și filtre. cu care este foarte ușor de a face modificări. În cazul nostru, având în vedere faptul că funcționalitatea de înregistrare este proiectat pentru mai multe site-uri, are sens să-l aducă la MU-in-uri.

Ce este MU-in-uri?

MU-plugins (trebuie să utilizeze Plugin-uri) sunt încărcate atunci când deschideți orice site de rețea. Ele nu pot dezactiva sau activa în partea administrativă a WordPress, ei întotdeauna locul de muncă. Trebuie remarcat faptul că MU-urile sunt încărcate mai devreme decât de obicei plugin-uri, teme și WordPress la încărcare completă kernel-ul, asa ca suna unele funcții pot duce la erori fatale în PHP.

Acest „devreme“ Rețeaua de căutare are avantajele sale. De exemplu, în cadrul oricărui subiect pe care nu se poate agăța de unele dintre evenimentele de plugin-uri care sunt declanșate înainte de descărcare functions.php.

Uită-te la imaginea de ansamblu cu privire la descărcarea WordPress și apariția de evenimente pot fi pe pagina Acțiune de referință în Cod.

Ordinea fișierelor

MU-in-uri pot conține orice număr de fișiere și structura care va părea logic. Am stick la aproximativ ierarhia:

În transferuri de fișiere load.php și conectați toate necesare „plug-in-uri“:

În interiorul selena-rețea director conține dosarul de plug-in-uri. Fiecare are plugin.php ei. care ne conectam la load.php. Acest lucru oferă flexibilitate și capacitatea de a dezactiva instantaneu și pentru a permite componentelor individuale pe proiectul dumneavoastră în caz de urgență.

pagina de înregistrare

După ce a ocupat de unde și cum vom scrie codul, puteți începe să creați pagina de înregistrare.

Redirecționeze la pagina de conectare corespunzătoare

WordPress să știe despre noua noastră pagina de înregistrare și să redirecționeze a fost produs pe ea, atunci când faceți clic pe link-ul „Register“, se folosește filtrul wp_signup_location. El poate fi găsit în interiorul wp-login.php și este responsabil pentru redirecționării implicit la wp-signup.php.

După cum vă amintiți, pagina de înregistrare implicit se deschide pe domeniul principal de rețea. Acesta este motivul pentru care este folosit aici network_site_url ().

Funcțională wp-signup.php

fișier wp-signup.php conține un număr mare de funcții și cod. Pentru a vedea imaginea de ansamblu, puteți folosi codul de pliere. Ca regulă generală, în limba engleză se numește «pliere cod».

Cum să creați propria pagina de înregistrare în multilocație WordPress - revista wp

conținutul fișierului wp-signup.php

La începutul fișierului 1-80 linie (în versiunea 4.1.1) a făcut mai multe verificări și afișează „Start“ folosind pagina get_header ().

declară în continuare un set de metode și înainte de a începe să lucreze cu ei, este necesar să înțelegem ce face fiecare funcție. În interior, multe dintre ele folosesc de multe ori alte funcții cu wpmu_ prefix. acestea sunt declarate în wp-include / fișier ms-functions.php. Această secțiune este greu de înțeles fără a vedea codul tine. Mai jos este o scurtă descriere a principalelor funcții în cazul în care întâmpinați dificultăți.

În partea de jos a fișierului wp-signup.php (de la linia 646 în versiunea 4.1.1) logica principală a paginii de înregistrare, care folosește toate metodele descrise mai sus. Această parte a codului nu este luată în funcție. La final a provocat get_footer ().

funcționalitatea de copiere wp-signup.php

Apoi, cum să copiați wp-signup.php vor fi descrise în MU-uri și de modificare a „furcă“. Poate că nu poate părea ca modul cel mai corect. În schimb, puteți scrie de la zero funcțiile de forme de testare și de ieșire folosind clase în loc de caracteristicile obișnuite. În opinia mea, în wp-signup.php au deja toate logica necesară pagina noastră, se poate face doar mici modificări.

Când actualizarea WordPress din timp în timp și schimbări wp-signup.php. dar acest lucru nu înseamnă că, pentru fiecare lansare va trebui să sincronizeze lor „furculiță“. Funcția în interiorul wp-signup.php implicate, în esență, numai ieșire HTML, de validare a datelor, crearea de conturi de utilizator și site-uri implicate în practici cu wpmu_ prefix. declarate în ms-functions.php.

Vom scrie o funcție care va imprima formularul de înregistrare pe pagina. Pentru a face acest lucru, copiați wp-signup.php de WordPress rădăcină mu-plugings / selena-rețea / înscriere /. Conectați-l în interiorul mu-plugins / selena-rețea / înscriere / plugin.php).

Eliminați de la începutul fișierului copiat, toate necesită și testarea inutilă. În versiunea 4.1.1, este tot codul 1-80 linie.

Acum suntem gata de a crea funcția principală pentru un formular de înregistrare. Pentru a face acest lucru, toate logica de la linia 646 până la sfârșitul fișierului se va muta la numele funcției c selena_network_signup_main. La final a elimina două închidere suplimentare

(Liniile 722 și 723), precum și o provocare get_footer ().

În selena_network_signup_main nou creat () la începutul vom declara o active_signup variabilă globală. care este utilizat de către toate celelalte metode ale acestui fișier. Și a adăuga un apel evenimente before_signup_form. am eliminat de la începutul fișierului.

Acum rămâne doar pentru a schimba aspectul în toate locurile unde este necesar și pagina de înregistrare este gata.

Un formular de înregistrare

A doua opțiune - pentru a crea o temă copil director pagină șablon de pagină-signup.php. În loc de cuvântul «înscriere» Puteți utiliza ID-ul unic, atribuit paginii. În interiorul șablonul, adăugați aspectul necesar și să facă un apel selena_network_signup_main () în locul potrivit.

Ca rezultat al paginii mele de înregistrare a început să arate mult mai bine și mai curat.

Cum să creați propria pagina de înregistrare în multilocație WordPress - revista wp

pagina de înregistrare proprii în WordPress multilocație

pagina de activare

Pentru retragerea site-ului de activare este responsabil fișier wp-activate.php localizat în directorul rădăcină al WordPress. wp-activate.php, de asemenea, puteți schimba complet. Procesul este similar cu ceea ce am făcut pentru wp-signup.php.

Cum să creați propria pagina de înregistrare în multilocație WordPress - revista wp

Pagina de activare în WordPress multilocație

Copiați fișierul wp-activate.php a lui MU-in-uri și conectați-l la mu-plugins / selena-rețea / înscriere / plugin.php.

Eliminați toate testele inutile și necesită - 1-69 linie în WordPress 4.1.1. La sfârșitul apelului elimina get_footer (). Stânga pentru a transfera funcția conținutul selena_network_activate_main ().

Este interesant de observat că aici, înainte de a descărca WordPress (wp-load.php) a declarat WP_INSTALLING constantă. Prezenta sa face WordPress nu se încarcă plugin-uri.

Așa cum este cazul cu înregistrarea paginii rămâne doar pentru a remedia aspectul în cazul în care este nevoie. Puteți schimba, de asemenea, mesajele text afișate (în acest caz, nu uitați să adăugați un domeniu de text al lor MU-uri în toate funcțiile și interpreților, în mod implicit nu este instalat oriunde).

Funcția finalizată poate fi utilizată pentru pagina de pre-create prin SHORTCODE sau un șablon separat în subiect subsidiar.

Cum să creați propria pagina de înregistrare în multilocație WordPress - revista wp

Activarea paginii proprii în WordPress multilocație

După aceea, în funcție de funcția numită _notification wpmu_signup_user () sau _notification wpmu_signup_blog (). Ambele funcții au o funcționalitate similară - a genera și trimite e-mail cu o activare link-ul, dar să ia diferite argumente. În ambele există filtre pentru „interceptare“ a evenimentului.

Rămâne doar să scrie stivuitoare lor în care să trimită mesaje prin intermediul wp_mail (). dar în cele din urmă în mod necesar fals. WordPress nu a trimite e-mail de activare de două ori - unul este a ta, celălalt - e-mail implicit, cu un link către wp-activate.php.

Dacă trimite e-mail prin SMTP-server sau numărul de înregistrări este foarte mare, ar trebui să se gândească la modul în care să nu trimită scrisoarea imediat. În schimb, puteți adăuga Cron-sarcini cu WordPress Cron.

Închide acces la wp-signup.php și wp-activate.php

Creați pagina de conectare proprii și activarea, poate fi necesar pentru a închide „originalele“. De exemplu, în cazul în care pagina de înregistrare există câmpuri suplimentare care sunt necesare pentru a umple. De asemenea, multe site-uri WordPress sunt expuse înregistrărilor de spam.

Pentru a rezolva două probleme într-un singur pas puteți cere Apache pentru a da 404, în cazul încercărilor de a deschide aceste pagini. Pentru a face acest lucru, trebuie să vă înregistrați doar câteva RewriteRule suplimentare în configurația fișier sau .htaccess.

concluzie

Pentru aceasta și multe alte „probleme“ asociate cu WordPress pe Internet există multe soluții. De exemplu, pentru a crea o pagină pentru a înregistra și a activa unele oferta pentru a rescrie original wp-signup.php și wp-activate.php. Nu ar trebui să facă, pentru că, în cazul unei actualizări WordPress, veți pierde toate modificările făcute la fișiere, și nu poate, verifica integritatea nucleului folosind WP-CLI.

Dezvoltarea oricăror adăugiri, teme sau soluții ar trebui să petreacă un pic de timp încercând să se ocupe de ceea ce se întâmplă în interiorul WordPress. Pentru a face acest lucru, există mai multe instrumente de depanare utile.

Pentru a atribui automat roluri diferite pentru utilizatori noi, puteți utiliza plugin-ul multilocație de gestionare a utilizatorilor.

Și aceeași întrebare despre handlerele în care pentru a trimite mesaje prin wp_mail () - ei doar mu-plugins?

Toate această funcționalitate, după cum a spus mai sus Constantin, mai bine mu-plugins pentru a păstra, totuși, în cazul în care, pentru un motiv sau altul, este mai convenabil în subiect, este posibil și acolo (de exemplu, tema este reglat pentru orice anumit site). Cum cele mai bune pentru a organiza fișierele în folderul mu-plugins sau un subiect deja la discreția dezvoltatorului. Am pus în /selena-network/signup/plugin.php. Acest lucru nu este, probabil, „drept“ decizie. Pentru că puteți scrie toate acestea cu ajutorul claselor, și nu doar o caracteristici Plain (este complicat). Puteți utiliza, de asemenea compozitor și apoi locația fișierelor este de asemenea diferit este, de exemplu, folosind standard de PSR-4 și autoloaders.

Dar toate acestea este foarte mult pe discreția finală a dezvoltatorului, pentru că eu sunt atât de multe plugin-uri și teme diferite văzute peste tot ce vrea și care scrie. Desigur, este mai bine să urmeze standardele sau o altă logică într-o lună ar putea da seama unde totul era. Și noul dezvoltator nu vede codul atât mai gri.

Și o altă întrebare - despre diferitele roluri înregistrate. Sistemul a creat roluri diferite, iar utilizatorii de înregistrare pentru a selecta un rol pentru tine - formular de înregistrare a fost generat un subiect. Acum, când am creat pagina mea de înscriere pentru a înregistra pentru un site de rețea specifice - alegerea rolurilor nu este prezent, există doar un nume de utilizator și e-mail câmp adresa, care este de înțeles. Cum se poate aduce într-o nouă formă de roluri de utilizator de a alege?

O dată pe săptămână, dar totul nou despre WordPress și nu există spam!