Menü
Bedava
kayıt
ev  /  Kurulum ve kurulum/ WordPress Multisite'da kendi kayıt sayfanızı nasıl oluşturabilirsiniz? Düzeninizdeki form

WordPress Multisite'da kendi kayıt sayfanızı nasıl oluşturabilirsiniz? Düzeninizdeki form

--- Depoyu Seçin --- Buffalo Grove IL 60089 ABD(Buffalo Grove IL 60089 ABD)) Chicago ABD ABD Tamara(16677 GB Blanton caddesi ALOHA.Oregon 97078) Highland Park(USA Highland Park, IL 60035 Posta Kutusu 723 No.24 ) İstanbul(İstanbul,Gençtürk Cad.15, Birlik Han. k-5.d.55 No.1) Madrid 92200 Neuilly-sur-Seine) Republica Moldova , Falesti(s.Fagadau) South Kensington(Bute caddesi) Adler(Sessiz) şerit 2, Kudepsta bölgesi) Aktobe(47/2 Aktobe caddesi) Almetievsk(Almetievsk şehri, Lenin caddesi 13, ofis 306) Anapa (88 Terskaya Caddesi, 3. kat) Astrakhan (17 Kommunisticheskaya Caddesi, ofis 4) Atyrau (Atırav, Azattyk Ave. 42, ofis 206) Berdyansk (Zaporozhye bölgesi) Bişkek ( Bişkek, Chui caddesi. Krasnaya caddesi, 61 (2. kat) şehir merkezi) Vladivostok (147 Svetlanskaya caddesi, ofis 2/4) olgograd (Volgograd şehri karayolu Havacılar 15 depo 23) Dyurtyuli (st. Agidel, 4 kv.2) Yeysk (st. Pervomayskaya 56, ofis 308) Yekaterinburg (10 Mamin-Sibiryak St., ofis 3) Ivanovo (Sheremetyevsky Prospekt, 85G, Premium Plaza İş Merkezi 2. kat, ofis 212) Izhevsk (Lenina 21, ofis 304. İş Merkezi " Forum") İzberbash (Chapaeva 4 ind. 368501) Irkutsk (Irkutsk, Gornaya caddesi 4 (Karamel alışveriş merkezinin yanında) ofis 407) İşimbay (Zorge, ev 18) Yoshkar-Ola (Pr. Lenina 24v, ofis 318) Kazan ( şerit Bir- taraflı Grivki 10, metro istasyonu "Kozya Sloboda" ayrıca Dekabristov caddesi, 85 "B" İş merkezi "Relita" ofis 411) Kamensk-Uralsky (Prospekt Pobeda 56) Kemerovo (Demyan Bedny caddesi, 1 ofis 401) Kyiv (Olevskaya caddesi. , 9/4 (önceden arama ile varış) Komsomolsk-on-Amur (Shikhanova caddesi, 10, ofis 1, binanın sonundan Komsomolskaya'dan giriş.) .Krasnaya 124 ofis 302) Krasnoyarsk (pr.Krasnoyarsky işçisi, 120 alışveriş merkezi "Krasnoyarye") Lviv (Sobornaya Meydanı 12A) Mahaçkale (Akushkinogo 9v) Miass (st. 30 let VLKSM 85) Minsk (Korzhenevskogo, 26) Moskova (Metro :VDNH, Yaroslavskaya caddesi, 10, bina 4, ofis 10) 6) Moskova (Simferopolsky Bulvarı) Moskova (Glazovsky şeridi 5, kemerdeki giriş, metro istasyonunun solundaki kapı: Smolenskaya-500m, Kropotkinskaya-1km., Park Kultury-1km.) Moskova (m. Çehovskaya, Pushkinskaya, Tverskaya. Strastnoy Bulvarı, 6, bina 1, İş Merkezi, ofis 421) Moskova (Lobnya, Mayakovskogo st., 4A, TR1, 3. kat, ofis 301) Moskova (Molodezhnaya metro istasyonu, Yartsevskaya caddesi, 27 bina 9 Sağlığı Geliştirme Merkezi "Dört Elements") Moskova (Krasnaya Presnya 38-45) Moskova (St. Moskova m.Taganskaya radyal çıkış 3, metroya 30 metre. st. Bolshiye Kamenshchiki 1, 4. kat, ofis 30) Moskova (metro istasyonu Leninsky Prospekt, Vavilova 9A, bina 6, ofis 10 B, 3. kat) Moskova (metro istasyonu Novoslobodskaya, Mendeleevskaya, Mayakovskaya, Belorusskaya (radyal) 4. Tverskaya caddesi -Yamskaya , 24. Kemerden giriş, PET SHOP) Moskova (metro Belorusskaya (halka), metro çıkışına 5 metre. Tverskaya Zastava Meydanı, 3, 3. kat, ofis 321. Belorussky tren istasyonunun yakınında. ) Moskova (M. ALTUFIEVO , Pskovskaya caddesi, 6) Moskova (Moskova, Radyo caddesi. , giriş 2, ofis 2) Naberezhnye Chelny (Sh.Usmanova caddesi 122 kb. 111 1. kat) Nalçik (Nalçik, Kirov caddesi 292a, 2. kat, ofis 6 ) Nakhodka (Pogranichnaya caddesi 6, oda 304) Nevinnomyssk (Pl. 50 Let Oktyabrya 8A) Nefteyugansk (12 mikro bölge binası 7) Nizhnevartovsk (Nizhnevartovsk, Mira caddesi 31B.) Nizhny Novgorod (Komintern caddesi 139, ofis 603 (ORE) merkez)) Nizhny Novgorod (m. Gorkovskaya, st. Kostina, 3, M.Ö. "Yeni Meydan", 2. kat, ofis 239) Nizhny Tagil (da l. Krasnoarmeyskaya d.42a, 3. kat ofisi 4) Nizhny Tagil (Nizhny Tagil, st. Papanina 5, ofis 1, Kushva, Gornyakova st. 2/11) Nikolaev (Ryumin st. 5/1) Novorossiysk (Krasnodar Bölgesi, Novorossiysk, Tsemdolina köyü, Zolotaya Rybka st., 15) Novorossiysk (Murat Akhedzhak st., 4) Novosibirsk (Sokak, Oktyabrskaya 42 ofis 601, Lenin Meydanı'na yakın iş merkezi, Mayakovsky sineması) Novosibirsk (Gogol caddesi 33/1.20 Mareşal Pokryshkina metro istasyonundan, Gogol alışveriş merkezinden.) Novotroitsk (Sovetskaya d st. .144) sq. 26) Novy Urengoy (mikro bölge Druzhba, ev 4/3, apt. 183) Norilsk (Leninsky prospekt 47a of. 79) Nur-Sultan (Astana) (Beibitshilik 14, BC Marden, ofis 708) Odessa (b -R Fransızca 60 multidisipliner rehabilitasyon sanatoryumu "SARTUS") Oktyabrsky (Microdistrict 32a, ev 6, apt. 88) Omsk (5 Severnaya st. birinci kat, sağ sundurma.) Orsk (Lenin Ave. 93) Pavlodar (Satpaev St. 71 ofis 107) Perm (Sovietskaya d.52 ofis 1) Perm (Druzhby St. 34 ofis 305) Pyt-Yakh (Microdistrict 5, ev 5) Pyatigorsk (st. 295 Tüfek Bölümü ve 13 k.2) Rostov-on-Don (Soborny şeridi 21 ofis 10 B) Salavat (Lenina caddesi, bina 3 ofis 209, 2. kat) Samara (Novo-Sadovaya caddesi 106, ofis 804, sol asansör, 8. kat) St Petersburg (metro: Vasileostrovskaya, Vasilyevsky Adasının 13. hattı, 78, ofis 182) St. Petersburg (Dostoevskaya metro istasyonu (5 metre) ve Vladimirskaya metro istasyonu (300 metre) VLADIMIRSKY PASSAGE 3. kat, merkezi giriş BİRİNCİ GALERİ, cadde. Vladimirsky 19) Saint Petersburg (Admiralteyskaya metro istasyonu (10 metre) Spasskaya 1 dakikalık yürüme mesafesinde Efimov St. 1, kat 2, ofis 4, İş Merkezi "Sennaya 4", "Sever" kafenin solundan giriş) Saratov (Bolshaya Gornaya) St., 359V, ofis No. 3) Sivastopol (Ochakovtsev St. 19 , merkez "Plaza", zemin kat, ofis 29/2) Snezhinsk (Zababahina caddesi 19 a) Sochi (Sochi ko. Donskaya evi 15.) Sochi ( Sovetskaya st. 42 ofis 204) Stavropol (Lomonosov st. 21 ofis 18) Sterlitamak (85 Khudaiberdina St., 3. kat) Surgut (30 let Pobedy St. 64) Tobolsk (Tobolsk, mikro bölge 6, bina 11, ofis 39 (girişten itibaren) Komsomolsky Prospekt)) Togliatti (40 yaşında) Pobedy, 50, ofis 212a, TD Raduga 1. kat) Tomsk (Tomsk, Sovetskaya caddesi 84) Tüymazy (Michurina caddesi, 15 ofis 2) Tyumen (Gerzen caddesi, 72 ofis 214) Ulyanovsk ( Ryabikov caddesi, d 73) Ust-Kamenogorsk (57 Gorky St., ofis 213) Ufa (Verkhnetorgova Meydanı, 6 (NESTEROV İş Merkezi)) Habarovsk (Postysheva St., 16 ofis 108'den itibaren) Khanty-Mansiysk (G. Khanty-Mansiysk, st. Karl Marx 15, 2. kat.) Chelyabinsk (168 Pobedy Ave., 3. kat, ofis 36.) Çerkessk (101 Lenina St.) Chita (104 Babushkina St., ofis 425) Chishmy (17 Çevre Yolu) Chishmy (Dostluk Ave. , 1B) İsviçre (Arosio via Terra Sotto, 1 6939) Çimkent (Kolkhoznaya st. 47) Yuzhno-Sakhalinsk (Angarsky şerit 21) Yakutsk (Dzerzhinsky st. 8 / 3b) Yakutsk (Yakutsk) Yalta (Lenin set, 5a, SEC " Çeşme, 4. kat) Yanaul (Sovetskaya caddesi, 23, ofis N 8 bina Berezka) Yaroslavl (57 Showroom) Yaroslavl (cadde Chkalova 2) Birsk Bashkortostan () ?>

APOTHEOSIS APOTHEOOSIS (Yunanca apotheosis - tanrılaştırmadan), 1) Helenistik Yunanistan ve Antik Roma'da, bir devlet adamının, kahramanın, imparatorun tanrılaştırılması, onun tarafından ilahi özün kazanılması. Rönesans'ta fenomenin adı resimde, tiyatroda imajına aktarıldı. Modern anlamda, apotheosis, müzikal veya dramatik bir performansı tamamlayan kahramanın yüceltilmesi sahnesidir, gösterinin ana fikrini plastik olarak ifade eden muhteşem bir "canlı resim". Apotheosis biçimi (aynı zamanda, zaman içinde ortaya çıkan bir tanrılaştırma olan methiye gösterisinin yanı sıra) Batı Avrupa tiyatrolarında ve 16. - 18. yüzyıl Rus saray tiyatrosunda geliştirildi; Aynı zamanda devrimci dönemlerin tiyatrosunda da gelişti - 18. yüzyılın sonunda Fransa'da, Ekim Devrimi'nden sonra Rusya'da. 2) Geniş anlamda - yüceltme, bir kişinin yüceltilmesi, olay, fenomen.

