Düzeninizin şekli. WordPress Multisite'da iyi bir kayıt sayfası nasıl oluşturulur? Diğer sözlüklerde "apotheosis"in ne olduğunu merak edin

Golovna / Kişiler

Bir saatte birkaç site için bir WordPress kurulumu kazanmanızı sağlar. Bu dış görünüm ile site, veritabanındaki güç tablolarını benzersiz bir önekle kaldıracaktır.

Muhabirlerin kayıt verileri ve bölgedeki tüm siteler için kayıtlar içeren tablolar. Bu kalıcı bir artıdır ve bir kez kaydolarak bir dizi siteye erişebilirsiniz. Ayrıca, cilt bölgesinde bir ve aynı eğik kayıt farklı haklara sahip olabilir. Örneğin, bir sitede muhabir editör, başka bir sitede yönetici olabilir.

AT birincil kurulum WordPress kayıt sayfası, yetkilendirme ve şifre bırakma wp-login.php dosyasına girin.

  • wp-login.php - yetkilendirme
  • wp-login.php?action=register - kayıt
  • wp-login.php?action=lostpassword - Kayıp Parola

Multisite modunda, WordPress çekirdeği zaten üç kez davranmaya başlayacak ve wp-login.php?action=register'a gittiğinizde wp-signup.php'ye yönlendirileceksiniz. umovchannya є WordPress gibi, merezhі'nızın kaydını saklayın.

Kırım acil durum kaydı corystuvac görünüm kayıtları ağ kurmak için bu yeteneği artırmış bir süper yönetici gibi yeni bir site oluşturabilirsiniz (Ağ Yöneticisi → Ayarlar → Ağ Ayarları).

Üçüncü taraf kaydı iyi görünmüyor. Bootstrap gibi CSS çerçeveleri kullanılarak tasarlanmış pek çok tema ve çeşitli öğeleri yanlarda şekillendirmek için özel sınıflar vardır, bu nedenle herkes için aynı olan tek bir HTML yazmak önemlidir.

Ale kızmaz, sanki yan neohayno baktı. wp-signup.php dosyası, sitenin dış görünüm ayrıntılarını çözmek için zamanınız yoksa, daha önemli yönlere ve içeriğe odaklanabilirsiniz.

Kendi kayıt sayfanızı oluşturmaya hazırsanız, wp-signup.php harika bir araç ve yazarlar tarafından girilen verileri işlemek ve yeniden yazmak ve yeni bulut kayıtları oluşturmak için WordPress gibi çeşitli işlevlere kolayca erişmek için bir araç olacaktır. .

merezhі'nın ana sitesi

WordPress promosyonu için, işletmenin ana etki alanında (web sitesi) bir kayıt sayfası (wp-signup.php) oluşturursunuz. Tim daha az değil, merezhі'nın cilt sitesi için kayıt sayfaları oluşturabilirsiniz, böylece böyle kokabilirsiniz.

Ağın tüm sitelerinde bir tema varsa, ancak bunların dış görünümünde bir kayıt sayfası varsa, aradaki farka bakarız. Siteler benim (İngilizce ve Rusça) ile ayrılır, bu nedenle kayıt tarafı sitemde "yerli" olarak gösterilecektir. Bir bakışta, siteler vikoristovuyut raznі tems olarak, her şey eski, yakі tse tse, chi aynı düzendedir (bu durumda, yak tüm konularınızı birleştirmeniz için sizi teşvik edebilir) veya varto opratіvіvі.

function.php alternatifi

Dosya sırası

MU eklentileri, uygun gördüğünüz gibi aynı yapıdaki herhangi bir sayıda dosyayı değiştirebilir. Yaklaşık olarak aşağıdaki hiyerarşiyi tamamlayacağım:

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

load.php dosyasında çeviriler ve gerekli tüm "eklentiler" bulunur:

// MU eklentileri için çeviriler yükleniyor load_muplugin_textdomain("selena_network", "/selena-network/languages/"); // Kayıt tarafı için işlevsel, WPMU_PLUGIN_DIR gerektirir. "/selena-network/signup/plugin.php"; // Bir eklenti daha // WPMU_PLUGIN_DIR gerektirir ...

Selena-network dizinlerinin ortasında eklenti klasörleri kaydedilir. Kaplamanın, load.php içine dahil ettiğimiz kendi plugin.php'si vardır. Tse, acil bir durumda çalışan bir projeye diğer bileşenleri kolayca dahil etme ve dahil etme esnekliği ve yeteneği verir.

Kayıt sayfası

Kodun nasıl yazılacağını ve nasıl yazılacağını çözdükten sonra, kayıt tarafının oluşturulmasına geçebilirsiniz.

Standart bir arayüz üzerinden example.org/signup/ adresine sahip bir taraf oluşturuyoruz. Adres olarak, projenize ek olarak bir URL adresine çevirebilirsiniz.

Gerekli kayıt sayfasına yönlendirin

