Menü
Ingyenes
bejegyzés
itthon  /  Telepítés és konfiguráció/ Hogyan hozhat létre saját regisztrációs oldalt a WordPress Multisite-on. Űrlap az elrendezésben

Hogyan hozhat létre saját regisztrációs oldalt a WordPress Multisite szolgáltatásban. Űrlap az elrendezésben

--- Válasszon ki egy raktárt --- Buffalo Grove IL 60089 USA (USA) (Buffalo Grove IL 60089 USA (USA)) Chicago USA USA Tamara (16677 SW Blanton street ALOHA. Oregon 97078) Highland Park (USA, USA Highland Park, IL 60035 PO Box 723 # 24) Isztambul (Isztambul, Gençturk Cad.15, Bırlik Han. K-5.d.55 # 1) Isztambul (Nişantaşı-Valikonağı cd-Şehit İsmet Armağan sk- No 3131R) Villa Madrid 92200 Neuilly-sur-Seine Republica Moldova, Falesti (s.Fagadau) South Kensington (Bute utca) Adler (Quiet Lane 2, Kudepsta District) Aktobe (Aktyubinskaya str. 47/2) Almetyevsk (Almetyevsk, Lenin u.) 13, iroda 306) Anapa (Terskaya u. 88, 3. emelet) Astrakhan (Kommunisticheskaya u. 17, iroda 4) Atyrau (Atyrau, Azattyk u. 42, iroda 206) Berdyansk (Zaporozhye régió) Biskek (Bishkek, 32Bishkek, 32 , Izumrud bevásárlóközpont, C-5 iroda) Blagovescsenszk (50 Let Oktyabrya u. 15. "Amur Fair" iroda 575) Buguruslan (Krasnoznamenaya u. 47/2) Veliky Ustyug (Veliky Ustyug, Krasnaya u., 61 (2. emelet) városközpont) Vlagyivosztok (Svetlanskaya u. 147 iroda 2/4) B Olgograd (Volgograd városa, Aviatorov autópálya 15, raktár 23) Dyurtyuli (Agidel u. 4 negyed 2) Yeisk (Karla-Marx u. 42/1) Jekatyerinburg (st. Pervomayskaya 56, iroda 308) Jekatyerinburg (Mamina-Sibiryaka u. 10, iroda 3) Ivanovo (Sheremetyevsky prospect, 85G, Business Center "Premium Plaza" 2. emelet, iroda 212) Izhevsk (Lenina 21, iroda 304 Fórum ) Izberbash (Chapaeva 4 ind. 368501) Irkutszk (Irkutszk, Gornaya utca 4 (a Karamel bevásárlóközpont mellett) iroda 407) Ishimbay (Zorge, 18-as ház) Yoshkar-Ola (Lenin Ave. 24v, iroda 311, Kazan) Odinoprovka Grivki sáv, Kozya Sloboda metróállomás, valamint Dekabristov utca 85 "B" Üzleti központ "Relita" iroda 411) Kamensk-Uralsky (Prospect Pobedy 56) Kemerovo (Demyan Bednogo u., 1 iroda 401) Kijev (Olevskaya str.) 9. 4. lakás (előzetes hívással érkezzen) Komsomolsk-on-Amur (Shikhanova u. 10., 1. iroda bejárata Komsomolskaya felől az épület végéből.) Kostroma (Prospect Mira 51, iroda 15) Krasznodar (St. Krasnaya 124 iroda) 302) Krasznojarszk (Krasnojarszkij Rabocsi sugárút, 120. bevásárlóközpont "Krasnojarje") Lviv (Szobornaja tér 12A) Mahacskala (Akushskiy 9v) Miass (Let VLKSM utca 85. 30.) Minszk (Korzsenevszko, 26: VDJ Moszkva (Metroszlavszko, 26.): Moszkva. , 10, 4. épület 10. iroda 6) Moszkva (Simferopolsky Boulevard) Moszkva (Glazovsky Lane 5, bejárat a boltívhez, ajtó a metrómegállótól balra: Szmolenszkaja-500m, Kropotkinskaya-1km., Park Kultury-1km.) Moszkva (m. Csehovszkaja, Puskinszkaja, Tverszkaja. Strastnoy körút, 6, 1. épület, Delovoy Tsentr, iroda 421) Moszkva (Lobnya, Majakovszko u., 4A, TP1, 3. emelet, 301 iroda) Moszkva (Molodezhnaya metróállomás, Yartsevskaya utca, 27. épület, 9. épület Ozdorovitelny Center "Négy" Elemek") Moszkva (Krasnaya Presnya 38-45) Moszkva (g. Moszkva metró Taganskaya radiális kijárat 3, 30 méterre a metrótól. Utca. Bolshie Kamenshiki 1, 4. emelet, 30. iroda) Moszkva (metró Leninsky prospekt, Vavilova 9A, 6. épület, 10 B iroda, 3. emelet) Moszkva (metró Novoslobodskaya, Mendeleevskaya, Majakovskaya, Belorusskaya (radiális). 4. Tverskaya utca -Jamskaja 24. . Bejárat a boltíven keresztül, ZOOMAGAZIN) Moszkva (Belorusskaya metró (gyűrű), 5 méterre a metró kijáratától. Tverszkaja Zastava tér, 3, 3. emelet, 321. iroda. A Belorusszkij pályaudvar közelében. ) Moszkva (M. ALTUFEVO, Pskovskaya st. 6) Moszkva (Moszkva, Radio u. 5, épület 4.2 emelet, 201 iroda (különálló 3 szintes épület)) Naberezhnye Chelny (Puskin u. 4 (45/05) , bejárat 2, iroda 2) Naberezhnye Chelny (Sh) .Usmanov u., 122 kb. 111 1. emelet) Nalchik (Nalchik, Kirov u. 292a, 2. emelet, iroda 6) Nakhodka (Pogranichnaya u. 6, iroda 304) Nevinnomyssk (Tér 50 éves, Nefteyu 8A. október 2.) mikrokerületi épület 7) Nyizsnyevartovszk (Nizsnyivartovszk, Mira utca 31B.) Nyizsnyij Novgorod (Kominterna utca 139, iroda 603 (Oreol üzleti központ)) Nyizsnyij Novgorod (M. Gorkovskaya, utca Kostina, 3, BC "Új iroda", 2. emelet 239) Nyizsnyij Tagil (közel L. Krasnoarmeyskaya 42a, 3. emelet iroda 4) Nyizsnyij Tagil (Nizsnyij Tagil, st. Papanina 5, iroda 1, Kushva, Gornyakova u. 2/11) Nikolaev (Ryumin u. 5/1) Novorossiysk (Krasnodar régió, Novorossiysk, Cemdolina falu, Zolotaya Rybka st., 15) Novorossiysk (Murat Akhedzhak). 4) Novoszibirszk (Str., 42 Oktyabrskaya, iroda 601, Üzleti központ, előzetesen Lenin tér, Majakovszkij mozi) Novoszibirszk (Gogol utca 33/1. 20 méterre a Marshal Pokryshkina metróállomástól, a Gogolya bevásárlóközponttól.) Novotroitsk (Szovetszkaja st.) ., D .144, 26. lakás) Novy Urengoy (Druzsba mikrokörzet, 4/3, 183. lakás) Norilsk (Leninsky prospect, 47a, 79. iroda) Nur-Sultan (Asztana) (Beibitshilik 14, BC Marden, Odessa iroda (708) b -p francia 60 többprofilos rehabilitációs szanatórium "SARTUS") Oktyabrsky (32a. mikrokerület, 6. épület, 88. lakás) Omszk (St. első emelet, jobb veranda) Orszk (Lenin u. 93.) Pavlodar (Satpayev u. 71.) iroda 107) Perm (Szovetszkaja d.52 iroda 1) Perm (Druzsbi u., épület 34 iroda 305) Pyt-Yakh (5. mikrokerület, 5. épület) Pjatigorszk (utca 295 lövészhadosztály) és 13., 2. épület) Rostov-on-Don (Sobornyi Lane 21. iroda 10 B) Salavat (Lenin u., 3. épület, 209. iroda, 2. emelet) Samara (Novo-Sadovaya u. 106., 804. iroda, bal lift, 8. emelet ) Szentpétervár (metró: Vasileostrovskaya, Vasziljevszkij-sziget 13. vonala, 78, iroda 182) Szentpétervár (metró Dosztojevszkaja (5 méter) és metró Vlagyimirszkaja (300 méter) VLADIMIRSKIJ PASSAGE 3. emelet, központi bejárat ELSŐ GALÉRIA, pr. Vladimirsky 19) Szentpétervár (metró Admiralteyskaya (10 méter) metró Nyevszkij prospektus (7 perc séta). TC "ADMIRAL" Malaya Morskaya utca, 4/1) Szentpétervár (metró Szennaja, metró Sadovaya, m Spasskaya 1 perc gyalog , Efimova u. 1, 2. emelet, 4. iroda, "Sennaya 4" üzleti központ, a "Sever" kávézó bal oldali bejárata) Szaratov (Bolshaya Gornaya u., 359V, 3. iroda) Szevasztopol (Ochakovtsev u. 19.) , "Plaza" központ, földszint, iroda 29/2) Snezhinsk (st. Zababakhina 19 a) Szocsi (Szocsi ko. Donskaya ház 15.) Szocsi (st. Szovetskaya 42 iroda 204) Sztavropol (szt. Lomonoszov 21 iroda 18) Sterlitamak (Khudayberdin utca 85., 3. emelet) Szurgut (30 éves Pobedy utca, 64) Tobolszk (Tobolszk, 6 mikrokörzet, 11, 39. iroda (bejárat a Komszomolszkij sugárból)) Toljatti (40 éves Pobedy, 50, TD 212a iroda) Raduga 1. emelet) Tomszk (Tomsk, Szovetskaya u. 84) Tuymazy (Michurina u. 15 iroda 2) Tyumen (Herzen u. 72, iroda 214) Uljanovszk (Ryabikova u., D 73) Uszt-Kamenogorsk u. 57 Gorkyorsk ., Office 213) Ufa (Verhnetorgova tér, 6 (NESTEROV Üzleti központ)) Habarovszk (Postysheva u., 16 ofi s 108) Hanti-Manszijszk (G. Hanti-Manszijszk, st. Karl Marx 15., 2. emelet) Cseljabinszk (Prospect Pobedy 168, 3. emelet, iroda 36.) Cserkeszk (Lenin u. 101) Chita (Babushkina u. 104, iroda 425) Chishmy (Kolcevaya 17) Chishmy (Druzhby 1 aBve) Svájc (Arosio via Terra Sotto, 1 6939) Shymkent (Kolkhoznaya u. 47.) Juzsno-Szahalinszk (Angarszkij u. 21.) Jakutszk (Dzerzsinszkij u. 8/3b) Jakutszk (Jakutszk) Jalta (Lenin töltés, 45. sz. emelet) Yanaul (Szovetszkaja u. 23. iroda N 8, Beryozka épület) Yaroslavl (57 ShowRum) Yaroslavl (Chkalova u. 2) Birszk Baskíria ()?>

APOTHEÓZIS APOTEÓZIS (a görög apotheosis - istenítés szóból), 1) a hellenisztikus Görögországban és az ókori Rómában egy államférfi, hős, császár istenülése, az isteni lényeg megszerzése. A reneszánsz idején a jelenség neve átkerült képére a festészetben, színházban. Modern értelemben az apoteózis egy hős dicsőítésének jelenete, egy látványos "élőkép", amely plasztikusan fejezi ki a zenei vagy drámai előadást lezáró látvány fő gondolatát. Az apoteózis formáját (valamint a panegirikus előadást, amely mintegy időben kibontakozott apoteózis volt) a nyugat-európai színházak és a 16-18. századi orosz udvari színházak alakították ki; a forradalmi korok színházában is kialakult - Franciaországban a 18. század végén, Oroszországban az októberi forradalom után. 2) Tág értelemben - egy személy, esemény, jelenség dicsőítése, felmagasztalása.