Modern Ansiklopedi. 2000 .

Eş anlamlı:

Diğer sözlüklerde "APOTHEOOSIS" in ne olduğunu görün:

    - (Yunanca apotheum'dan ilahlaştırmak için). 1) kahramanların ve Roma imparatorlarının tanrılara karşı hesabı. 2) ünlü bir kişiyi pagan tanrısı şeklinde tasvir eden bir resim. 3) tiyatroyu bitiren ciddi bir resim, oyun. Yabancı kelimeler sözlüğü, ... ... Rus dilinin yabancı kelimeler sözlüğü

    Santimetre … eşanlamlı sözlük

    tanrılaştırma- bir m. apotheose f. 1. Tanrıların toplantısına ağıt. Sl. 18. Herkül'ün tanrılaştırılmasına göre. Pelsk. Kum 2 196. Salonun asıl güzelliği, ressam Lemoine tarafından tuval üzerine yağlı boya ile boyanmış ve Herkül'e tapınmayı temsil eden plafond... ... Rus Dilinin Tarihsel Galyacılık Sözlüğü

    tanrılaştırma- (Yunanca tanrılaştırma tanrılaştırmasından), 1) Helenistik Yunanistan ve Antik Roma'da, bir devlet adamının, kahramanın, imparatorun tanrılaştırılması, onun tarafından ilahi özün edinilmesi. Rönesans'ta fenomenin adı imajına aktarıldı ... Resimli Ansiklopedik Sözlük

    - (Yunan tanrılaştırmasından - tanrılaştırmadan) başlangıçta eski Mısırlılar arasında ve daha sonra Yunanlılar ve Romalılar arasında, yöneticilerin özel değerleri için ciddi bir tanrılaştırma töreni. Zamanla hükümdarlar kültüne dönüşen apotheosis, ... ... Felsefi Ansiklopedi

    - (Yunan tanrılaştırma tanrılaştırmasından) ..1) eski Yunan devlet adamlarının, daha sonra Roma imparatorlarının tanrılaştırılması2)] Herhangi bir kişinin yüceltilmesi, yüceltilmesi, olay, fenomen3) Son ciddi kitle sahnesi ... ... Büyük Ansiklopedik Sözlük

    apotheosis, apotheosis, erkek. (Yunanca tanrılaştırma tanrılaştırması). 1. Eskiler arasında, kahramana, imparatora (kaynak) ilahi onur verme töreni. 2. Aktivitesini taçlandırma karakterine sahip birinin (kitap) özellikle ciddi halk övgüsü ... Ushakov'un Açıklayıcı Sözlüğü

    APOTEOIS, bir koca. 1. Birinin veya bir şeyin yüceltilmesi, yüceltilmesi. (kitap). 2. Bazı tiyatro gösterilerinin ciddi final sahnesi (özel). | sf. tanrılaştırma, oh, oh. Ozhegov'un açıklayıcı sözlüğü. Sİ. Özhegov, N.Yu. Şvedova. 1949… … Ozhegov'un açıklayıcı sözlüğü

    - (Yunancadan. tanrılaştırma tanrılaştırması) eski zamanlarda, eski Yunan devlet adamlarının, daha sonra Roma imparatorlarının tanrılaştırma töreni. Tiyatro işinde, tanrılaştırmaya performansın son ciddi kitle sahnesi denir veya ... ... Politika Bilimi. Sözlük.

    Jean Auguste Dominique Ingres. "Napolyon'un Apotheosis'i", 1853 Apotheosis, modası geçmiş. tanrılaştırma ... Wikipedia