WordPress'in yeni kayıt sayfamızdan haberdar olması için kendisini oraya yönlendirerek "Register" mesajına tıkladığınızda wp_signup_location filtresi kontrol edilir. Bunu wp-login.php'nin ortasında bulabilir ve kilit için wp-signup.php'ye yönlendirebilirsiniz.

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

Hatırladığınız gibi, kilidin arkasında, sınırın ana etki alanında kayıt tarafı görüntülenir. Bu network_site_url() kazanır.

Akış sitesinde kayıt yapan tarafın adresi olan mu-plugins/selena-network/signup/plugin.php içindeki filtreye imzanızı ekleyin:

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

selena_network - sitemdeki MU eklentilerinin ortasındaki tüm işlevlerin adlarında gizli anlaşmayı önlemek için kullandığım ve ardından kendi benzersiz önekinizle değiştirdiğim bir önek. Bir filtre eklemenin önceliği 99'dur, böylece bbPress ve BuddyPress gibi diğer eklentiler dosyadaki bu adresin üzerine yazabilir (MU eklentileri daha önce alınır, daha düşük ad eklentileri, div. daha yüksek).

home_url()'nin neyi kazandığına dikkat edin, network_site_url()'de olduğu gibi, merezhі'nın ana sitesini değil, akış sitesinin adresini görürsünüz.

İşlevsellik wp-signup.php

wp-signup.php dosyası çok fazla işlevsellik ve kod gerektirir. Resmi bir bütün olarak boyamak için kodu hızlıca yazabilirsiniz. Kural olarak, İngilizce'de buna kod katlama denir.

Dosyanın en üstünde 1'den 80 satıra kadar (sürüm 4.1.1'de), farklı yeniden kontroller yapılır ve get_header() yardımı için "başlangıç" tarafı gösterilir.

Sessiz yöntemler verdik ve önlerinde, onlarla çalışabilmemiz için cilt fonksiyonunu iyileştirmek için varto rose. Zenginliğin ortasında, wpmu_ önekine sahip diğer işlevler genellikle etiketlenir, tüm pis koku wp-includes/ms-functions.php dosyası tarafından gizlenir. Tsey razdіl anlamak önemlidir, kodu bağımsız olarak bachachi etmeyin. Aşağıda, zorlukları suçlayabilmeniz için dikkate alınması gereken ana işlevlerin küçük bir açıklaması bulunmaktadır.

  • wpmu_signup_stylesheet() - kayıt tarafında ek CSS gösteriliyor.
  • show_blog_form() - site kaydı için alanlar (adresler, dürtme sistemleri için adlandırma görünürlüğü).
  • validate_blog_form() - ek wpmu_validate_blog_signup() için girilen site adresinin ve adının doğrulanması.
  • show_user_form() - bir muhabiri kaydetmek için alanlar (oturum açma ve e-posta adresi).
  • validate_user_form() - girilen oturum açma ve e-posta adresinin doğrulanması. yardım için wpmu_validate_user_signup() isteyin.
  • signup_another_blog() — sitede zaten kayıtlı olan kayıtlar için yardım show_blog_form() için yeni siteleri kaydetme alanları.
  • validate_another_blog_signup() - ek validate_blog_form() için site adresini ve adını kontrol edin.
  • signup_user() - kayıt tarafındaki alanları görüntülemenin ana işlevi.
  • validate_user_signup() - oturum açma ve e-posta adresini yeniden kontrol edin. Yardım için validate_user_form()'a bakın.
  • signup_blog() - show_blog_form() yardımı için adresin girilmesi, sitenin görünürlüğünün adlandırılması (başka bir kayıt kaydı) alanları.
  • validate_blog_signup() - oturum açmayı, e-posta adresini kontrol edin. Adrese gönder, siteye isim vereyim.

wp-signup.php dosyasının en altında (sürüm 4.1.1'de satır 646), yukarıda açıklanan tüm yöntemler gibi kayıt defteri çalışmasının ana mantığı bulunur. Kodun bu kısmı işlevden sorumlu değildir. Örneğin, get_footer() çağrılır.

Kopyalama işlevi wp-signup.php

Ardından, wp-signup.php dosyasını MU eklentisine kopyalama ve çatalda değişiklik yapma prosedürü açıklanacaktır. Mozhlivo, tse mozhe zdatisya doğru yol değil. Birincil işlevler yerine, temsili sınıf formlarını yeniden kontrol etmek ve görüntülemek için kendi işlevlerinizi sıfırdan yazmanız mümkündür. Bence wp-signup.php zaten bizim tarafımız için gerekli tüm mantığa sahip, küçük değişiklikler yapmak kalıyor.

WordPress güncellenirken bazen wp-signup.php de değiştirilir, ancak bu, “çatalınızı” bir dış görünüm sürümüyle senkronize edebileceğiniz anlamına gelmez. wp-signup.php'nin ortasındaki işlevler, esasen HTML oluşturma, veri yeniden yazma, bulut kaydı oluşturma ile ilgilenir ve siteler, ms-functions.php içinde seslendirilen wpmu_ önekine sahip yöntemlerle işlenir.

Yan tarafta bir kayıt formu oluşturuyormuş gibi fonksiyonların oluşturulmasına özen gösterelim. Kimler için wp-signup.php'yi mu-plugings/selena-network/signup/ adresindeki WordPress kökünden kopyalayın. mu-plugins/selena-network/signup/plugin.php'nin ortasında yogayı etkinleştirin).

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