Modern enciklopédia. 2000 .

Szinonimák:

Nézze meg, mi az "APOPHEOSIS" más szótárakban:

    - (görögül apotheum isteníteni). 1) a hősök és római császárok számonkérése az istenek seregével. 2) egy festmény, amely egy híres személyt pogány isten alakjában ábrázol. 3) egy ünnepélyes kép, amely befejezi a színházat, a darabot. Idegen szavak szótára, ... ... Orosz nyelv idegen szavak szótára

    cm… Szinonima szótár

    apoteózis- a m. apothéose f. 1. Felolvasás az istenek seregének. Sl. 18. Herkules apoteózisa szerint. Pelsk. Kum 2 196. A terem fő szépsége a plafon, amelyet Lemoine festőművész olajfestményeivel festett a vászonra, és amely a herkulesi bálványozást képviseli ... ... Az orosz gallicizmusok történelmi szótára

    Apoteózis- (a görög apotheosis istenítésből), 1) a hellenisztikus Görögországban és az ókori Rómában egy államférfi, hős, császár istenülése, isteni lényeg megszerzése. A reneszánsz idején a jelenség nevét átvitték képébe ... Illusztrált enciklopédikus szótár

    - (a görög apotheosis - istenítés szóból), kezdetben az ókori egyiptomiaknál, majd a görögöknél és a rómaiaknál az uralkodók istenítésének ünnepélyes rítusa különleges érdemeikért. Az apoteózis, amely idővel az uralkodók kultuszává változott, visszanyúlt ... ... Filozófiai Enciklopédia

    - (a görög. apotheosis istenítésből). Nagy enciklopédikus szótár

    APOTÉZIS, apoteózis, férj. (görög apoteózis-istenítés). 1. A hősnek, a császárnak (ist.) isteni tiszteletadás ősi rítusa. 2. Valakinek különösen ünnepélyes nyilvános dicsérete, amely tevékenységét megkoronázza (könyv) ... Ushakov magyarázó szótára

    APOFEÓZIS, ó, férjem. 1. Valaki dicsőítése, felmagasztalása, amit n. (könyv). 2. Néhány színházi előadás ünnepélyes záró misejelenete (különleges). | adj. apoteózis, oh, oh. Ozsegov magyarázó szótára. S.I. Ozhegov, N. Yu. Shvedova. 1949 ...... Ozsegov magyarázó szótára

    - (a görög apotheosis istenítésből) az ókorban az ókori görög államférfiak, későbbi római császárok istenítésének szertartása. A színházi szakmában az apoteózist az előadás utolsó ünnepélyes miseszínpadának vagy ... ... Politológia. Szótár.

    Jean Auguste Dominique Ingres. Napóleon apoteózisa, 1853 Apotheosis, elavult. apoteózis ... Wikipédia