Kitabın

  • Temelsizliğin tanrılaştırılması
  • Yersizliğin ilahlaştırılması, Lev Shestov. Temelsizliğin Özdeyişi muhtemelen Lev Shestov'un kitaplarının en ünlüsü ve en azından en skandalıdır. İçinde, evrensel olarak zorunlu bilgiye önden bir saldırı yapar ve ...

Santimetre … eşanlamlı sözlük

BAINKI, değişmedi. ch. (çocukça). Uyumak. meme ister misin? Uzan bainki. Ushakov'un Açıklayıcı Sözlüğü. D.N. Ushakov. 1935 1940 ... Ushakov'un Açıklayıcı Sözlüğü

Bainki yap / yap (güle güle). Jarg. onlar söylüyor Servis aracı. Uyumak. Maksimov, 21… Rus atasözlerinin büyük sözlüğü

tahmin ediyorum. açılmak Uyku durumu hakkında (çocukların konuşmasında veya yetişkinlerin çocuklu konuşmasında). II int. açılmak Bir ninni bileşeni olarak kullanılır. Ephraim'in Açıklayıcı Sözlüğü. T.F. Efremova. 2000... Rus dili Efremova'nın modern açıklayıcı sözlüğü

bainki- ainki, değişmezlik ... Rusça yazım sözlüğü

bainki- değişmezlik ... Rus Dili Yazım Sözlüğü

Uluslararası, funkt'ta. skaz. \u003d Bai Bai (II işareti) ... ansiklopedik sözlük

bainki- int.; işlevde skaz. = güle güle 2)… Birçok ifadenin sözlüğü

bainki- ba / mürekkep / ve arasında ... Biçimbirimsel yazım sözlüğü

Kitabın

  • Bainki, Tokmakova I.P. Bu kitapta bebeğiniz için ninniler okuyabilir hatta söyleyebilirsiniz. Kitap kes...
  • Bainki (2006 ed.), Irina Tokmakova. Bu kitapta bebeğinize ninniler okuyabilir hatta şarkı söyleyebilirsiniz. Kitap kes. ISBN:5-9524-2404-X…

Aynı anda birden fazla site için bir WordPress kurulumunu kullanmanıza izin verir. Bu durumda, her site benzersiz bir önekle veritabanında kendi tablolarını alır.

Kayıtlı kullanıcıların verilerini içeren tablolar tüm ağ siteleri için ortaktır. Bu kesin bir artıdır ve bir kez kaydolarak birçok siteye erişebilirsiniz. Ayrıca her sitede aynı hesap farklı haklara sahip olabilir. Örneğin, bir kullanıcı bir sitede editör, diğerinde yönetici olabilir.