Görünüşe göre, kopyalanan dosyanın en başından itibaren tüm tüketim ve gerekli olmayan yeniden doğrulama. Sürüm 4.1.1, satır 1'den 80'e kadar tüm kodlara sahiptir.

Artık yaratmaya hazırız ana işlev kayıt formunu görmek için Bunun için 646 ve dosyanın sonuna kadar tüm yükleme mantığı selena_network_signup_main adlı bir fonksiyona aktarılır. Örneğin, iki eğri görebilirsiniz

(Satır 722 ve 723) ve ayrıca get_footer() wiki.

Tam koçanda selena_network_signup_main() oluşturulmasında, active_signup'ın global değişikliği değiştirilecek, böylece bu dosyanın diğer tüm yöntemleri yazılacak. І dodamo wiki Before_signup_form altına tıklayın, dosyanın en başından beri gördüm.

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

Artık gerekli olduğu tüm alanlarda yerleşim düzenini değiştirmeye gerek yok ve kayıt sayfası hazır.

Visnovok kayıt formu

Burada en az iki seçenek var. Daha manuel yol— Bir kısa kod oluşturun ve onu harika bir düzenleyici aracılığıyla yandan genişletin.

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

Diğer bir seçenek de, alt temalar klasöründe bir page-signup.php sayfa şablonu oluşturmaktır. "Kaydolma" kelimesinin değiştirilmesi, benzersiz bir kimlik, bir el sıkışma ile değiştirilebilir. Şablon için gerekli düzeni ekleyin ve gerekli alan için bir Selena_network_signup_main() çağrısı oluşturun.

Sonuç olarak, kayıt sayfam daha zengin ve temiz görünmeye başladı.

Aktivasyon sayfası

Dikkatin arkasında, WordPress, Multisite'deki kayıt sürecini zihinsel olarak iki adıma böler - sitedeki formu doldurmak ve istek için gittiğinizde eğik kaydı etkinleştirmek, adresine göndermek elektronik levha. Bundan sonra, ön bölümde oluşturulan formu doldururken, WordPress, eğik girişi etkinleştirmek için küçük bir talimat ve talimatlarla sayfayı zorlar.

Aktivasyon tarafını görmek için wp-activate.php dosyasını görebilir, WordPress'in kök dizininde kontrol edebilirsiniz. wp-activate.php yeniden değiştirilebilir. İşlem, wp-signup.php için zaten yaptığımıza benzer.

Basit bir arayüz kullanarak example.org/activate/ tarafını oluşturalım. Adres olarak, size verilecek olan herhangi bir URL'yi geçin.

wp-activate.php dosyasını MU-plugin'inize kopyalayın ve onu mu-plugins/selena-network/signup/plugin.php'ye ekleyin.

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

Ortada o kadar zengin değil, wp-signup.php üzerinde. Dosya tek bir işlemde tamamlanır - eğik kaydı etkinleştirerek doğru anahtarın kaldırılması ve af veya af ile ilgili bildirimlerin görüntülenmesi başarılı viconan'a operasyonlar.

Görünüşe göre tüm gerekli olmayan revizyonlar ve gerekli - WordPress 4.1.1'deki 1'den 69'a kadar olan satırlar. Örneğin, bir get_footer() araması yapalım. Geriye kalanlar selena_network_activate_main() işlevine taşınır.

Tsіkavo vіdmіtiti, WordPress'in (wp-load.php) geliştirilmesinden önce burada scho WP_INSTALLING sabiti hayrete düşürdü. WordPress'in barizliği eklentileri karıştırmaz.

Kayıt geri alınır alınmaz, gerekli olduğu yerde, oradaki düzeni düzeltmek için bırakılır. Ayrıca gösterilecek metni de değiştirebilirsiniz (eğer seçerseniz, tüm çeviri işlevleri için MU eklentilerinizin metin alanını eklemeyi unutmayın, tuşları kilitlemek için ekleme yoktur).

Bitmiş işlev, bir alt tema için bir kısa kod veya özel bir şablon kullanılarak ön tarafta gösterilebilir.

Doğru mesajlarla aktivasyon sayfaları

Aktivasyon sayfası kullanıma hazır, ancak WordPress bunu bilmiyor ve daha önce olduğu gibi, wp-activate.php adresine göndererek aktivasyon listesini güçlendirdi. wp-signup.php görünümünde adresi değiştirmenize izin veren bir filtre yoktur. Doğru talimatlarla bir süper güç gibi kendi işlevinizi yazmanız gerekir.

Doldurma anında, WordPress kaydının yan tarafındaki formun bu baskın wpmu_signup_ öğesini tıklayın. kullanıcı() veya wpmu_signup_ Blog() kayıt türüne göre nadas türünde. Saldırgan işlevler oluşturur Yeni giriş wp_signups tablosunda, ortasında hesap aktivasyon anahtarı olan gerekli miktarı doldurmanız gerekir.

