internetul Windows. Android

Cum de a crea propria pagină de înregistrare în WordPress Multisite. Rezultatul formularului de înregistrare

Creați propria pagină de înregistrare pentru multisite în loc de standard WP-Signup.php.

În setarea obișnuită WordPress, pagina de înregistrare (autorizația, resetarea parolei) afișează fișierul WP-Login.php.

  • /wp-login.php - Autorizare
  • /wp-login.php?action\u003dregister - Înregistrare
  • /wp-login.php?action\u003dLostPassWord - Resetarea parolei

Pentru multisite în WP-Login.Php există condiții separate. Deci, atunci când faceți clic pe linkul /wp-login.php?action\u003dRegister pe Multisaite, WordPress va face o redirecționare a paginii /wp-signup.php. În multe subiecte, pagina nu pare foarte atractivă, așa că vom face propriul nostru.

Rețeaua principală de site-uri web

Implicit, WordPress deschide pagina de înregistrare (WP-Signup.php) pe rețeaua principală (site-ul web). Cu toate acestea, puteți efectua o pagină de înregistrare separată pentru fiecare site de rețea, chiar dacă au subiecte diferite. Vom lua în considerare cazul în cazul în care toate site-urile de rețea au propria pagină de înregistrare, dar același subiect este utilizat și site-urile diferă numai în limba. Dacă se utilizează diferite subiecte, va trebui să scrieți mai mult cod.

funcții.php?

Nu. Numele acestui fișier pare să fie menționat în orice articol despre WordPress. În cazul nostru, luând în considerare faptul că funcționalitatea înregistrării este concepută pentru mai multe site-uri, este logic să o luați în mu-pluginurile care sunt încărcate la deschiderea oricărui site.

Digresiune lirică

Este demn de remarcat faptul că Mu-plugin-urile sunt încărcate mai devreme decât plug-in-urile obișnuite și până când kernelul WordPress este complet descărcat, astfel încât apelul pentru unele funcții poate duce la erori fatabale în PHP. Descărcarea similară "devreme" are avantajele sale. Să spunem în interiorul oricărei tematici nu se poate agăța de o acțiune care este declanșată înainte de a descărca funcțiile.php fișierul din subiect. Un exemplu de acest lucru poate servi ca un plugin jetpack_module_loadd_relat-stâlp (mesaje asociate - numele modulului) cu care este posibil să urmăriți activitatea modulelor din JetPack. Este imposibil de "ambreiaj" din dosarul de subiect la această acțiune, deoarece acțiunea a lucrat deja înainte de încărcare a subiectului - pluginurile sunt încărcate mai devreme. Puteți să aruncați o privire la imaginea comună a comenzii de boot WordPress pe pagina de referință a acțiunii din cod.

Comandați în fișiere

Mu-Plugins poate conține orice număr de fișiere și orice diagramă, care va părea logică pentru dvs. Eu aderă la o astfel de ierarhie:

| -Mu-plugin-uri | - | load.php | - | - | Selena-Network | - | - | - | - - | - | - | - | - | - | -... | - | - | - | -jetpack | - | - | - | - | - |

În fișierul load.php, toate "pluginurile" necesare sunt conectate la rețeaua noastră:

Încărcați traseele pentru toate Addons Load_Muplugin_textdomain ("Selena_network", "/ Selena-Rețea / Limbi /"); // Înscrierea în rețea necesită wpmu_plugin_dir. "/sena-network/signup/plugin.php"; // un alt plugin // necesită wpmu_plugin_dir ...

În interiorul dosarului de rețea Selena, sunt stocate foldere plug-in, fiecare are propriul plugin.php, pe care îl conectăm la încărcare.php. Oferă flexibilitate și abilitatea de a dezactiva rapid și de a include unele lucruri.

Adresa paginii de înregistrare

Pentru a specifica adresa paginii de înregistrare, utilizați filtrul WP_SIGNUP_LOCACACE. Acesta poate fi găsit în interiorul fișierului WP-Login.php și este cel care este responsabil pentru redirecționarea pe WP-Signup.php.