Tipik bir kurulumda wordpress sayfası kayıt, yetkilendirme ve şifre sıfırlama wp-login.php dosyasını görüntüler.

  • wp-login.php - yetkilendirme
  • wp-login.php?action=register - kayıt
  • wp-login.php?action=lostpassword - parola sıfırlama

Multisite modunda, WordPress çekirdeği biraz farklı davranmaya başlar ve wp-login.php?action=register bağlantısını tıkladığınızda wp-signup.php adresine yönlendirilir. Bu, varsayılan olarak WordPress ile birlikte gelen ağ kayıt sayfanızdır.

Normal kullanıcı hesaplarını kaydetmeye ek olarak, süper yönetici bu özelliği ağ ayarlarında etkinleştirmişse (Ağ Yöneticisi → Ayarlar → Ağ Ayarları) üzerinde yeni bir site oluşturabilirsiniz.

Çoğu temada kayıt sayfası pek iyi görünmüyor. Birçok tema, sayfadaki farklı öğelere stil vermek için Bootstrap gibi CSS çerçevelerini ve kendi özel sınıflarını kullanır, bu nedenle herkese uyan tek bir HTML yazmak zordur.

Ancak sayfa düzensiz görünüyorsa umutsuzluğa kapılmayın. wp-signup.php dosyası ilk başta harikadır, sitenin her ayrıntısıyla uğraşmak için zamanınız olmadığında - diğer daha önemli sayfalara ve içeriğe odaklanabilirsiniz.

Kendi kayıt sayfanızı oluşturmaya hazır olduğunuzda, wp-signup.php, WordPress'in kullanıcı girdisini işlemek ve doğrulamak ve yeni hesaplar oluşturmak için sağladığı özellikleri kolayca anlamanız için iyi bir referans ve örnektir.

Ağ ana sitesi

Varsayılan olarak, WordPress, web'in ana etki alanında (web sitesi) kayıt sayfasını (wp-signup.php) açar. Ancak, temaları olsa bile ağdaki her site için kayıt sayfaları oluşturabilirsiniz.

Ağdaki tüm sitelerin aynı temayı kullandığı, ancak her birinin bir kayıt sayfası olduğu durumu ele alacağız. Sitelerin dili (İngilizce ve Rusça) farklıdır, bu nedenle kayıt sayfası sitenin "yerel" dilinde görüntülenecektir. siteler kullanırsa farklı konular, hepsi temaların ne olduğuna, aynı düzenin onlar için işe yarayıp yaramadığına (sizi tüm temalarınızı birleştirmeye zorlayabilecek harika bir durum) veya sayfalar üzerinde ayrı ayrı çalışmanız gerekip gerekmediğine bağlı olacaktır.

function.php alternatifi

Dosya sırası

MU eklentileri, size mantıklı görünen herhangi bir sayıda dosya ve yapı içerebilir. Bunun gibi bir hiyerarşi izliyorum:

| mu eklentileri | | yük.php | | selena ağı | | | kaydol | | | | eklenti.php | | | ... | | | jet çantası | | | | eklenti.php

load.php dosyasında, çeviriler ve gerekli tüm "eklentiler" bağlanır:

// MU eklentileri için çevirileri yükle load_muplugin_textdomain("selena_network", "/selena-network/languages/"); // Kayıt sayfası için işlevsellik WPMU_PLUGIN_DIR gerektirir. "/selena-network/signup/plugin.php"; // Başka bir eklenti // WPMU_PLUGIN_DIR gerektirir ...

Eklenti klasörleri, selena-network dizini içinde saklanır. Her birinin load.php içine dahil ettiğimiz kendi plugin.php dosyası vardır. Bu, esneklik ve acil durumda çalışan bir projedeki bireysel bileşenleri anında devre dışı bırakma ve etkinleştirme yeteneği sağlar.

Kayıt sayfası

Kodu nereye ve nasıl yazacağımızı anladıktan sonra kayıt sayfasını oluşturmaya geçebiliriz.

Her zamanki arayüz üzerinden example.org/signup/ adresli bir sayfa oluşturalım. Adres olarak projenize uygun görünen herhangi bir URL'yi kullanabilirsiniz.

Gerekli kayıt sayfasına yönlendirin

WordPress'in yeni kayıt sayfamızdan haberdar olması ve ona yönlendirebilmesi için “Kaydol” bağlantısına tıklandığında wp_signup_location filtresi kullanılır. wp-login.php içinde bulunabilir ve varsayılan olarak wp-signup.php'ye yönlendirmeden sorumludur.