Könyvek

  • Az alaptalanság apoteózisa
  • Az alaptalanság apoteózisa, Shestov Lev. Az alaptalanság apoteózisa Lev Shestov könyvei közül talán a leghíresebb, és legalábbis a legbotrányosabb. Ebben frontális támadást intéz az általánosan kötelező tudás ellen és ...

cm… Szinonima szótár

BAINKI, változatlan. ch. (gyerekes). Alvás. Kérsz ​​egy baint? Feküdj bainki. Ushakov magyarázó szótára. D.N. Ushakov. 1935 1940... Ushakov magyarázó szótára

Készítsen / készítsen bainkit (buy bye). Zharg. móló Űrsikló. Alvás. Maximov, 21 éves... Egy nagy szótár orosz mondások

állítom. köznyelvi Az alvás állapotáról (gyermekek beszédében vagy felnőttek és gyermekek közötti beszélgetésben). II int. köznyelvi Altatódal részeként használják. Efremova magyarázó szótára. T. F. Efremova. 2000... Az orosz nyelv modern magyarázó szótára, Efremova

baji- b ainki, összetéveszthetetlen... Orosz helyesírási szótár

baji- változatlan ... Orosz nyelv helyesírási szótár

Int., In func. mese. = Bai bye (II jel.) ... enciklopédikus szótár

baji- nemzetközi; in func. mese. = vásárlás 2) ... Sok kifejezés szótára

baji- ba / tinta / i, között ... Morfémikus helyesírási szótár

Könyvek

  • Bainki, Tokmakova I.P .. Ebben a könyvben altatódalokat olvashat, vagy akár énekelhet is babájának. Foglaljon vágással...
  • Bainki (szerk. 2006), Irina Tokmakova. Ebben a könyvben altatódalokat olvashatsz vagy akár énekelhetsz babádnak. Foglaljon vágással. ISBN: 5-9524-2404-X ...

Lehetővé teszi egy WordPress-telepítés használatát több webhelyhez egyidejűleg. Ugyanakkor minden oldal megkapja a saját tábláit az adatbázisban egyedi előtaggal.

A regisztrált felhasználók adatait tartalmazó táblázatok a hálózat összes webhelyén közösek. Ez határozott plusz, és egyszeri regisztrációval több oldalhoz is hozzáférhet. Ezenkívül az egyes webhelyeken ugyanaz a fiók eltérő jogosultsággal rendelkezhet. Például az egyik oldalon a felhasználó lehet szerkesztő, a másikon pedig rendszergazda.

Tipikus telepítésben WordPress oldal regisztráció, engedélyezés és jelszó-visszaállítás a wp-login.php fájlt adja ki.

  • wp-login.php - engedélyezés
  • wp-login.php? action = regisztráció - regisztráció
  • wp-login.php? action = elveszett jelszó - jelszó visszaállítása