Cauza "Registru": dacă (is_multisită () () () () () (wp_signup_locație ", rețea_site_url (" wp-signup.php ")); Ieșire;

Adăugați funcția dvs. în Mu-Plugins / Selena-Network / Signup / Plugin.php, care va oferi adresa paginii de înregistrare pe site-ul curent:

Funcție SELENA_NETWORK_SIGNUP_PAGE ($ URL) (return Home_url (). "/ Înscriere /";) add_filter ("wp_signup_locație", "selena_network_signup_page", 99);

selena_Network - Prefix, pe care îl folosesc în numele tuturor funcțiilor din Mu-Plugin-uri de pe site-ul meu pentru a evita conflictele, ar trebui înlocuite cu propriul prefix unic. Prioritatea adăugării filtrului 99, deoarece unele pluginuri, cum ar fi BBPress și Buddypress, pot suprascrie această adresă (Mu-plugin-urile sunt încărcate mai devreme decât pluginurile convenționale, vezi mai sus). Vă rugăm să rețineți că Home_url () este utilizat, în loc de rețea_site_url (), pentru a părăsi vizitatorul în același domeniu. Puteți utiliza orice adresă URL ca o adresă.

Crearea unei pagini

Acum, să creăm o pagină cu site.com/signup/ printr-o interfață obișnuită, iar în șablonul de dosare a fiicei noastre pentru noua noastră pagină - pagina-Signup.php. În loc de cuvântul "Înscriere", puteți utiliza un ID unic.

În interiorul noului șablon, trebuie să apelați funcția SELENA_NETWORK_SIGNUP_MAIN (), care va afișa formularul de înregistrare.

Este demn de remarcat faptul că întregul proces cu șabloane nu este necesar și, în schimb, puteți crea propriul cod scurt, care va apela și funcția SELENA_NETWORK_SIGNUP_MAIN ().

wp-signup.php și wp-activate.php

Acum vom crea o funcție care va afișa formularul de înregistrare. Pentru a face acest lucru, copiați fișierele WP-SIGUP.PHP și WP-Activate.Php de la WordPress Root în MU-Plugings / Selena-Network / Signup / (și nu uitați să le conectați în interiorul Mu-Plugins / Selena-Rețea / Signup / Plugin.php). Mai multe manipulări cu fișiere sunt extrem de dificile și lungi pentru a descrie, așa că veniți să le faceți singur. Voi descrie doar ce trebuie să fie făcut și să publicați fișierele sursă ale proiectului dvs.:

  1. La începutul fișierului, ștergeți toate necesitățile, funcțiile de apel și alte funcții din afara codului.
  2. Redenumiți toate funcțiile adăugând prefixe unice la nume.
  3. Partea de jos a codului WP-Signup.php este înfășurată în funcția Selena_Network_signup_main și la începutul său pentru a scrie Global $ Active_Signup; .
  4. Înlocuiți aspectul pe cont propriu în locurile potrivite.

În interiorul WP-Activate.Php trebuie să faceți același lucru:

  1. Ștergeți toate funcțiile de cod extern, înfășurați aspectul într-o funcție separată.
  2. Schimbați aspectul în locurile în care este necesar.

Fișierul WP-Activate.php este responsabil pentru pagina de activare a contului. Ca și în cazul paginii de înregistrare, trebuie să creați un șablon separat în interiorul care să apelați o funcție din fișierul WP-Activate.php.

Trimitem scrisorile de activare

Pagina de înregistrare trimite o scrisoare vizitatorului cu referire la activarea contului. În mod implicit, aceasta este funcția WPMU_SIGNUP_USER_NOTIFICATION () din fișierul ms-funcții.php. Funcționalitatea sa poate fi împrumutată pentru funcția sa. Motivul pentru care doriți să refuzați să utilizați această funcție - trimite o referință de activare a contului cu WP-Activate.Php. Puteți dezactiva această caracteristică utilizând filtrul WPMU_SIGNUP_USER_NOTIFICATION prin mutarea FALSE pe ea (dacă nu este de făcut, litera de activare va fi trimisă de două ori, bine, de fapt două litere diferite).

Funcția ARMYOFSELENGOMEZ_WPMU_SIGNUP_USER_NOTIFICARE ($ utilizator, $ user_mail, tasta $, $ meta \u003d matrice ()) (/////rows_notification () funcția wp_mail ($ user_email, wp_specialchars_decode ($ subiect), $ message, $ message_headers ); Returnează false;) add_filter ("wpmu_signup_user_otificat", "ARYOFSELEGENGOMEZ_WPMU_SIGNUP_USER_NOTIFICATION", 10, 4);

Ca rezultat, pagina de înregistrare din subiectul Selena a început să arate mult mai curat și atenți.

Concluzie

Internetul are multe alte modalități care nu sunt foarte corecte de a face același lucru - Apache Redirects, forme Ajax care nu vor funcționa fără script-ul Java etc. Nu mi-a plăcut foarte mult, așa că am încercat să o fac cel mai corect site-ul meu propriu.

Am observat că fișierele de editare ar trebui să fie capabile să se îndepărteze de la sursă la Ranknesh, dacă WordPress modifică fișierele WP-Signup.phP și WP-Activate.php, au fost mai ușor să le compare pentru a găsi schimbări .

Nu uitați să vă uitați la codul sursă al tuturor funcțiilor descrise mai sus, pentru a face față pe deplin ceea ce și cum se întâmplă în interiorul codului.

Primă. Protecție împotriva spam-urilor

Chiar și cele mai tinere site-uri de pe WordPress sunt adesea supuse înregistrării spamului. Puteți scrie condiții nesfârșite pentru filtrarea roboților, adesea mai asemănătoare cu încercarea de a crea o inteligență artificială 🙂 în cazul unui multisite, o redirecționare obișnuită în Apache ma ajutat, cu care la deschiderea /wp-signup.php și / WP- ACITVATE.PHP, am cerut să emită 404 (nu sunt un expert în stabilirea Apache, astfel încât regulile mele pot să nu fie foarte corecte).

Rewriteengine pe rewritebase / rewriterule ^ wp-signup \\ .php - rewriterule ^ wp-activate \\ .php - # Începe WordPress # Reguli de la WordPress În mod implicit Nu atingeți :) # ... # sfârșitul WordPress

P. S. Încerc să descriu unele lucruri terțe ca în detaliu cât mai mult posibil, pentru că atunci când am început, uneori a fost cumva să spunem și să explic multe lucruri. De asemenea, cred că sfaturi mici similare pe alte materiale cineva va fi împins în studiul unui lucru nou și extinderea domeniului lor de cunoaștere. Expresiile regulate sunt utilizate în înregistrările Reciterule, ele nu sunt complet complexe, de exemplu, simbolul ^ înseamnă începutul liniei.

Reclame.

LN [-FFHINSV] dosar original. [ tinta_file. ] ln [-FFHINSV] dosar original. ... tinge_catalog. LEGĂTURĂ. source_File Target_file. Program ln Creează o intrare în directorul (link) numită tinta_file.. Pe tinta_file. Aceleași regimuri vor fi instalate pe dosar original.. Referințele vă permit să aveți mai multe copii ale unui fișier sau dintr-un director plasat în locuri diferite, dar fără a ocupa spațiu pe disc. Există două tipuri de link-uri, referințe strânse și legături simbolice. Cum arată punctele de referință dosar original.Depinde de tipul de legătură.

Comanda LN are următoarele opțiuni: -F dacă tinta_file. Există deja, eliminați-l astfel încât să puteți crea un link. Această opțiune anulează opțiunea. -. -F dacă tinta_file. Există deja și este un director, eliminați-l astfel încât să puteți crea un link. Opțiune -F. Utilizate cu opțiunile -F sau -, în cazul în care nici unul dintre ele nu este specificat, se înțelege opțiunea. -F.. Această opțiune nu funcționează fără o opțiune. -S.. -h daca tinta_file. sau tinge_catalog. Este o legătură simbolică, nu o urmați. Această opțiune este utilă în combinație cu opțiunea. -F. Pentru a înlocui referința simbolică, care indică directorul. - Mod interactiv. În cazul în care un tinta_file. Există, utilizatorul va fi o cerere de îndepărtare în caz de consimțământ, ln Elimina tinta_file. Și creați o nouă legătură. Această opțiune anulează opțiunea de acțiune. -F.. -N opțiunea analogică -h., pentru compatibilitatea cu alte implementări ale programului ln. -S creează o legătură simbolică. -V modul de afișare a informațiilor despre progresul programului ln. Programul prestabilit ln Creează o legătură dificilă. Legătura strictă cu fișierul, fără diferite fișierele sursă, iar modificările făcute în dosar nu depind în numele cărora a fost recursul. Referințele grele nu pot fi referințe la directoare, precum și nu pot fi în afara acestui sistem de fișiere. Linkul simbolic conține numele fișierului la care se referă. Când efectuați o operațiune deschis.(2) Pe baza referinței simbolice utilizează fișierul original. Apel stat.(2), realizată pe o referință simbolică, va returna și fișierul sursă. Pentru informații despre linkul pe care îl puteți utiliza lSTAT.(2). Pentru a citi conținutul link-ului simbolic, puteți utiliza apelul readlink.(2). Spre deosebire de referințele dure, simbolice, pot fi pe un alt sistem de fișiere și poate indica directoare. Cu unul sau două argumente, program ln creează o referire la cele existente dosar original.. Numele pentru link va fi luat din argument. tinta_file.. Dacă în argument tinta_file.Directorul nu este specificat pentru a crea o referință, directorul curent va fi utilizat dacă este specificat numai directorul, link-ul la ultimul element de la dosar original.. Cu mai mult de două argumente, program ln Creează link-uri B. tinge_catalog. pe toate căile indicate din dosar original.. Legăturile sunt obținute prin numele fișierelor sursă. Dacă programul ln, cauzate în formă lEGĂTURĂ.Acesta este transmis exact două argumente, argumentele transmise nu pot fi directoare, în plus, în această formă nu acceptă nici o opțiune. Aceasta este o formă simplă de utilizare. Opțiunea de compatibilitate -h., -, -N. și -V.sunt destinate compatibilității cu alte implementări ale programului lnȘi nu este recomandat pentru utilizarea în scripturi. Opțiune -F. este o suplimentare pentru

Vă permite să utilizați o setare WordPress pentru mai multe site-uri în același timp. În același timp, fiecare site primește propriile tabele în baza de date cu un prefix unic.

Tabele cu date ale utilizatorilor înregistrați comune tuturor site-urilor de rețea. Acesta este un anumit plus și înregistrarea într-o zi puteți accesa mai multe site-uri. În plus, pe fiecare site, același cont poate avea drepturi diferite. De exemplu, pe un site, utilizatorul poate fi editorul și pe un alt administrator.

În instalația obișnuită WordPress, pagina de înregistrare, autorizarea și parola resetare afișează fișierul WP-Login.php.

  • wP-LOGIN.PHP - Autorizare
  • wp-login.php? Acțiune \u003d Înregistrare - Înregistrare
  • wP-Login.php? Acțiune \u003d LostPassword - Resetarea parolei

În modul multisite, kernelul WordPress începe să se comporte oarecum diferit și când treceți la linkul WP-Login.php? Action \u003d Registrul va primi o redirecționare pe WP-Signup.php. Aceasta este pagina de înregistrare a rețelei dvs., care este implicită în WordPress.

În plus față de înregistrarea conturilor de utilizator obișnuite, puteți crea un site nou pe acesta dacă superministratorul a permis o astfel de oportunitate în setările de rețea (setări de rețea).

În majoritatea subiectelor, pagina de înregistrare nu arată foarte bine. Multe teme sunt folosite de cadrele CSS, cum ar fi Bootstrap și propriile clase specifice pentru stilizarea diferitelor elemente pe pagini, deci este greu să scrieți un singur HTML care va fi potrivit pentru toată lumea.

Dar nu trebuie să disperați dacă pagina pare dezamăgită. Fișierul WP-Signup.php este un lucru minunat la început, când nu există timp să lucrați fiecare parte a site-ului - vă puteți concentra pe alte pagini și conținut mai importante.

Când sunteți gata să faceți o pagină de înregistrare proprie, WP-Signup.php va fi un eșantion bun și un exemplu, care este ușor de înțeles spectrul de funcții pe care WordPress le oferă pentru procesarea și verificarea datelor introduse de utilizatori și creează conturi noi.

Rețeaua principală de site-uri web

Implicit, WordPress deschide pagina de înregistrare (WP-Signup.php) pe rețeaua principală (site-ul web). Cu toate acestea, puteți crea pagini de înregistrare pentru fiecare site de rețea, chiar dacă au subiecte.

Vom lua în considerare cazul atunci când un subiect este utilizat pe toate site-urile de rețea, dar există o pagină de înregistrare pe fiecare dintre ele. Site-urile diferă în limba (engleză și rusă), astfel încât pagina de înregistrare va fi afișată pe site-ul de limbă "nativ". Dacă site-urile utilizează subiecte diferite, totul va depinde de subiectele care le vor potrivi aceluiași aspect (o situație excelentă care vă poate împinge pentru a unifica toate subiectele sale) sau merită să lucrați în mod individual.

Alternativă la funcții.php.

Comandați în fișiere

Mu-Plugins poate conține orice număr de fișiere și o structură care va părea logică pentru dvs. Eu aderă la o astfel de ierarhie:

| Mu-plugin-uri | | Load.php | | Selena-Network | | | Înscriere | | | | plugin.php | | | ... | | | JetPack | | | | plugin.php.

În fișierul Load.php, traducerile și toate "pluginurile" necesare sunt conectate:

// Încărcarea transferurilor pentru mu-plugin-uri load_muplugin_textdomain ("Selena_network", "/ Selena-Rețea / Limbi /"); // Pagina funcțională pentru înregistrare necesită wpmu_plugin_dir. "/sena-network/signup/plugin.php"; // un alt plugin // necesită wpmu_plugin_dir ...

În interiorul directorului de rețea Selena, dosarele plug-in sunt stocate. Fiecare are propriul său plugin.php, pe care îl conectăm la încărcare.php. Acest lucru oferă flexibilitate și abilitatea de a dezactiva instantaneu și de a include componente individuale pe proiectul de lucru în caz de urgență.

Pagina de înregistrare

După ce am înțeles cu unde și cum vom scrie cod, puteți merge la crearea paginii de înregistrare.

Creați o pagină cu un exemplu.org/signup/ prin interfața obișnuită. Ca o adresă, puteți utiliza orice adresă URL care va părea potrivită pentru proiectul dvs.

Redirecționați la pagina de înregistrare dorită

Pentru WordPress pentru a afla despre noua noastră pagină de înregistrare și a făcut o redirecționare pe aceasta, când faceți clic pe linkul "Înregistrare", se utilizează filtrul WP_SIGNUP_LOCACACE. Acesta poate fi găsit în interiorul WP-Login.php și este cel care este responsabil pentru redirecționarea pe WP-Signup.php implicit.

Cauza "Registru": dacă (is_multisită () () () () (wp_signup_locație ", rețea_site_url (" WP-Signup.php ")); Ieșire; // ...

Cum vă amintiți, în mod implicit, pagina de înregistrare se deschide pe domeniul principal al rețelei. Acesta este motivul pentru care rețeaua_site_url () este folosit aici.

Adăugați manipulator de filtru la mu-plugin-uri / Selena-Network / Signup / Plugin.php, care va primi adresa paginii de înregistrare de pe site-ul curent:

Funcție selena_network_signup_page ($ URL);) add_filter ("wp_signup_locație", "selena_network_signup_page", 99);

selena_Network - Prefix, pe care îl folosesc în numele tuturor funcțiilor din Mu-Plugin-uri de pe site-ul meu pentru a evita conflictele, ar trebui înlocuite cu propriul prefix unic. Prioritatea adăugării filtrului 99, deoarece unele pluginuri, cum ar fi BBPress și Buddypress, pot suprascrie această adresă (Mu-plugin-urile sunt încărcate mai devreme decât pluginurile convenționale, vezi mai sus).

Vă rugăm să rețineți că Home_url () este utilizat, care, spre deosebire de Network_Site_url (), oferă adresa site-ului actual și nu site-ul principal de rețea.

Funcționalitatea WP-Signup.php

Fișierul WP-Signup.php conține un număr mare de funcții și coduri. Pentru a vedea imaginea în ansamblu, puteți utiliza codul de pliere. De regulă, în limba engleză se numește "plierea codului".

La începutul fișierului de la 1 la 80, linia (în versiunea 4.1.1), diverse verificări sunt efectuate și ieșirea paginii "Start" utilizând get_header ().

Apoi, sunt declarate multe metode și înainte de a începe să lucrăm cu ei, merită să înțelegem ce face fiecare funcție. În interior, multe dintre acestea sunt adesea utilizate alte funcții cu prefixul WPMU_, toate sunt declarate în fișierul WP-Include / MS-Function.php. Această secțiune este greu de înțeles fără a vedea singur codul. Sub o mică descriere a funcțiilor de bază în cazul în care aveți dificultăți.

  • wpmu_signup_stylesheet () - ieșirea CSS suplimentară pe pagina de înregistrare.
  • show_blog_form () - Câmpuri pentru înregistrarea site-ului (adresa, vizibilitatea numelui pentru motoarele de căutare).
  • vALIDELATE_BLOG_FORM () - Verificarea adresei și a numelor site-ului introduse utilizând wpmu_validate_blog_signup ().
  • show_user_form () - Câmpuri pentru înregistrarea utilizatorului (login și adresa de e-mail).
  • validate_user_form () - Verificarea conectării introduse și adreselor. Mail cu wpmu_validate_user_signup ().
  • signup_another_blog () - Câmpuri pentru înregistrarea site-urilor noi utilizând show_blog_form () pentru utilizatorii care sunt deja înregistrați pe site.
  • validate_another_blog_signup () - verifică adresa și numele site-ului utilizând validate_blog_form ().
  • signup_user () este funcția principală de ieșire a paginii câmpului de înregistrare.
  • validate_user_signup () - verifică adresa de conectare și adresa de e-mail. Mail cu validate_user_form ().
  • signup_blog () - Câmpuri pentru introducerea adresei, numele și vizibilitatea site-ului (a doua etapă de înregistrare) utilizând show_blog_form ().
  • validate_blog_signup () - verifică adresa de conectare, adresa de e-mail. Mail, adresa și numele site-ului.

În partea de jos a fișierului WP-Signup.php (de la 646 cusături în versiunea 4.1.1), logica principală a paginii de înregistrare, care utilizează metodele de mai sus. Această parte a codului nu este trimisă funcției. La sfârșit, se numește Get_Footer ().

Copiați funcționarea WP-Signup.php

Apoi, procedura de copiere a unui WP-Signup.php în Mu-Plug-in va fi descrisă și va efectua modificări ale furcii. Poate părea că nu este calea cea bună. În schimb, vă puteți scrie funcțiile de la zero pentru a verifica și a ieși din formularele utilizând clase, nu funcții convenționale. În opinia mea, WP-Signup.php are deja logica necesară pentru pagina noastră, rămâne doar pentru a face schimbări minore.

Când actualizați WordPress, WP-Signup.php se modifică din când în când, dar acest lucru nu înseamnă că, cu fiecare versiune, va trebui să-și sincronizeze "forțul". Funcțiile din interiorul WP-Signup.php sunt în esență angajate numai de ieșirea HTML, verificarea datelor, crearea de conturi și site-urile sunt implicate în prefixul WPMU_, declarat în MS-Functions.php.

Vom crea o funcție care va afișa formularul de înregistrare pe pagină. Pentru a face acest lucru, copiați WP-Signup.php de la rădăcina WordPress în Mu-Plugings / Selena-Network / Signup /. Conectați-l în Mu-Pugins / Selena-Network / Signup / Plugin.php).

Necesită wpmu_plugin_dir. "/Selena-network/signup/wp-signup.php";

Ștergeți toate verificările necesare și inutile de la începutul fișierului copiat. În versiunea 4.1.1, acesta este întregul cod de la 1 la 80 de linii.

Acum suntem gata să creăm funcția principală pentru a afișa formularul de înregistrare. Pentru a face acest lucru, toată logica de la linia 646 și la sfârșitul fișierului vom fi transferați la funcția numită selena_network_signup_main. La sfârșit, ștergeți două închideri inutile

(linii 722 și 723), precum și apelul get_footer ().

În nou-creat SELENA_NETWORK_SIGNUP_MAIN () La început, vom declara variabila globală Active_Signup că toate celelalte metode din acest fișier utilizează. Și să adăugați apelul de eveniment înainte de_signup_form, pe care l-am șters de la începutul fișierului.

Funcția SELENA_NETWORK_SIGNUP_MAIN () (Global $ Active_Signup; Do_ACTION ("înainte_signup_form"); // ...)

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

Rezultatul formularului de înregistrare

Există cel puțin două opțiuni aici. Un mod mai convenabil de a crea un cod scurt și de ao pune pe pagină prin editorul obișnuit.

// Creați un scurtcod de rețea_signup add_shortcode ("rețea_signup", "selena_network_signup_main");

A doua opțiune este de a crea o pagină de pagină-Signup.php în folderul tematic fiic. În loc de cuvântul "Înscriere", puteți utiliza un ID unic atribuit paginii. În interiorul șablonului, adăugați aspectul dorit și faceți o selecție Selena_Network_signup_main () în locul potrivit.

Ca rezultat, pagina mea de înregistrare a început să arate mult mai bine și mai curată.

Pagina de activare

În mod prestabilit, WordPress împarte convențional procesul de înregistrare în multisite pentru doi pași - completarea formularului de pe site-ul și activarea contului atunci când mergeți pe linkul trimis într-un e-mail. După ce completați formularul creat în secțiunea anterioară, WordPress trimite o scrisoare cu o mică instrucțiune și referință pentru a activa contul.

Pentru ieșirea paginii de activare, fișierul WP-Activate.php este răspuns amplasat în directorul rădăcină WordPress. WP-Activate.Php poate fi, de asemenea, complet modificat. Procesul este similar cu ceea ce am făcut deja pentru WP-Signup.php.

Creați exemplul.org/activa / pagina prin interfața normală. Ca o adresă, utilizați orice adresă URL care va părea potrivită pentru dvs.

Copiați fișierul WP-Activate.php la mu-plugin-urile dvs. și conectați-l la Mu-Pugins / Selena-Network / Signup / Plugin.php.

Necesită wpmu_plugin_dir. "/Selena-network/signup/wp-activate.php";

În interior, nu atât de multe conținuturi, spre deosebire de WP-Signup.php. Fișierul efectuează o singură operație - activează contul dacă se obține cheia corectă și afișează un mesaj de eroare sau o funcționare reușită.

Ștergeți toate verificările inutile și necesită - de la 1 la 69 linia în WordPress 4.1.1. La sfârșit, scoateți apelul Get_Footer (). Conținutul rămas prin transferarea la funcția Selena_Network_Activate_main ().

Este interesant să observați că constanta WP_instaling a fost anunțată aici înainte de a încărca WordPress (WP-load.php). Prezența sa cauzează WordPress să nu se încarce pluginurile.

Ca și în cazul paginii de înregistrare, rămâne doar pentru a repara aspectul în cazul în care este necesar. De asemenea, puteți modifica textul mesajelor afișate (în acest caz, nu uitați să adăugați un domeniu de text al plugin-urilor MU la toate funcțiile-traducătoare, nu este instalat în altă parte).

Funcția terminată poate fi utilizată pe o pagină predeterminată printr-un scurtcircod sau un șablon separat într-o filială.

Scrisori de activare cu referințe adecvate

Pagina de activare este gata de lucru, dar WordPress nu știe despre ea și va trimite în continuare scrisori de activare cu referire la WP-Activate.php. Spre deosebire de wp-signup.php Nu există filtru, care să permită schimbarea adresei. În schimb, trebuie să scrieți caracteristica dvs. care va trimite litere cu legături corecte.

La momentul umplerii și trimiterea unui formular pe pagina de înregistrare WordPress apeluri wpmu_signup_ utilizator.() sau wpmu_signup_ blog.() În funcție de tipul de înregistrare. Ambele funcții creează o nouă intrare în tabelul WP_SIGNUPS, care îl completează cu conținutul necesar, printre care există o cheie de activare a contului.

După, în funcție de funcție, se numește WPMU_SIGNUP_ utilizator._Notificare () sau wpmu_signup_ blog._Notificare (). Ambele funcții au o funcționalitate similară - generați și trimiteți o scrisoare cu o referință de activare, dar luați argumente diferite. În ambele există filtre pentru "interceptarea" evenimentelor.

Dacă (! Aplicați_filters ("WPMU_SIGNUP_USER_NOTIFICESS", $ Utilizator, $ user_email, key $, $ meta)) returnează false;

Pentru a activa conturi cu crearea blogului:

Dacă (! Aplicați_filters ("WPMU_SIGNUP_BLOG_NOTIFICESTIFICARE", $ Domeniu, $ Cale, $ Titlu, $ Utilizator, $ user_email, key $, $ meta)) (return fals;)

Rămâne doar pentru a scrie manipulatorilor în care trimiteți scrisori prin WP_mail () și, chiar în final, pentru a da fals, astfel încât WordPress nu trimite o scrisoare de activare de două ori - una dintre dvs., o altă scrisoare în mod implicit cu un link către WP-Activate.Php.

Funcție selena_network_wpmu_signup_user_Notification ($ utilizator, $ user_email, tasta $, $ meta \u003d matrice ()) (// generează un antet, text și anteturi de litere ///// Trimiteți o scrisoare sau adăugați o scrisoare de cron pentru a trimite o scrisoare Wp_mail ($ user_email, wp_specialChars_decode ($ subiect), $ message, $ message_headers); // recuperați fals, astfel încât WordPress nu trimite o scrisoare de activare de două ori returnal fals;) add_filter_over_notificat "," selena_network_wpmu_signup_user_notification ", 10, 4) ;

Dacă trimiteți scrisori prin serverul SMTP sau numărul de înregistrări este foarte mare, trebuie să vă gândiți să nu trimiteți imediat scrisori. În schimb, puteți adăuga sarcini cron folosind WordPress Cron.

Închideți accesul la WP-Signup.php și WP-Activate.Php

După ce și-a creat propriile pagini de înregistrare și de activare, poate fi necesar să închideți "originalele". De exemplu, dacă există câmpuri suplimentare pe pagina de înregistrare, care trebuie completă. De asemenea, multe site-uri WordPress sunt expuse la înregistrările de spam.

Rezolvarea a două probleme cu o acțiune poate fi întrebată Apache pentru a da 404 în cazul încercării de a deschide aceste pagini. Pentru a face acest lucru, trebuie doar să înregistrați o pereche de rescriere suplimentară în fișierul de configurare or.htaccess.

Rewritengine pe rewritebase / # Cunoașterea expresiilor regulate nu va fi niciodată superfluă :) rewriterul ^ wp-signup \\ . # WordPress WordPress.

Concluzie

Pentru aceasta și multe alte "probleme" asociate cu WordPress pe Internet există multe soluții. De exemplu, pentru a crea pagini de înregistrare și de activare, unele sunt oferite pentru a rescrie originalul WP-Signup.php și WP-Activate.Php. Acest lucru nu ar trebui făcut deoarece, în cazul actualizării WordPress, veți pierde toate modificările aduse fișierelor și nu puteți verifica integritatea kernelului utilizând.

La dezvoltarea oricărui plus, subiectele sau soluțiile ar trebui să fie cheltuite ceva timp pentru a face față ceea ce se întâmplă în interiorul WordPress. Există multe instrumente utile de depanare pentru acest lucru.

P.S.

Pentru a atribui automat roluri diferite, utilizatorii noi pot utiliza pluginul de gestionare a utilizatorilor multisite.

Dacă aveți întrebări sau dificultăți în timpul creării de pagini de înregistrare și de activare după citirea articolului, lăsați un comentariu și vom răspunde.

27.03.2015 27.03.2015

WordPress Developer. El iubește ordinea în tot și se ocupă de noi instrumente. Inspirat de arhitectura componentelor Symfony.