Case "register" : if (is_multisite()) ( wp_redirect(apply_filters("wp_signup_location", network_site_url("wp-signup.php"))); çıkış; // ...

Hatırladığınız gibi, varsayılan olarak, ana ağ etki alanında kayıt sayfası açılır. Bu nedenle burada network_site_url() kullanılır.

Mevcut sitedeki kayıt sayfasının adresini verecek olan mu-plugins/selena-network/signup/plugin.php içindeki filtreye işleyicimizi ekleyelim:

fonksiyon selena_network_signup_page($url) ( home_url("kaydolma"); ) add_filter ("wp_signup_location", "selena_network_signup_page", 99);

selena_network, çarpışmaları önlemek için sitemdeki MU eklentilerinin içindeki tüm işlevlerin adlarında kullandığım bir önek, kendi benzersiz önekimle değiştirilmelidir. Filtre önceliği 99 ekleyin, çünkü bbPress ve BuddyPress gibi bazı eklentiler bu adresin üzerine kendi adreslerini yazabilir (MU eklentileri normal eklentilerden önce yüklenir, yukarıya bakın).

network_site_url() 'dan farklı olarak, ağın ana sitesini değil, mevcut sitenin adresini döndüren home_url() öğesinin kullanıldığını unutmayın.

wp-signup.php işlevi

wp-signup.php dosyası birçok işlev ve kod içerir. Büyük resmi görmek için kod katlamayı kullanabilirsiniz. Kural olarak, İngilizce'de buna "kod katlama" denir.

Dosyanın en başında 1'den 80'e kadar olan satırlarda (4.1.1 sürümünde) çeşitli kontroller ve sayfanın "başlangıcını" get_header() ile görüntüleme.

Ardından, birçok yöntem bildirilir ve onlarla çalışmaya başlamadan önce her işlevin ne yaptığını anlamaya değer. Birçoğu genellikle wpmu_ ön eki olan ve tümü wp-includes/ms-functions.php dosyasında bildirilen diğer işlevleri kullanır. Kodu kendiniz görmeden bu bölümü anlamak zor. Aşağıda, herhangi bir zorluk yaşamanız durumunda ana işlevlerin kısa bir açıklaması bulunmaktadır.

  • wpmu_signup_stylesheet() - Kayıt sayfasında ek CSS çıktısı verir.
  • show_blog_form() - site kaydı için alanlar (adres, ad, arama motorları için görünürlük).
  • validate_blog_form() - wpmu_validate_blog_signup() kullanarak girilen web sitesi adresini ve başlığını doğrular.
  • show_user_form() - kullanıcı kaydı için alanlar (oturum açma ve e-posta adresi).
  • validate_user_form() - girilen oturum açma ve e-posta adresinin doğrulanması. wpmu_validate_user_signup() ile postalayın.
  • signup_another_blog() - sitede zaten kayıtlı olan kullanıcılar için show_blog_form() kullanarak yeni siteler kaydetmek için alanlar.
  • validate_another_blog_signup() - validate_blog_form() ile site adresini ve başlığını doğrular.
  • signup_user(), kayıt sayfası alanlarını görüntülemek için ana işlevdir.
  • validate_user_signup() - Kullanıcı adını ve e-posta adresini doğrular. validate_user_form() ile postalayın.
  • signup_blog() - show_blog_form() kullanarak sitenin adresini, adını ve görünürlüğünü (kaydın ikinci adımı) girmek için alanlar.
  • validate_blog_signup() - oturum açmayı, e-posta adresini doğrular. posta, adres ve site adı.

wp-signup.php dosyasının en altında (sürüm 4.1.1'deki 646 satırından itibaren), yukarıda açıklanan tüm yöntemleri kullanan kayıt sayfasının ana mantığı bulunur. Kodun bu kısmı bir fonksiyona taşınmaz. Sonunda get_footer() çağrılır.

wp-signup.php'nin işlevselliğini kopyalayın

Daha sonra, wp-signup.php dosyasını MU eklentilerine kopyalama ve "çatal" üzerinde değişiklik yapma prosedürü açıklanacaktır. Belki de bu en çok görünmeyebilir doğru yol. Bunun yerine, normal işlevler yerine sınıfları kullanarak formları doğrulamak ve sıfırdan görüntülemek için kendi işlevlerinizi yazabilirsiniz. Bence wp-signup.php sayfamız için gerekli tüm mantığa zaten sahip, geriye sadece küçük değişiklikler yapmak kalıyor.

WordPress'i güncellerken wp-signup.php de zaman zaman değişir, ancak bu, “çatalınızı” her sürümle senkronize etmeniz gerektiği anlamına gelmez. wp-signup.php içindeki işlevler temelde HTML çıktısı, veri doğrulama, hesap ve site oluşturma ve ms-functions.php içinde bildirilen wpmu_ önekli yöntemlerden başka bir şey yapmaz.

Kayıt formunu sayfada gösterecek bir fonksiyon oluşturalım. Bunu yapmak için wp-signup.php dosyasını WordPress kökünden mu-plugings/selena-network/signup/ dizinine kopyalayın. mu-plugins/selena-network/signup/plugin.php içine bağlayın).

WPMU_PLUGIN_DIR gerektirir. "/selena-network/signup/wp-signup.php";

Kopyalanan dosyanın en başından tüm gerekli ve gereksiz kontrolleri kaldırın. 4.1.1 sürümünde, 1'den 80'e kadar olan tüm kod budur.

Artık kayıt formunu görüntülemek için ana işlevi oluşturmaya hazırız. Bunu yapmak için, 646 satırından dosyanın en sonuna kadar tüm mantığı selena_network_signup_main adlı bir işleve aktaracağız. En sonunda, iki ekstra kapanışı kaldıracağız

(satır 722 ve 723), ayrıca get_footer() çağrısı.

Yeni oluşturulan selena_network_signup_main() 'da, en başta, bu dosyadan diğer tüm yöntemler tarafından kullanılan global active_signup değişkenini bildireceğiz. Ve dosyanın en başından kaldırdığımız Before_signup_form olayına bir çağrı ekleyin.

fonksiyon selena_network_signup_main() ( global $active_signup; do_action("before_signup_form"); // ... )

Artık sadece gerekli olan tüm yerlerde düzeni değiştirmek kalıyor ve kayıt sayfası hazır.

Kayıt formu çıktısı

Burada en az iki seçenek var. Daha uygun yol- bir kısa kod oluşturun ve normal bir düzenleyici aracılığıyla sayfaya yerleştirin.

// Kısa kod oluştur network_signup add_shortcode("network_signup", "selena_network_signup_main");

İkinci seçenek, alt tema klasörünüzde bir sayfa şablonu page-signup.php oluşturmaktır. "Kaydol" kelimesi yerine, sayfaya atanmış benzersiz bir kimlik kullanabilirsiniz. Şablonun içine gerekli düzeni ekleyin ve doğru yerde selena_network_signup_main()'e bir çağrı yapın.

Sonuç olarak, kayıt sayfam çok daha iyi ve temiz görünüyor.

Aktivasyon sayfası

İle WordPress varsayılanışartlı olarak Multisite'deki kayıt sürecini iki adıma böler - sitedeki formu doldurmak ve gönderilen bağlantıya tıklayarak hesabı etkinleştirmek e-posta. Önceki bölümde oluşturulan formu doldurduktan sonra, WordPress, hesabınızı etkinleştirmek için bazı talimatlar ve bir bağlantı içeren bir e-posta gönderir.

WordPress kök dizininde bulunan wp-activate.php dosyası, aktivasyon sayfasının görüntülenmesinden sorumludur. wp-activate.php de tamamen değiştirilebilir. İşlem, wp-signup.php için zaten yaptığımıza benzer.

Her zamanki arayüz üzerinden example.org/activate/ sayfasını oluşturalım. Adres için size uygun görünen herhangi bir URL'yi kullanın.

wp-activate.php dosyasını MU eklentilerimize kopyalayın ve onu mu-plugins/selena-network/signup/plugin.php içine ekleyin.

WPMU_PLUGIN_DIR gerektirir. "/selena-network/signup/wp-activate.php";

wp-signup.php'den farklı olarak içeride fazla içerik yok. Dosya tek bir işlem gerçekleştirir - doğru anahtar alındığında hesabı etkinleştirir ve bir hata veya başarı mesajı görüntüler.

Gereksiz tüm kontrolleri ve gereksinimleri kaldıralım - WordPress 4.1.1'deki 1'den 69'a kadar olan satırlar. En sonunda get_footer() çağrısını kaldıracağız. Kalan içerik selena_network_activate_main() işlevine aktarılacaktır.

Burada, WordPress'i (wp-load.php) yüklemeden önce WP_INSTALLING sabitinin bildirildiğini belirtmek ilginçtir. Varlığı, WordPress'in eklentileri yüklememesine neden olur.

Kayıt sayfasında olduğu gibi, sadece gerektiğinde düzeni düzeltmek kalır. Ayrıca görüntülenen mesajların metnini de değiştirebilirsiniz (bu durumda, MU eklentilerinizin metin alanını tüm çevirmen işlevlerine eklemeyi unutmayın, varsayılan olarak herhangi bir yere ayarlanmamıştır).

Hazır işlevi, bir alt temada bir kısa kod veya ayrı bir şablon aracılığıyla önceden oluşturulmuş bir sayfada kullanılabilir.

Doğru bağlantılara sahip aktivasyon e-postaları

Aktivasyon sayfası kullanıma hazır, ancak WordPress bunu bilmiyor ve yine de wp-activate.php bağlantısı içeren aktivasyon e-postaları gönderecek. wp-signup.php'den farklı olarak, adresi değiştirmenize izin verecek bir filtre yoktur. Bunun yerine, e-postaları doğru bağlantılarla gönderecek kendi işlevinizi yazmanız gerekir.

Sayfadaki formu doldururken ve gönderirken WordPress kaydı wpmu_signup_ çağrıları kullanıcı() veya wpmu_signup_ Blog() kayıt türüne bağlı olarak. Her iki işlev de oluşturur Yeni Rekor wp_signups tablosunda, hesap aktivasyon anahtarı da dahil olmak üzere gerekli içerikle doldurun.

Daha sonra, işleve bağlı olarak wpmu_signup_ çağrılır. kullanıcı _notification() veya wpmu_signup_ Blog _bildirim() . Her iki işlevin de benzer işlevleri vardır - etkinleştirme bağlantısı içeren bir e-posta oluşturur ve gönderirler, ancak farklı argümanlar alırlar. Her ikisinin de olayı "yakalamak" için filtreleri vardır.

Eğer (! application_filters("wpmu_signup_user_notification", $user, $user_email, $key, $meta)) false döndürür;

Bir blog oluşturarak hesapları etkinleştirmek için:

If (! application_filters("wpmu_signup_blog_notification", $domain, $path, $title, $user, $user_email, $key, $meta)) ( false return; )

Geriye yalnızca, içinde wp_mail() aracılığıyla mektup gönderen kendi işleyicilerinizi yazmak kalır ve en sonunda, WordPress'in iki kez bir etkinleştirme mektubu göndermemesi için false verdiğinizden emin olun - biri sizindir, diğeri ise varsayılan bir mektuptur. wp-activate.php için bir bağlantı.

fonksiyon selena_network_wpmu_signup_user_notification($user, $user_email, $key, $meta = array()) ( // E-posta başlığı, gövdesi ve başlıkları oluştur // ... // E-posta gönder veya e-posta göndermek için Cron görevi ekle wp_mail($user_email , wp_specialchars_decode($subject), $message, $message_headers); // WordPress'in aktivasyon e-postasını iki kez göndermemesi için false iletin; ) add_filter("wpmu_signup_user_notification", "selena_network_wpmu_signup_user_notification", 10, 4);

Bir SMTP sunucusu üzerinden e-posta gönderiyorsanız veya kayıt sayısı çok fazlaysa, anında e-posta göndermemeyi düşünmelisiniz. Bunun yerine, WordPress Cron kullanarak Cron işleri ekleyebilirsiniz.

wp-signup.php ve wp-activate.php'ye erişimi kapatma

Kendi kayıt ve aktivasyon sayfalarınızı oluşturduktan sonra "orijinalleri" kapatmanız gerekebilir. Örneğin, kayıt sayfasında doldurulması gereken ek alanlar varsa. Ayrıca, birçok WordPress sitesi spam kayıtlarına tabidir.

İki sorunu tek bir işlemde çözmek için, bu sayfaları açma girişimi olması durumunda Apache'den 404'ü döndürmesini isteyebilirsiniz. Bunu yapmak için, yapılandırma dosyanıza veya .htaccess'inize birkaç ek RewriteRule kaydetmeniz yeterlidir.

RewriteBase'de RewriteEngine / # Normal ifadeleri bilmek asla gereksiz değildir :) RewriteRule ^wp-signup\.php - RewriteRule ^wp-activate\.php - # BEGIN WordPress # Varsayılan WordPress kurallarını bırakın :) # ... # END WordPress

Çözüm

WordPress ile ilgili bu ve diğer birçok "sorun" için internette birçok çözüm var. Örneğin, kayıt ve aktivasyon sayfaları oluşturmak için bazıları orijinal wp-signup.php ve wp-activate.php dosyalarının yeniden yazılmasını önerir. Bunu yapmamalısınız çünkü WordPress'i güncellerseniz dosyalarda yapılan tüm değişiklikleri kaybedersiniz ve ayrıca kullanarak çekirdeğin bütünlüğünü kontrol edemezsiniz.

Herhangi bir eklenti, tema veya çözüm geliştirirken WordPress'in içinde neler olup bittiğini anlamak için biraz zaman ayırın. Bunun için birçok yararlı hata ayıklama aracı vardır.

not

Yeni kullanıcılara otomatik olarak farklı roller atamak için Multisite User Management eklentisini kullanabilirsiniz.

Makaleyi okuduktan sonra kayıt ve aktivasyon sayfalarının oluşturulması sırasında herhangi bir sorunuz veya zorluğunuz varsa, yorum bırakın ve kesinlikle cevaplayacağız.

27.03.2015 27.03.2015

WordPress geliştiricisi. Her şeyde düzeni ve yeni araçları anlamayı sever. Symfony bileşen mimarisinden esinlenilmiştir.

  • Standart wp-signup.php yerine kendi multisite kayıt sayfamızı oluşturalım.

    Tipik bir WordPress kurulumunda, wp-login.php dosyasında kayıt sayfası (oturum açma, parola sıfırlama) görüntülenir.

    • /wp-login.php - yetkilendirme
    • /wp-login.php?action=register - kayıt
    • /wp-login.php?action=lostpassword - parola sıfırlama

    wp-login.php'de multisite için ayrı koşullar vardır. Bu nedenle, bir çoklu sitede /wp-login.php?action=register'a tıkladığınızda, WordPress /wp-signup.php sayfasına yönlendirilecektir. Birçok temada sayfa çok çekici görünmüyor, bu yüzden kendi temamızı yapacağız.

    Ağ ana sitesi

    Varsayılan olarak, WordPress, web'in ana etki alanında (web sitesi) kayıt sayfasını (wp-signup.php) açar. Ancak yapılması mümkün ayrı sayfa farklı temalara sahip olsalar bile ağdaki her site için kayıt. Ağdaki tüm sitelerin kendi kayıt sayfasına sahip olduğu, ancak aynı temanın kullanıldığı ve sitelerin yalnızca dilde farklılık gösterdiği durumu ele alacağız. Farklı temalar kullanılıyorsa, daha fazla kod gerekecektir.

    fonksiyonlar.php?

    Numara. Bu dosyanın adı her WordPress makalesinde geçiyor gibi görünüyor. Bizim durumumuzda, kayıt işlevinin birkaç site için tasarlandığı göz önüne alındığında, herhangi bir site açıldığında yüklenen MU eklentilerine taşımak mantıklıdır.

    lirik arasöz

    MU eklentilerinin normal eklentilerden önce ve WordPress çekirdeği tamamen yüklenmeden önce yüklendiğini belirtmekte fayda var, bu nedenle bazı işlevlerin çağrılması PHP'de ölümcül hatalara neden olabilir. Bu "erken" yüklemenin avantajları vardır. Diyelim ki herhangi bir temanın içinde, function.php dosyası temadan yüklenmeden önce bile çalışan bazı eylemlere tutunamazsınız. Buna bir örnek, Jetpack'teki modüllerin etkinliğini izlemenin mümkün olduğu jetpack_module_loaded_ilgili-posts (ilgili-yazılar modülün adıdır) biçimindeki Jetpack eklentisindeki eylemlerdir. Bu eylem tema dosyasından "eklenemez" çünkü eylem tema yüklenmeden önce başlatıldı - eklentiler temalardan önce yüklenir. Siparişin genel resmine bir göz atın WordPress indirmeleri Codex'te Action Reference sayfasını ziyaret edebilirsiniz.

    Dosya sırası

    MU eklentileri, herhangi bir sayıda dosya ve size mantıklı görünen herhangi bir yapı içerebilir. Bunun gibi bir hiyerarşi izliyorum:

    |-mu-plugins |-|-load.php |-|-|-selena-network |-|-|-|-kayıt |-|-|-|-|-plugin.php |-|-|-| -|-... |-|-|-|-jetpack |-|-|-|-|-plugin.php

    load.php dosyasında, ağımız için gerekli tüm "eklentiler" bağlanır:

    // Tüm eklentiler için Çevirileri Yükle load_muplugin_textdomain("selena_network", "/selena-network/languages/"); // Ağ Kaydı WPMU_PLUGIN_DIR gerektirir. "/selena-network/signup/plugin.php"; // Başka eklentiler // WPMU_PLUGIN_DIR gerektirir ...

    Eklenti klasörleri selena-network klasörünün içinde saklanır, her birinin load.php içine dahil ettiğimiz kendi plugin.php dosyası vardır. Bu, esneklik ve belirli şeyleri hızlı bir şekilde devre dışı bırakma ve etkinleştirme yeteneği sağlar.

    Kayıt sayfası URL'si

    wp_signup_location filtresi, kayıt sayfası adresini belirtmek için kullanılır. wp-login.php dosyasının içinde bulunabilir ve wp-signup.php dosyasına yönlendirmeden sorumludur.

    Case "register" : if (is_multisite()) ( wp_redirect(apply_filters("wp_signup_location", network_site_url("wp-signup.php"))); çıkış;

    Mevcut sitedeki kayıt sayfasının adresini verecek olan mu-plugins/selena-network/signup/plugin.php dosyasına fonksiyonumuzu ekleyelim:

    fonksiyon selena_network_signup_page ($url) ( home_url'ye dön () . "/signup/"; ) add_filter ("wp_signup_location", "selena_network_signup_page", 99);

    selena_network, çarpışmaları önlemek için sitemdeki MU eklentilerinin içindeki tüm işlevlerin adlarında kullandığım bir önek, kendi benzersiz önekinizle değiştirilmelidir. Filtre önceliği 99 ekleyin, çünkü bbPress ve BuddyPress gibi bazı eklentiler bu adresin üzerine kendi adreslerini yazabilir (MU eklentileri normal eklentilerden önce yüklenir, yukarıya bakın). Ziyaretçiyi aynı etki alanında tutmak için network_site_url() yerine home_url() kullanıldığını unutmayın. Adres olarak herhangi bir URL kullanılabilir.

    Sayfa oluşturma

    Şimdi normal arayüz üzerinden site.com/signup/ adresinde bir sayfa oluşturacağız ve alt tema klasöründe bizim için bir şablon oluşturacağız. yeni sayfa- page-signup.php . "Kaydol" kelimesi yerine benzersiz bir kimlik kullanabilirsiniz.

    Yeni şablonun içinde, kayıt formunu gösterecek olan selena_network_signup_main() işlevini çağırmanız gerekir.

    Şablonlarla ilgili tüm sürecin isteğe bağlı olduğunu ve bunun yerine selena_network_signup_main() işlevini de çağıracak kendi kısa kodunuzu oluşturabileceğinizi belirtmekte fayda var.

    wp-signup.php ve wp-activate.php

    Şimdi kayıt formunu gösterecek bir fonksiyon oluşturalım. Bunu yapmak için wp-signup.php ve wp-activate.php dosyalarını WordPress kökünden mu-plugings/selena-network/signup/ dizinine kopyalayın (ve bunları mu-plugins/selena-network içine eklemeyi unutmayın) /signup/plugin.php) . Diğer dosya manipülasyonlarını açıklamak son derece zor ve uzundur, bu yüzden bunları kendiniz yapmanız gerekecektir. Tam olarak ne yapılması gerektiğini anlatacağım ve yayınlayacağım kaynak dosyaları projenizin:

    1. Dosyanın başında, tüm gerekli, işlev çağrılarını ve işlevlerin dışındaki diğer kodları kaldırın.
    2. Adlara benzersiz önekler ekleyerek tüm işlevleri yeniden adlandırın.
    3. wp-signup.php kodunun alt kısmını selena_network_signup_main işlevine sarın ve en başa global $active_signup yazın; .
    4. Düzeni doğru yerlerde kendi düzeninizle değiştirin.

    wp-activate.php içinde aynı şeyi yapmanız gerekir:

    1. İşlevlerin dışındaki tüm kodu kaldırın, düzeni ayrı bir işleve sarın.
    2. Gerektiğinde düzeni değiştirin.

    wp-activate.php dosyası hesap aktivasyon sayfasından sorumludur. Kayıt sayfasında olduğu gibi, bunun için de wp-activate.php dosyasından işlevi çağırmanız gereken ayrı bir şablon oluşturmanız gerekir.

    Aktivasyon e-postaları gönderme

    Kayıt sayfası, ziyaretçiye hesabı etkinleştirmek için bir bağlantı içeren bir e-posta gönderir. Varsayılan olarak, bu, ms-functions.php dosyasındaki wpmu_signup_user_notification() işlevi tarafından gerçekleştirilir. İşlevi, işlevi için ödünç alınabilir. Bu özelliği kullanmayı bırakmanızın nedeni, wp-activate.php adresinden bir hesap etkinleştirme bağlantısı göndermesidir. wpmu_signup_user_notification filtresini false vererek bu işlevi "kapatabilirsiniz" (bu yapılmazsa, aktivasyon mektubu iki kez gönderilecektir, tamam, aslında iki farklı harf).

    function Armyofselenagomez_wpmu_signup_user_notification($user, $user_email, $key, $meta = array()) ( // ... // wpmu_signup_user_notification() işlevinden kod wp_mail($user_email, wp_specialchars_decode($konu), $message, $message_headers) ; false döndür; ) add_filter("wpmu_signup_user_notification", "armyofselenagomez_wpmu_signup_user_notification", 10, 4);

    Sonuç olarak, Selena temasındaki kayıt sayfası çok daha temiz ve düzenli hale geldi.

    Çözüm

    İnternette aynısını yapmanın pek doğru olmayan başka yolları da var - Apache yönlendirmeleri, Java Script olmadan çalışmayacak AJAX formları, vb. Bunların hepsini gerçekten beğenmedim, bu yüzden olabildiğince doğru yapmaya çalıştım. kendi sitemde mümkün

    Dosyaları dikkatli bir şekilde düzenlemeniz ve orijinal dosyalardan çok fazla sapmamaya çalışmanız gerektiğini not ediyorum, böylece gelecekte WordPress wp-signup.php ve wp-activate.php dosyalarını değiştirirse, karşılaştırma yapmak daha kolay olacaktır. değişiklikleri bulmalarını sağlar.

    bakmayı unutma kaynak Kodun içinde ne ve nasıl olduğunu tam olarak anlamak için yukarıda açıklanan tüm işlevler.

    Bonus. Spam Gönderici Koruması

    En küçük WordPress siteleri bile genellikle spam kayıtlarıyla bombardımana tutulur. Botları filtrelemek için sonsuz koşullar yazabilirsiniz, genellikle daha çok yapay zeka oluşturmaya çalışmak gibi 🙂 Çok siteli bir durumda, Apache'deki olağan yönlendirme bana çok yardımcı oldu ve /wp-signup.php'yi açarken 404 yayınlamayı istedim. ve /wp-acitvate.php (Apache kurulum uzmanı değilim, bu yüzden kurallarım çok doğru olmayabilir).

    RewriteBase'de RewriteEngine / RewriteRule ^wp-signup\.php - RewriteRule ^wp-activate\.php - # BEGIN WordPress # Varsayılan WordPress kuralları :) # ... # END WordPress

    Not: Bazı üçüncü şahıslara ait şeyleri mümkün olduğunca ayrıntılı bir şekilde açıklamaya çalışıyorum çünkü başladığımda bazen soracak ve birçok şeyi açıklayacak kimse yoktu. Ayrıca diğer materyallerle ilgili bu kadar küçük ipuçlarının, birini yeni bir şeyler öğrenmeye ve bilgi alanlarını genişletmeye iteceğine inanıyorum. RewriteRule girişleri kullanımı düzenli ifadeler, hiç karmaşık değiller, örneğin, ^ sembolü bir satırın başlangıcı anlamına gelir.