Multisite módban a WordPress mag egy kicsit másképp kezd viselkedni, és ha rákattint a wp-login.php?Action = register linkre, átirányítás történik a wp-signup.php oldalra. Ez az Ön hálózatának regisztrációs oldala, amelyet a WordPress alapértelmezés szerint rendelkezik.

A normál felhasználói fiókok regisztrációja mellett új weboldalt is létrehozhat rajta, ha a kiemelt rendszergazda engedélyezte ezt a funkciót a hálózati beállításokban (Hálózati adminisztráció → Beállítások → Hálózati beállítások).

A legtöbb témában a regisztrációs oldal nem néz ki túl jól. Sok skin használ CSS-keretrendszereket, például a Bootstrap-et és saját specifikus osztályait az oldalak különböző elemeinek stílusához, ezért nehéz egyetlen HTML-kódot írni, amely mindenki számára működik.

De ne essen kétségbe, ha az oldal rendezetlennek tűnik. A wp-signup.php fájl eleinte nagyszerű, amikor nincs időd az oldal minden részletét végigdolgozni – koncentrálhatsz más fontosabb oldalakra és tartalmakra.

Ha készen áll a saját regisztrációs oldal létrehozására, a wp-signup.php jó példa és példa lesz, amely segít megérteni a WordPress által a felhasználói bevitelek kezeléséhez és ellenőrzéséhez, valamint új fiókok létrehozásához nyújtott funkciókat.

A hálózat fő oldala

Alapértelmezés szerint a WordPress megnyit egy regisztrációs oldalt (wp-signup.php) a hálózat fő domainjén (webhelyén). Azonban a hálózat minden webhelyéhez létrehozhat regisztrációs oldalakat, még akkor is, ha van témájuk.

Megvizsgáljuk azt az esetet, amikor a hálózat összes webhelye ugyanazt a témát használja, de mindegyik rendelkezik regisztrációs oldallal. Az oldalak nyelve különbözik (angol és orosz), így a regisztrációs oldal az oldal „anyanyelvén” jelenik meg. Ha az oldalak különböző témákat használnak, akkor minden attól függ, hogy milyen témákról van szó, hogy megfelel-e nekik az azonos elrendezés (kiváló helyzet, ami arra késztet, hogy minden témát egységesítsen), vagy érdemes-e egyenként kidolgozni az oldalakat.

A functions.php alternatívája

Fájlsorrend

Az MU bővítmények tetszőleges számú fájlt és struktúrát tartalmazhatnak, amely logikusnak tűnik. Valami ehhez hasonló hierarchiához ragaszkodom:

| mu-plugins | | load.php | | selena-network | | | regisztráció | | | | plugin.php | | | ... | | | jetpack | | | | plugin.php

A load.php fájl tartalmazza a fordításokat és az összes szükséges "plugint":

// Fordítások betöltése MU-bővítményekhez load_muplugin_textdomain ("selena_network", "/ selena-network / languages ​​​​/"); // A regisztrációs oldal működéséhez WPMU_PLUGIN_DIR szükséges. "/selena-network/signup/plugin.php"; // Egy másik bővítmény // WPMU_PLUGIN_DIR szükséges ...

A selena-network könyvtárban találhatók a plugin mappái. Mindegyiknek megvan a saját plugin.php-je, amelyet a load.php-be is belefoglalunk. Ez rugalmasságot és lehetőséget biztosít az egyes alkatrészek azonnali letiltására és engedélyezésére egy működő projektben vészhelyzet esetén.

Regisztrációs oldal

Miután kitaláltuk, hol és hogyan írjuk meg a kódot, folytathatjuk a regisztrációs oldal létrehozását.

Hozzunk létre egy oldalt example.org/signup/ címmel egy normál felületen. Címként bármilyen URL-t használhat, amely megfelelőnek tűnik a projekthez.

Átirányítás a szükséges regisztrációs oldalra

Annak érdekében, hogy a WordPress értesüljön új regisztrációs oldalunkról és átirányítson rá, a "Regisztráció" linkre kattintva a wp_signup_location szűrőt használjuk. A wp-login.php fájlban található, és alapértelmezés szerint felelős a wp-signup.php oldalra történő átirányításért.