Bundan sonra, işleve geçin, wpmu_signup_ öğesini çağırın kullanıcı _notification() veya wpmu_signup_ Blog _bildirim(). Saldırgan işlevlerin benzer işlevleri olabilir - etkinleştirme gücüne sahip sayfayı oluşturun ve zorlayın, ancak farklı argümanları da kabul edin. Alttan taşmak için her iki є filtrede.

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

Oluşturulan bloglar için herkese açık gönderileri etkinleştirmek için:

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

Ortasında wp_mail() aracılığıyla listeleri düzenlediğiniz kendi çalışma sayfalarınızı yazmanız gerekmez ve örneğin dil false olarak değişir, böylece WordPress etkinleştirme sayfasını iki - biri için düzenlemez. sizinki, aksi takdirde - wp-activate.php'deki mesajları kilitlemek için liste.

fonksiyon selena_network_wpmu_signup_user_notification($user, $user_email, $key, $meta = array()) ( // Sayfanın başlık, metin ve başlıklarını oluştur // ... // Sayfayı düzenleyin veya sayfayı güçlendirmek için bir Cron işi ekleyin wp_mail($user_email , wp_specialchars_decode($subject), $message, $message_headers); // WordPress'in ikili aktivasyon sayfasını eklememesi için false olmalıdır return false; ) add_filter("wpmu_signup_user_notification", "selena_network_wpmu_signup

Yaprakları SMTP sunucusu üzerinden güçlendirirseniz, aksi takdirde kayıt sayısı zaten çoktur, yaprakların üstesinden gelmemek için onlarla ilgilenmelisiniz mittevo. WordPress Cron ile ilgili yardım için bir Cron işi ekleyebilirsiniz.

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

Kayıt ve aktivasyon gücünü oluşturduktan sonra, "orijinalleri" kapatmanız gerekebilir. Örneğin, üçüncü taraf kaydında olduğu gibi ek alanlar vardır, bu yüzden hatırlamanız gerekir. Ayrıca, birçok WordPress sitesi spam kayıtlarına tabidir.

Apache'den 404'ü farklı bir şekilde vermesini isteyerek iki problemi bir problemle çözebilirsiniz. Bunun için yapılandırma dosyasına veya .htaccess'e birkaç ek RewriteRule eklemek daha iyidir.

RewriteEngine On RewriteBase / # Düzenli ifadeler bilgisi asla kazanılmayacak :) END WordPress

Visnovok

WordPress'ten İnternet'e ilişkin tsієї ve diğer "sorunlar" için başka bir çözüm yoktur. Örneğin, kayıt taraflarının oluşturulması ve aktivasyon için, orijinal wp-signup.php ve wp-activate.php dosyasını yeniden yazmak gerekir. Neden sıkı çalışmıyorsunuz, çünkü WordPress'i güncellediğinizde, dosyalardan önce yaptığınız tüm değişiklikleri harcayacaksınız ve yardım için çekirdeğin bütünlüğünü değiştiremeyeceksiniz.

Rozrobtsі herhangi bir ek olduğunda, bunlar veya kararlar bunlara üç saat harcamalıdır, schob razrobatis z tim, WordPress'te scho. Bunun için kişisel olmayan kahverengi enstrümanlar var.

not

Yeni işe alım görevlilerine otomatik olarak farklı roller atamak için Çoklu Site Kullanıcı Yönetimi eklentisini seçebilirsiniz.

Beslenme ile ilgili herhangi bir sorunuz varsa veya makaleyi okuduktan sonra kayıt sayfaları ve aktivasyon oluşturmak zorsa, lütfen yorum bırakın ve obov'yazkovo vodpovimo.

27.03.2015 27.03.2015

WordPress perakendecisi. Her şeyde düzeni sevmek ve yeni araçları anlamak. Symfony bileşenlerinin mimarisinden ilham alınmıştır.

  • Standart wp-signup.php yerine çoklu site için yetkili bir kayıt sayfası oluşturuyoruz.

    Normal bir WordPress kurulumu için kayıt tarafı (yetkilendirme, şifre sıfırlama) wp-login.php dosyasını göstermelidir.

    Çok siteli bir wp-login.php için akıllı olmanız gerekir. Bu nedenle, WordPress çoklu sitesinde /wp-login.php?action=register'a gittiğinizde, /wp-signup.php tarafına yönlendirileceksiniz. Zengin konularda, taraf pek hoş görünmüyor, kontrol edebileceğim.

    merezhі'nın ana sitesi

    WordPress promosyonu için, işletmenin ana etki alanında (web sitesi) bir kayıt sayfası (wp-signup.php) oluşturursunuz. Prote, satıcının dermal web sitesi için bir kayıt sayfası oluşturabilir, böylece farklı konulara sahip olurlar. Aradaki farka bakarız, eğer Merezha'nın tüm sitelerinin kendi kişisel kayıt sayfası varsa, ancak aynı konu seçilmişse ve siteler artık benim değil. Farklı konular olarak vykoristovuyutsya, daha fazla kod yazmak gerekiyor.

    fonksiyonlar.php?

    Ni. Im'ya dosyası, zdaєtsya, zgaduєtsya, WordPress hakkında bilgi verir. Kanaatimizce, bir site yumurtlamasında sigorta kaydetme işlevine sahip olanlara baktığımızda, bir siteye yazarken karıştıkları için MU eklentilerinde yogayı suçlamak için hiçbir neden yoktur.

    şarkı sözü girişi

    Wart, MU eklentilerinin ikincil eklentiler için daha erken kullanıldığını ve WordPress çekirdeği tamamen dolmadan önce kullanıldığını belirtmek için ölümcül af PHP'de. Benzer "erken" ilerlemenin artıları olabilir. Diyelim ki, bunların ortasındaysanız, bazı işlemlere çıkamazsınız, bu yüzden bunlarla function.php dosyasına girmeyi deneyebilirsiniz. Bunun bir örneği, Jetpack'teki modüllerin etkinliğini görebileceğiniz, jetpack_module_loaded_ Related-posts (ilgili gönderiler - modülün adı) biçimindeki Jetpack eklentisinden eylemler olabilir. Bu eylemden önce, eylemin zaten meşgul olduğu dosyalara "eklemek" imkansızdır - eklentiler daha önce işgal edilir. Kodun Eylem Referansı tarafında WordPress katılım siparişinin büyük resmine bakabilirsiniz.

    Dosya sırası

    MU eklentileri, size mantıklı göründüğü gibi, aynı yapıdaki herhangi bir sayıda dosyayı değiştirebilir. Yaklaşık olarak aşağıdaki hiyerarşiyi tamamlayacağım:

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

    load.php dosyası, önlemimiz için gerekli tüm eklentileri içerir:

    // 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"; // Diğer eklentiler // WPMU_PLUGIN_DIR gerektirir ...

    Selena-network klasörünün ortasında, eklenti klasörleri kaydedilir, kaplamanın kendi plugin.php dosyası vardır, bu yüzden onu load.php içine dahil ederiz. Bu, mozhlivіst shvidko vіdklyuchati olduğunu ve deakі konuşmasını içerdiğini gnuchkіst ver.

    Kayıt taraf adresleri

    Kayıt tarafının adresini belirtmek için wp_signup_location filtresi seçilir. Bunu wp-login.php dosyasının ortasında bulabilir ve wp-signup.php'nin kendisine yönlendirebilirsiniz.

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

    Kayıt tarafının adresini akış sitesine girebilmeniz için işlevinizi mu-plugins/selena-network/signup/plugin.php dosyasına ekleyin:

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

    selena_network - sitemdeki MU eklentilerinin ortasındaki tüm işlevlerin adlarında gizli anlaşmayı önlemek için kullandığım ve ardından kendi benzersiz önekinizle değiştirdiğim bir önek. Bir filtre eklemenin önceliği 99'dur, bu nedenle diğer eklentiler, örneğin bbPress ve BuddyPress dosyadaki bu adresin üzerine yazabilir (MU-eklentileri daha önce alınır, daha düşük ad eklentileri, div. daha yüksek). Aynı etki alanını kontrol etmemeniz için network_site_url() yerine home_url() öğesinin kazandığına saygı gösterin. Adres gibi, onu da URL'ye çevirebilirsiniz.

    yan kat

    Şimdi özel bir arayüz aracılığıyla site.com/signup/ adresiyle bir taraf oluşturalım ve ana klasörde, şablonumuzun şablonu yeni taraf- page-signup.php. "Kayıt" kelimesi benzersiz bir kimlikle değiştirilebilir.

    Yeni şablonun içinde, kayıt formunu görüntülemek için selena_network_signup_main() işlevini çağırmak gerekir.

    Lütfen tüm sürecin şablonlara bağlı olmadığını ve bunun yerine selena_network_signup_main() işlevini de çağıran kendi kısa kodunuzu oluşturabileceğinizi unutmayın.

    wp-signup.php ve wp-activate.php

    Şimdi bir kayıt formu oluşturuyormuşuz gibi fonksiyonların oluşturulmasına bir göz atalım. wp-signup.php ve wp-activate.php dosyalarını mu-plugings/selena-network/signup/ adresindeki WordPress kökünden kopyalayanlar için (ve bunları mu-plugins/selena-network'ün ortasına eklemeyi unutmayın) /signup/plugin.php) . Dosyalarla daha fazla manipülasyon daha da tutarlıdır ve uzun süre açıklanabilir; Sadece kendim üzerinde çalışmam gerekenleri anlatacağım ve projemin harici dosyalarını yayınlayacağım:

    1. Dosyanın üst kısmında, tüm gereksinim, hızlı tıklama işlevleri ve işlevlerin arkasındaki diğer kodlara bakı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şleviyle sarın ve koçanın üzerine global $active_signup yazın; .
    4. Gerekli alanlarda düzeni vlasnu olarak değiştirin.

    wp-activate.php içinde, yaklaşık olarak aynısını eklemeniz gerekir:

    1. Tüm kodu işlevlerle görüntüleyin, düzeni diğer işlevin etrafına sarın.
    2. Düzeni gerekli olan alanlarda değiştirin.

    wp-activate.php dosyası, eğik kaydın aktivasyon tarafı için düşünülür. Üçüncü bir kayıt tarafı olarak, bunun için özel bir şablon oluşturmanız gerekir, wp-activate.php dosyasındaki aynı çağrı işlevini kullanın.

    Nadsilaemo yaprak aktivasyonu

    Kayıt ofisi, oblikovy kaydının etkinleştirilmesi talebi ile sayfanın alınmasını zorlar. ms-functions.php dosyasındaki wpmu_signup_user_notification() işlevi, cym zapping ile ilgilenir. Її işlevi, kendi işleviniz için atanabilir. Bu işlevi değiştirmenin gerekli olmasının nedeni, eğik kaydın wp-activate.php adresinden etkinleştirilmesini zorlamanın gerekli olmasıdır. Bu işlevi, zaten yanlış olan ek wpmu_signup_user_notification filtresini kullanarak "kapatabilirsiniz" (bu yüzden kapatmayın, etkinleştirme sayfası iki, tamam, gerçekten iki farklı sayfa düzenlenecektir).

    İşlev Armyofselenagomez_wpmu_signup_user_notification($user, $user_email, $key, $meta = array()) ( // ... // wpmu_signup_user_notification() işlevi için kod wp_mail($user_email, wp_specialchars_decode($subject), $ ; return false; ) add_filter("wpmu_signup_user_notification", "armyofselenagomez_wpmu_signup_user_notification", 10, 4);

    Sonuç olarak, Selena konularındaki kayıt sayfası daha zengin ve düzenli görünmeye başladı.

    Visnovok

    İnternette başka yok doğru yol Ayrıca, bunu kendiniz nasıl yapabilirsiniz - Apache yönlendirmeleri, Java Script olmadan çalışmayan AJAX formları vb.

    Dosyaları dikkatli bir şekilde düzenlemenize ve tatillerde çok fazla ortalığı karıştırmamanıza saygı duyacağım, bu nedenle gelecekte, WordPress gibi wp-signup.php ve wp-activate.php dosyalarını değiştirmek, icabına bakmak daha kolay Kendinizi bir değişiklik için

    Kodun ortasında ne olduğunu anlayabilmem için diğer işlevlerin tüm açıklamalarının çıktı koduna hayret etmeyi unutmayın.

    Bonus. Spam gönderenlere karşı savunucu

    WordPress'teki en iyi siteleri bulun, genellikle çok sayıda spam kaydı alır. Botları filtrelemek için birkaç zihin yazabilirsiniz, genellikle bir parça zeka yaratmaya çalışmaya benzer 🙂 (Bu konuda uzman değilim apache özelleştirmesi bu yüzden kurallarım doğru olmayabilir).

    RewriteBase'de RewriteEngine / RewriteRule ^wp-signup\.php - RewriteRule ^wp-activate\.php - # BEGIN WordPress # Wordpress görünüm kurallarının kilitlenmesi gerekmez :) # ... # END WordPress

    PS Üçüncü şahıs konuşmalarının eylemlerini mümkün olduğunca ayrıntılı olarak açıklamaya çalışıyorum, eğer başlasaydım, bir saat boyunca herkesin birçok konuşmayı anlatması ve açıklaması mümkün oldu. Bu nedenle, yeni bir şey geliştirmek ve bilginizi genişletmek için diğer malzemeler üzerindeki benzer şekilde küçük tümevarımların geliştirilebileceğine saygı duyuyorum. RewriteRule girişleri düzenli satırlara sahiptir, pis koku katlanabilir değildir, örneğin ^ sembolü bir satırın kulağı anlamına gelir.

    APOTHEOZIS APOTHEOZIS (Yunanca apotheosis türü - yanmış); 1) Helenistik Yunanistan ve Antik Roma'da, egemen şeytanın, kahramanın, imparatorun, ilahi özün şafağının tanrılaştırılması. Rönesans döneminde fenomenin adı resimdeki, tiyatrodaki görüntüden aktarılmıştır. Bugünün biberiyesinin bir apotheosisi var - kahramanın yüceltilmesinin son bir müzikal veya dramatik sahnesi, türün ana fikrini plastik olarak ifade eden etkili bir "canlı resim". Tanrılaştırmanın biçimi (aynı zamanda tanrılaştırma saatinde iki kükreyen bir methiye niteliğindeki performansın yanı sıra) Batı Avrupa tiyatrolarında ve 16. - 18. yüzyıl Rus saray tiyatrosunda geliştirildi; aynı zamanda devrimci dönemlerin tiyatrolarında da gelişti - örneğin Fransa'da, 18. yüzyılda, Zhovtnevoy devriminden sonra Rusya'da. 2) Geniş anlamda - yüceltme, ihtişam, ister bireysel, ister podії, tezahür olsun.

    Modern Ansiklopedi. 2000 .

    Eş anlamlı:

    "APOTHEOOSIS" in diğer sözlüklerde ne olduğunu merak ediyorum:

    Kitabın

    Böl... eşanlamlılar sözlüğü

    BAYINKI, imm. Hedef. (çocuk). Uyku. meme ister misin? Yere yatın piçler. Ushakov'un Tlumachny sözlüğü. DM Ushakiv. 1935 1940 ... Ushakov'un Tlumachny sözlüğü

    Robity / robiti hikayeleri (güle güle). Jarg. movlyav. Servis aracı. Uyku. Maksimov, 21… Rus emirlerinin büyük sözlüğü

    Tahmin ediyorum. rozg. Uyku kampı hakkında (çocuğun movі chi rozmovі іz dіtmi büyüdüğü için). II int. rozg. Colisky şarkının bir bileşeni olarak Vykoristovuєtsya. Ephraim'in Tlumachny sözlüğü. T.F. Efremova. 2000... Efremova'nın modern kasvetli sözlüğü

    Hoşçakal- bai, ımm... Rusça yazım sözlüğü

    Hoşçakal- değişmezlik ... Rus Filmlerinin Yazım Sözlüğü

    mizh., funkt'ta. söyle bana. \u003d Bai Bai (II işareti) ... ansiklopedik sözlük

    Hoşçakal- Uluslararası; işlevde. söyle bana. = güle güle 2)… bagatioh viraziv sözlüğü

    Hoşçakal- ba/mürekkep/i, arasında... Biçimbirimsel yazım sözlüğü

    Kitabın

    --- Depo seçin --- Buffalo Grove IL 60089 ABD (Buffalo Grove IL 60089 ABD) 60035 P.O Box 723 №24 İstanbul(İstanbul,Gençtürk Cad.15, Birlik Han. k-5.d. 55 №1) İstanbul( Nişantaşı-Valikonağı cd-Şehit İsmet Armağan sk- No 3 / 17) Madrid 92200 Neuilly-sur-Seine Republica Moldova , Falesti(s.Fagadau) South Kensington(Bute caddesi) Adler(Tikhiy provulok 2, Kudepsta Mahallesi) Aktobe (st. Aktyubinskaya 47/2) Almetievsk (m. Almetyevsk, st. 13, ofis 306) Anapa (St. Terska 88, 3 üstte) Astrakhan (st. Komunistichna bud. 17, ofis 4) Atirau (m. Atirau, Azattik Ave. 42, ofis 206) Berdyansk (Zaporizhzhya bölgesi) Bişkek (m. Bişkek, Chui Ave. 32B alışveriş merkezi "Izumrud" ofisi C-5) Blagovishchensk (st. 575) Buguruslan (Chervonopraporna caddesi 47/2) Veliky Ustyug (metro istasyonu Vel. vul. Chervona, bud. 61 (2 yukarıda) şehir merkezi) Vladivostok (st. Svitlanska 147 ofis 2/4) Olgograd (Volgograd karayolu Aviatoriv 15 Depo 23) Dyurtyuli (St. Agidel, 4 kv.2) Yeysk (St. Karl-Marx 42/1) Yekaterinburg (içinde st. Pershotravneva 56, ofis 308) Yekaterinburg (St. Mamin-Sibiryaka 10, ofis 3) Ivanovo (Sheremetievskiy perspektifi, 85G, Business Center "Premium Plaza" 2 tepegöz, ofis 212) Izhevsk (Lenina 21, ofis 304) Forum") (Chapaeva 4 ind. 368501) Irkutsk (Irkutsk, Girska st. 4 (Karamel alışveriş merkezinden sipariş) ofis 407) Ishimbay (Zorge, 18 budinok) Yoshkar-Ola (Lenina Ave. 24v, ofis 318) Kazan 10, metro istasyonu "Kozyacha Sloboda" şöyle böyle st. Dekabristiv, 85 "B" 401) Kiev (st. Olevska 9 kv. Kostroma (Prospect Mira 51, ofis 15) Krasnodar (St. Chervona 124 ofis 302) Krasnoyarsk (pr. (Akushskіnogo 9v) Miass (vul. 30 rokiv VLKSM 85) Minsk (Korzhenevskogo): VDNG, st. Yaroslavska, 10, bina 4 ofis 10 6) Moskova (Simferopolsky boulevard) Moskova (Glazovsky provulok d.5, Sanatsal giriş , kapı zliv ve metro istasyonu: Smolensk-500m, Kropotkinska-1km., Park Kultury-1km.) Moskova (m. Çehovskaya, Pushkinskaya, Tverskaya. Pristrasny bulvarı, 6 bina 1, Dilovy Center, ofis 421) Moskova (m. Lobnya, Mayakovskogo st., 4A, TP1, Z havai, ofis 301) Moskova (metro istasyonu Molodijna.vulitsia Yartsevskaya budinok 27 bina 9 Sağlıklı yaşam merkezi "Chotiri Stikhiї ") Moskova (Chervona Presnya 38-45) Moskova (m. Moskova m. Leninsky umudu, Vavilova 9A, bina 6, ofis 10 B, 3 yukarıda) Moskova (m. Moskova (Moskova, st. Radyo budinok 5 stor 4.2 havai, 201 dolap (3 havai budinok'a mal olabilir)) Chovni setleri (Pushkina) st.Ş. Usmanova, 122 kb. 111 1 üzeri) Nalçik (m. Nalçik, st. Kirova 292a, 2 üzeri, ofis 6) Znahidka (st. Prikordonna d. 6, ofis (m. Gorkivska, st. 3, BC) "Nova Ploshcha", 2 üzeri, ofis 239) Nizhniy Tagil (Chervonoarmiyska d.42a yakınında, 3 ofis 4 üzerinde) Nizhniy Tagil (Nizhniy Tagil, st. Papanina 5, ofis 1, m.Kushva, st. Gornyakova 2/ 11) Mykolaiv (Ryumina vul. 5/1) Novorossiysk (Krasnodar Bölgesi st. Zolota ribka, 15) Novorosijsk (st. Murata Akhedzhak bud. 4) Novosibirsk (Vul, Zhovtneva 42 ofis 601, İş merkezi orientovno Lenina meydanı, Mayakovsky sineması) Novosibirsk (Gogol caddesi 33/1. "Markishna" metro istasyonuna 20 metre , alışveriş merkezi "on Gogol".) Novotroitska (st. 144 kv. 26) Novy Urengoy (druzhba microdistrict, budinok 4/3, kv. 183) Norilsk (Leninsky prospekt 47a office 79) Nur-Sultan (Astana) ( Beibitshilik 14 , BC Marden, ofis 708) Odesa (b) -r Fransız 60 zengin rehabilitasyon sanatoryumu "SARTUS") Generala Batkivshchina st., d56 kv60) Ören, ilk üstte, sağda.) Orsk (Lenina caddesi, 93) Pavlodar (71 Satpaeva st., ofis 107) Perm (Radyanska d.52, ofis 1) Perm (Druzhby budinok st., 34 ofis 305) Pit-Yakh (Microdistrict 5, budinok 5) P'yatigorsk (st. 3 ofis 209, 2 üstü) Samara (st. Novo-Sa) dova 106, ofis 804, asansörlü asansör, 8 top) St. Petersburg (metro: Vasileostrovskaya, Vasilevsky Adası 13. hat, 78, ofis 182) St. Petersburg (m. Dostoevska (5 metre) ve Volodimirska metrosu (300 metre) VOLODYMIRSKY PASAGE 3 yukarıda, merkezi giriş PERSH GALERİSİ, 19 Volodimirsky Ave. Alışveriş merkezi "ADMİRAL". Mala Morska caddesi, 4/1) St. Petersburg (m. Sinna, m. Sadova, m) Spaska 1 xv.pishki st. Efimova 1, üst 2, ofis 4, iş merkezi "Sinna 4", "Pivnich" kafeye giriş , ofis 29/2) Snizhinsk (st. Zababahina 19 a) Sochi (m. Sochi ko. Donska budinok 15.) Sochi (st. Radyanska 42 ofis 204) Stavropol (st. Lomonosov 21 ofis) 18) Sterlitamak (st. Khudaiberdina 85, 3) Surgut (vul. 30 rokiv Peremogi d.64) Tobolsk (m. Tobolsk, 6 mikro bölge, budinok 11) , ofis 39 (Komsomolsky umudu tarafından giriş)) Togliatti (40 rokiv Peremogi, d.50, ofis 212a, TD Veselka 1 üzeri) Tomsk (m. Tomsk caddesi Radyanska 84) Tüymazi (st. Michurina d.15 ofis 2) ) Tyumen (st. Gertsena 72 ofisi 214) Ulyanovsk (st. .Gorkogo 57 ofisi 213) Ufa (Verkhnetorgova meydanı, 6 (İş merkezi NESTERIV)) Habarovsk (Postisheva caddesi, 16 of. z 108) Khanti-Mansiysk (G. Khanty-Mansiysk, Aziz Karl Marx 15, 2 baş üstü. ) Çelyabinsk (pr. Peremogi 168, 3 baş, ofis 36.) Çerkessk (st. Lenina 101 ) Chita (Babushkina st., 104 ofis 425) Chishmi (Kiltseva 17) Chishmi (pr. DRUZH, 1B) İsviçre (Arosio via Terra Sotto, 1 6939) Çimkent (Kolgospna st. 47) Pivdenno-Sakhalinsk (Angarsky şerit 21) Yakutsk (Dzerzhinsky st. 8/3b) Yakutsk (Yakutsk) Yalta (Benbanka im Lenina, 5 SEC "Çeşme, 4 üstte) Yanaul (vul. Radyanska, bud. 23, ofis N 8 budivlya Berizka) Yaroslavl (57 Showroom) Yaroslavl (st. Chkalova bud. 2) m.Birsk Bashkortostan () ?>
  • © 2022 androidas.ru - Android hakkında her şey