Case "register": if (is_multisite ()) (wp_redirect (apply_filters ("wp_signup_location", network_site_url ("wp-signup.php"))); kilépés; // ...

Mint emlékszik, alapértelmezés szerint a regisztrációs oldal a hálózat fő tartományában nyílik meg. Ezért van itt a network_site_url () használatos.

Adjuk hozzá a kezelőnket a mu-plugins / selena-network / signup / plugin.php szűrőhöz, amely az aktuális webhely regisztrációs oldalának címét adja vissza:

Függvény selena_network_signup_page ($ url) (return home_url ("regisztráció");) add_filter ("wp_signup_location", "selena_network_signup_page", 99);

A selena_network az az előtag, amelyet az ütközések elkerülése érdekében a webhelyemen lévő MU-bővítményeken belüli összes függvény nevében használok. Ezt a saját egyedi előtagomra kell cserélni. A szűrő prioritása 99, mert egyes bővítmények, például a bbPress és a BuddyPress felülírhatják ezt az URL-t a sajátjukkal (az MU beépülő modulok korábban töltődnek be, mint a normál beépülő modulok, lásd fent).

Vegye figyelembe, hogy a home_url () használatos, amely a network_site_url ()-től eltérően az aktuális webhely címét adja vissza, nem a hálózat fő webhelyét.

Funkcionalitás wp-signup.php

A wp-signup.php fájl sok funkciót és kódot tartalmaz. A teljes kép megtekintéséhez használhatja a kódhajtogatást. Ezt általában "kódhajtogatásnak" hívják angolul.

A fájl legelején 1-80 sor (a 4.1.1-es verzióban) készül különféle ellenőrzésekés az oldal "kezdetének" megjelenítése a get_header () segítségével.

Ezután számos módszert deklarálunk, és mielőtt elkezdenénk velük dolgozni, érdemes megérteni, hogy az egyes függvények mit csinálnak. Sokan gyakran használnak más függvényeket a wpmu_ előtaggal, amelyek mindegyike a wp-includes / ms-functions.php fájlban van deklarálva. Ezt a részt nehéz megérteni anélkül, hogy maga látná a kódot. Az alábbiakban röviden ismertetjük a fő funkciókat arra az esetre, ha nehézségekbe ütközne.

  • wpmu_signup_stylesheet () – További CSS-t ad ki a regisztrációs oldalon.
  • show_blog_form () - mezők a webhely regisztrációjához (cím, név, láthatóság a keresőmotorok számára).
  • validate_blog_form () - érvényesítse a megadott webhely címét és nevét a wpmu_validate_blog_signup () segítségével.
  • show_user_form () - mezők a felhasználói regisztrációhoz (bejelentkezés és e-mail cím).
  • validate_user_form () - a megadott bejelentkezési név és e-mail cím érvényesítése. küldje el a wpmu_validate_user_signup () használatával.
  • signup_another_blog () - mezők új webhelyek regisztrálásához a show_blog_form () használatával azon felhasználók számára, akik már regisztráltak az oldalon.
  • validate_another_blog_signup () – érvényesíti a webhely URL-címét és címét a validate_blog_form () segítségével.
  • signup_user () a regisztrációs oldal mezőinek megjelenítésének fő funkciója.
  • validate_user_signup () - érvényesíti a felhasználónevet és az e-mail címet. levelet a validate_user_form () használatával.
  • signup_blog () - mezők az oldal címének, nevének és láthatóságának megadásához (a regisztráció második lépése) a show_blog_form () segítségével.
  • validate_blog_signup () - ellenőrzi a bejelentkezést, az e-mail címet. mail, cím és webhely neve.

A wp-signup.php fájl legalján (a 4.1.1-es verzió 646-os sorától) a regisztrációs oldal fő logikája, amely az összes fent leírt módszert használja. A kód ezen része nem kerül át egy függvénybe. A végén a get_footer () meghívásra kerül.

Másolja a wp-signup.php funkcióit

Ezután leírjuk a wp-signup.php MU bővítményekbe másolásának és a "fork" módosításának az eljárását. Talán ez nem tűnik a legjobbnak a helyes út... Ehelyett megírhatja saját űrlapérvényesítését, és a nulláról megjelenítheti a függvényeket osztályok használatával, nem pedig normál függvényekkel. Véleményem szerint a wp-signup.php már minden szükséges logikával rendelkezik oldalunkhoz, már csak apró változtatások vannak hátra.

Amikor frissíted a WordPress-t, a wp-signup.php időről időre változik, de ez nem jelenti azt, hogy minden kiadásnál szinkronizálnod kell a villát. A wp-signup.php-n belüli függvények lényegében csak a HTML-kimenettel foglalkoznak, az adatok ellenőrzésére, fiókok és oldalak létrehozására, az ms-functions.php-ben deklarált wpmu_ előtagú metódusokra.

Kezdjük el egy függvény létrehozását, amely megjeleníti a regisztrációs űrlapot az oldalon. Ehhez másolja a wp-signup.php fájlt a WordPress gyökérkönyvtárából a mu-plugings / selena-network / signup / mappába. Csatlakoztassuk a mu-plugins / selena-network / signup / plugin.php-n belül.

WPMU_PLUGIN_DIR szükséges. "/selena-network/signup/wp-signup.php";

Távolítsa el az összes szükséges és szükségtelen ellenőrzést a másolt fájl legelejétől. A 4.1.1-es verzióban ez a kód 1-től 80 sorig terjed.

Készen állunk a fő funkció létrehozására a regisztrációs űrlap megjelenítéséhez. Ehhez helyezze át az összes logikát a 646-os sorból a fájl legvégére a selena_network_signup_main nevű függvénybe. A legvégén távolítsa el a két extra záróelemet

(722-es és 723-as sor), valamint a get_footer () hívása.

Az újonnan létrehozott selena_network_signup_main () legelején deklaráljuk az active_signup globális változót, amelyet az összes többi metódus használ ebből a fájlból. És adjunk hozzá egy hívást a before_signup_form eseményhez, amelyet a fájl legelejétől távolítottunk el.

Függvény selena_network_signup_main () (globális $ active_signup; do_action ("before_signup_form"); // ...)

Most már csak az elrendezést kell megváltoztatni minden olyan helyen, ahol szükséges, és a regisztrációs oldal készen áll.

A regisztrációs űrlap kimenete

Itt legalább két lehetőség van. Több kényelmes módja- hozzon létre egy rövid kódot, és helyezze el az oldalra egy normál szerkesztő segítségével.

// Hozzon létre egy rövid kódot network_signup add_shortcode ("network_signup", "selena_network_signup_main");

A második lehetőség egy page-signup.php oldalsablon létrehozása a gyermektéma mappában. A „regisztráció” szó helyett használhat egy, az oldalhoz rendelt egyedi azonosítót. A sablonon belül adja hozzá a szükséges elrendezést, és hívja meg a selena_network_signup_main () parancsot a megfelelő helyen.

Ennek eredményeként a regisztrációs oldalam sokkal jobban és tisztábbnak tűnik.

Aktiválási oldal

Által alapértelmezett WordPress hagyományosan két lépésre osztja a regisztrációs folyamatot a Multisite-on - egy űrlap kitöltése az oldalon és a fiók aktiválása, amikor a címre küldött linkre kattint. email... Miután kitöltötte az előző részben létrehozott űrlapot, a WordPress e-mailt küld egy kis utasítással és egy linkkel a fiók aktiválásához.

A WordPress gyökérkönyvtárában található wp-activate.php fájl felelős az aktiválási oldal megjelenítéséért. A wp-activate.php is teljesen megváltoztatható. A folyamat hasonló ahhoz, amit a wp-signup.php esetében már megtettünk.

Hozzunk létre egy example.org/activate/ oldalt egy szokásos felületen keresztül. Használjon olyan URL-t, amelyet megfelelőnek talál a címhez.

Másoljuk át a wp-activate.php fájlt a MU bővítményeinkre, és csatlakoztassuk a mu-plugins / selena-network / signup / plugin.php fájlhoz.

WPMU_PLUGIN_DIR szükséges. "/selena-network/signup/wp-activate.php";

A wp-signup.php-vel ellentétben nem sok tartalom van benne. A fájl hajtja végre az egyetlen műveletet - aktiválja a fiókot, ha a megfelelő kulcs érkezik, és hibaüzenetet vagy a művelet sikeres befejezését jeleníti meg.

Távolítsunk el minden felesleges ellenőrzést és követelményt – 1-től 69 sorig a WordPress 4.1.1-ben. A legvégén távolítsuk el a get_footer () hívást. Helyezze át a tartalom többi részét a selena_network_activate_main () függvénybe.

Érdekes megjegyezni, hogy a WP_INSTALLING állandót itt deklarálták a WordPress betöltése előtt (wp-load.php). Jelenléte miatt a WordPress nem tölt be bővítményeket.

A regisztrációs oldalhoz hasonlóan itt is csak az elrendezést kell javítani, ahol szükséges. A megjelenített üzenetek szövegét is módosíthatja (ebben az esetben ne felejtse el hozzáadni a MU-bővítmények szövegtartományát az összes fordítói funkcióhoz, alapértelmezés szerint nincs telepítve sehova).

A kész funkció egy előre elkészített oldalon rövid kódon keresztül, vagy egy gyerektémában külön sablonon keresztül használható.

Aktiváló e-mailek megfelelő hivatkozásokkal

Az aktiváló oldal készen áll, de a WordPress nem tud róla, és továbbra is küld aktiválási e-maileket a wp-activate.php hivatkozással. A wp-signup.php-vel ellentétben nincs szűrő a cím megváltoztatására. Ehelyett meg kell írnia egy saját funkcióját, amely e-maileket küld a megfelelő hivatkozásokkal.

Az oldalon található űrlap kitöltésekor és beküldésekor WordPress regisztráció hívások wpmu_signup_ felhasználó() vagy wpmu_signup_ blog() a regisztráció típusától függően. Mindkét funkció létrehozza új bejegyzés a wp_signups táblában, kitöltve azt a szükséges tartalommal, amelyek között van egy fiók aktiváló kulcs.

Ezután a függvénytől függően a wpmu_signup_ meghívódik felhasználó _notification () vagy wpmu_signup_ blog _értesítés (). Mindkét funkció hasonló funkciókkal rendelkezik – aktiváló linket tartalmazó e-mailt generál és küld, de eltérő argumentumokat fogad el. Mindkettő rendelkezik szűrővel az esemény "elfogásához".

If (! Apply_filters ("wpmu_signup_user_notification", $ user, $ user_email, $ key, $ meta)) hamis értéket ad vissza;

Fiókok aktiválása blog létrehozásával:

If (! Apply_filters ("wpmu_signup_blog_notification", $ domain, $ elérési út, $ cím, $ felhasználó, $ felhasználói_e-mail, $ kulcs, $ meta)) (vissza hamis;)

Nincs más hátra, mint megírni a saját kezelőket, amelyeken belül wp_mail ()-en keresztül küldenek e-maileket, és a legvégén mindenképpen false-t adj meg, hogy a WordPress ne küldjön kétszer aktiváló e-mailt - az egyik a tiéd, a másik az alapértelmezett e-mailben a wp-activate.php linkjével.

Függvény selena_network_wpmu_signup_user_notification ($ user, $ user_email, $ key, $ meta = array ()) (// Az e-mail fejlécének, szövegének és fejléceinek előállítása // ... // Küldje el az e-mailt vagy adjon hozzá egy Cron feladatot a email wp_mail ($ user_email , wp_specialchars_decode ($ tárgy), $ üzenet, $ message_headers); // Hamis küldés, hogy a WordPress ne küldje el kétszer az aktiváló e-mailt return false;) add_filter ("wpmu_signup_user_notification", "selena_network_wpmu_signup",_user0,notification) ;

Ha SMTP-kiszolgálón keresztül küld e-maileket, vagy nagyon magas a regisztrációk száma, érdemes megfontolni, hogy ne küldjön azonnali e-mailt. Ehelyett a WordPress Cron segítségével hozzáadhat Cron-feladatokat.

A wp-signup.php és a wp-activate.php hozzáférésének lezárása

A saját regisztrációs és aktiválási oldalak létrehozása után előfordulhat, hogy be kell zárnia az "eredetiket". Például, ha a regisztrációs oldalon vannak további mezők, amelyeket ki kell tölteni. Ezenkívül sok WordPress-webhelyre vonatkozik a spam-regisztráció.

Két probléma egy lépésben történő megoldásához megkérheti az Apache-t, hogy adja vissza a 404-et, ha megpróbálja megnyitni ezeket az oldalakat. Ehhez csak regisztrálnia kell néhány további RewriteRule-t a konfigurációs fájlban vagy a .htaccess fájlban.

RewriteEngine on RewriteBase / # A reguláris kifejezések ismerete soha nem lesz felesleges :) RewriteRule ^ wp-signup \ .php - RewriteRule ^ wp-activate \ .php - # WordPress KEZDÉS # Ne érintse meg az alapértelmezett WordPress szabályokat :) # ... # WordPress VÉGE

Következtetés

Erre és sok más, a WordPress-szel kapcsolatos „problémára” számos megoldás létezik az interneten. Például regisztrációs és aktiválási oldalak létrehozásához egyesek javasolják az eredeti wp-signup.php és wp-activate.php átírását. Ezt nem érdemes megtenni, mert ha frissíted a WordPress-t, akkor a fájlokon végrehajtott összes módosítás elveszik, és a core integritását sem tudod majd ellenőrizni vele.

Ha bármilyen kiegészítőt, témát vagy megoldást fejleszt, szánjon egy kis időt, hogy rájöjjön, mi történik a WordPress belsejében. Ehhez számos hasznos hibakereső eszköz létezik.

P.S.

Ha automatikusan szeretne különböző szerepeket hozzárendelni az új felhasználókhoz, használhatja a Multisite User Management beépülő modult.

Ha bármilyen kérdése vagy nehézsége van a regisztrációs és aktiválási oldalak létrehozása során a cikk elolvasása után, írjon megjegyzést, és biztosan válaszolunk.

27.03.2015 27.03.2015

WordPress fejlesztő. Mindenben szereti a rendet és megérti az új eszközöket. A Symfony komponens architektúra ihlette.

  • A szabványos wp-signup.php helyett saját regisztrációs oldalt hozunk létre a multisite számára.

    Egy tipikus WordPress telepítésnél a regisztrációs (bejelentkezés, jelszó-visszaállítás) oldalon a wp-login.php fájl jelenik meg.

    • /wp-login.php - engedélyezés
    • /wp-login.php?action=register - regisztráció
    • /wp-login.php?action=lostpassword - jelszó visszaállítása

    A wp-login.php fájlban külön feltételek vonatkoznak a multisite-re. Tehát, ha a /wp-login.php?action=register hivatkozásra kattint egy több webhelyen, a WordPress átirányít a /wp-signup.php oldalra. Sok témában az oldal nem tűnik túl vonzónak, ezért elkészítjük a sajátunkat.

    A hálózat fő oldala

    Alapértelmezés szerint a WordPress megnyit egy regisztrációs oldalt (wp-signup.php) a hálózat fő domainjén (webhelyén). Azonban valaki megteheti külön oldal regisztrációkat a hálózat minden egyes webhelyére, még akkor is, ha azok eltérő témájúak. Figyelembe vesszük azt az esetet, amikor a hálózat minden oldalának van saját regisztrációs oldala, de ugyanazt a témát használják, és a webhelyek csak nyelvben különböznek egymástól. Ha különböző témákat használ, több kódot kell írni.

    functions.php?

    Nem. Úgy tűnik, ennek a fájlnak a neve minden WordPress-cikkben szerepel. Esetünkben, tekintettel arra, hogy a regisztrációs funkciót több webhelyre tervezték, célszerű áthelyezni azokat az MU-bővítményekbe, amelyek betöltődnek bármely webhely megnyitásakor.

    Lírai kitérő

    Érdemes megjegyezni, hogy a MU-bővítmények korábban töltődnek be, mint a hagyományos bővítmények, és mielőtt a WordPress magja teljesen betöltődik, így egyes függvények meghívása végzetes hibákhoz vezethet a PHP-ben. Ennek a "korai" rakodásnak megvannak az előnyei is. Például egyetlen témán belül sem ragaszkodhat bizonyos műveletekhez, amelyek még azelőtt indulnak el, hogy a functions.php fájl betöltődik a témából. Példa erre a Jetpack bővítmény jetpack_module_loaded_related-posts (related-posts - a modul neve) formátumú műveletei, amelyekkel nyomon lehet követni a Jetpack modulok tevékenységét. A témafájlból nem lehet "kapaszkodni" ehhez a művelethez, mert a művelet már a téma betöltése előtt elindult - a bővítmények a témák előtt töltődnek be. Tekintse meg a rendelés általános képét WordPress letöltések megtalálható a kódexben a cselekvési referencia oldalon.

    Fájlsorrend

    Az MU bővítmények tetszőleges számú fájlt és bármilyen struktúrát tartalmazhatnak, amely logikusnak tűnik. Valami ehhez hasonló hierarchiához ragaszkodom:

    | -mu-plugins | - | -load.php | - | - | -selena-network | - | - | - | -regisztráció | - | - | - | - | -plugin.php | - | - | - | - | -... | - | - | - | -jetpack | - | - | - | - | -plugin.php

    A hálózatunkhoz szükséges összes "plugin" be van kapcsolva a load.php fájlba:

    // Fordítóprogramok betöltése az összes kiegészítőhöz load_muplugin_textdomain ("selena_network", "/ selena-network / languages ​​​​/"); // A hálózati regisztrációhoz WPMU_PLUGIN_DIR szükséges. "/selena-network/signup/plugin.php"; // Más bővítményekhez // WPMU_PLUGIN_DIR szükséges ...

    A beépülő modulok mappái a selena-network mappában vannak tárolva, mindegyiknek megvan a saját plugin.php fájlja, amelyet a load.php fájlba is beépítünk. Ez rugalmasságot és lehetőséget biztosít a dolgok gyors ki- és bekapcsolására.

    Regisztrációs oldal címe

    A regisztrációs oldal címének megadásához a wp_signup_location szűrőt kell használni. A wp-login.php fájlban található, és felelős a wp-signup.php oldalra történő átirányításért.

    Case "register": if (is_multisite ()) (wp_redirect (apply_filters ("wp_signup_location", network_site_url ("wp-signup.php"))); kilépés;

    Adjuk hozzá a funkciónkat a mu-plugins / selena-network / signup / plugin.php fájlhoz, amely visszaadja a regisztrációs oldal címét az aktuális oldalon:

    Függvény selena_network_signup_page ($ url) (return home_url (). "/ Regisztráció /";) add_filter ("wp_signup_location", "selena_network_signup_page", 99);

    A selena_network az az előtag, amelyet az ütközések elkerülése érdekében a webhelyemen lévő MU-bővítményeken belüli összes függvény nevében használok. Ezt a saját egyedi előtagomra kell cserélni. A szűrő prioritása 99, mert egyes bővítmények, például a bbPress és a BuddyPress felülírhatják ezt az URL-t a sajátjukkal (az MU beépülő modulok korábban töltődnek be, mint a normál beépülő modulok, lásd fent). Vegye figyelembe, hogy a hálózati_hely_url () helyett a home_url () értéket használja, hogy a látogató ugyanazon a tartományon maradjon. Bármely URL használható címként.

    Hozzon létre egy oldalt

    Most hozzunk létre egy oldalt a site.com/signup/ címmel a szokásos felületen, és a gyermektéma mappában a sablonunk új oldal- page-signup.php. A „regisztráció” szó helyett egyedi azonosító használható.

    Az új sablonon belül meg kell hívni a selena_network_signup_main () függvényt, amely megjeleníti a regisztrációs űrlapot.

    Érdemes megjegyezni, hogy a sablonokkal végzett teljes folyamat nem szükséges, helyette létrehozhat saját rövid kódot, amely a selena_network_signup_main () függvényt is meghívja.

    wp-signup.php és wp-activate.php

    Most kezdjük el a regisztrációs űrlapot megjelenítő függvény létrehozását. Ehhez másolja a wp-signup.php és wp-activate.php fájlokat a WordPress gyökérkönyvtárából a mu-plugings / selena-network / signup / mappába (és ne felejtse el csatlakoztatni őket a mu-plugins / selena-network / regisztráció / plugin.php) ... A fájlokkal végzett további manipulációk leírása rendkívül nehéz és időigényes, ezért ezeket Önnek kell elvégeznie. Csak azt írom le, hogy pontosan mit kell tenni, és közzéteszem forrás fájlok a projekted:

    1. A fájl elejéről távolítson el minden követelményt, függvényhívást és egyéb, a függvényeken kívüli kódot.
    2. Nevezze át az összes függvényt egyedi előtagok hozzáadásával a nevekhez.
    3. Csomagolja be a wp-signup.php kód alsó részét a selena_network_signup_main függvénybe, és írja be a globális $ active_signup legelejére; ...
    4. Cserélje ki az elrendezést sajátjára a megfelelő helyeken.

    A wp-activate.php fájlon belül nagyjából ugyanezt kell tennie:

    1. Távolítson el minden kódot a függvényeken kívül, csomagolja be az elrendezést egy külön függvénybe.
    2. Szükség esetén módosítsa az elrendezést.

    A wp-activate.php fájl felelős a fiókaktiválási oldalért. A regisztrációs oldalhoz hasonlóan ehhez is külön sablont kell készíteni, amin belül a wp-activate.php fájlból hívod meg a függvényt.

    Aktiváló leveleket küldünk

    A regisztrációs oldal e-mailt küld a látogatónak a fiók aktiválásához szükséges linkkel. Alapértelmezés szerint ezt az ms-functions.php fájl wpmu_signup_user_notification () függvénye teszi meg. Funkciói kölcsönözhetők az Ön funkciójához. A funkció használatának abbahagyásának oka, hogy elküldi a fiókaktiválási hivatkozást a wp-activate.php webhelyről. Ezt a függvényt a wpmu_signup_user_notification szűrővel tudod "letiltani", false értéket adva rá (ha nem teszed meg, akkor az aktiváló levél kétszer kerül elküldésre, oké, valójában két különböző betű).

    Függvény armyofselenagomez_wpmu_signup_user_notification ($ user, $ user_email, $ key, $ meta = array ()) (// ... // A wpmu_signup_user_notification () függvény kódja wp_mail ($ user_email, wp_specialchars_decode ($ message_headers), $ message_headers ; return false;) add_filter ("wpmu_signup_user_notification", "armyofselenagomez_wpmu_signup_user_notification", 10, 4);

    Ennek eredményeként a Selena téma regisztrációs oldala sokkal tisztábbnak és pontosabbnak tűnik.

    Következtetés

    Sok más, nem túl helyes módszer létezik ugyanerre az interneten – Apache átirányítások, AJAX űrlapok, amelyek Java Script nélkül nem működnek, stb. saját webhely.

    Ügyeljen arra, hogy óvatosan szerkessze a fájlokat, és ne térjen el nagymértékben az eredetitől, hogy a jövőben, ha a WordPress megváltoztatja a wp-signup.php és a wp-activate.php fájlokat, könnyebb lesz összehasonlítani őket. változtatások.

    Ne felejts el benézni forrás a fent leírt összes funkciót, hogy teljes mértékben megértsük, mi és hogyan történik a kódon belül.

    Bónusz. Spammer elleni védelem

    Még a legkisebb WordPress-webhelyek is gyakori spamregisztrációnak vannak kitéve. A botok szűrésére végtelen feltételeket írhatsz, sokszor inkább mesterséges intelligencia létrehozásának kísérletét 🙂 Multisite esetén nekem sokat segített az Apache-ban megszokott átirányítás, amivel a /wp-signup.php és a /wp- megnyitásakor acitvate.php, 404-et kértem (nem vagyok szakértő az Apache konfigurációban, ezért lehet, hogy a szabályaim nem túl helyesek).

    RewriteEngine on RewriteBase / RewriteRule ^ wp-signup \ .php - RewriteRule ^ wp-activate \ .php - # WordPress BEGIN # Alapértelmezés szerint ne érintse meg a WordPress szabályokat :) # ... # WordPress VÉGE

    P. S. Igyekszem a lehető legrészletesebben leírni néhány harmadik féltől származó dolgot, mert amikor elkezdtem, néha nem volt senki, aki sok mindent felszólított és elmagyarázott. Azt is hiszem, hogy az ilyen apró tippek más anyagokkal kapcsolatban arra ösztönöznek valakit, hogy valami újat tanuljon, és bővítse tudását. RewriteRule bejegyzések használata reguláris kifejezések, egyáltalán nem bonyolultak, például a ^ szimbólum egy sor elejét jelenti.