Как да създадете своя собствена страница за регистрация в WordPress за многостранна - списание WP

Начало → Разни → Как да създадете своя собствена страница за регистрация в WordPress Многосайтово

Многосайтово режим ви позволява да използвате една и съща инсталация на WordPress на множество сайтове едновременно. В допълнение, всеки сайт получава своя собствена маса в базата данни с уникален префикс.

В режим на WordPress Многосайтово, ядрото започва да се държи малко по-различно и когато щракнете върху връзката WP-login.php? Action = регистър ще се пренасочат към WP-signup.php. Това е страницата за регистрация на вашата мрежа, която по подразбиране трябва да WordPress.

Как да създадете своя собствена страница за регистрация в WordPress за многостранна - списание WP

Страницата за регистрация по подразбиране

Как да създадете своя собствена страница за регистрация в WordPress за многостранна - списание WP

Настройки на мрежата в режим Многосайтово

Повечето от страницата за вход не изглежда много добре. Много теми с помощта на CSS-рамки, например, първоначално зареждане, както и свои специфични класове на стила на различните елементи на страниците, така че е трудно да се напише една единствена HTML, който ще отговаря на всички.

Но не се отчайвайте, ако страницата изглежда разхвърлян. Файл WP-signup.php голямо нещо в началото, когато няма време да се работи всеки детайл на сайта - може да се съсредоточи върху други, по-важни страници и съдържание.

Основният сайт на мрежа

По подразбиране, WordPress отваря страницата за регистрация (WP-signup.php) в мрежата на главен домейн (уебсайт). Въпреки това, можете да създадете страница за регистрация за всяка мрежа сайт, дори ако те имат различни домейни и теми.

Ние считаме, че случаят, когато всички сайтове в мрежата с помощта на една тема, но всеки един от тях има страницата за регистрация. Сайтове различават по език (английски и български), така че страницата за регистрация, ще бъдат показани в "родния" езика на сайта. Ако сайтовете използват различни теми и всичко ще зависи от това какво точно тази тема, независимо дали това е същото оформление (различна ситуация, която може да ви настоява да обедини всички свои теми), подходящ или необходимо да се разработи отделни страници.

алтернатива functions.php

Functions.php файла познато на много потребители на WordPress от събития и филтри. с които е много лесно да се правят промени. В нашия случай, като се има предвид факта, че функцията за регистрация е предназначена за множество сайтове, че има смисъл да го приведе към МУ-ин.

Какво е МУ-ин?

MU-плъгини (трябва да използвате Plugins) са заредени, когато отворите някоя мрежа сайт. Те не могат да забраните или разрешите в административната част на WordPress, те винаги работят. Трябва да се отбележи, че МУ-ин се зареждат по-рано от обичайното плъгини, теми и WordPress за пълно натоварване на ядрото, така наричаме някои функции може да доведе до фатални грешки в PHP.

Тази "ранен" Търсене има своите предимства. Така например, в рамките на който и да е тема, която не може да се придържат към някои от събитията от приставки, които се задействат преди functions.php изтегляне.

Погледнете в голямата картина за изтегляне на WordPress и настъпване на събития, може да бъде на действие страница за справка в Кодекса.

Редът на файлове

MU-ина може да съдържа произволен брой файлове и структурата на който ще изглежда логично. Аз се придържаме към грубо йерархията:

В трансфери load.php файлове и да се свържете с всички необходими "плъгини":

Вътре Селена-мрежа директория съдържа папка плъгини. Всяка от тях има своя plugin.php. които се свързват в load.php. Това дава гъвкавост и възможност за незабавно забраняване и разрешаване на отделни компоненти на вашия проект, в случай на авария.

страницата за регистрация

След като приключва с това къде и как ние ще напишете кода, можете да започнете да създавате страницата за регистрация.

Пренасочване към съответната страница за вход

WordPress да знаете за нашата нова страница за регистрация и пренасочване тя е произведена по него, когато щракнете върху връзката "Регистрация", се използва wp_signup_location филтър. Той може да се намери в рамките на WP-login.php и е отговорен за пренасочване по подразбиране за WP-signup.php.

Както вероятно си спомняте, на страницата за регистрация по подразбиране се отваря на основната мрежа достояние. Ето защо network_site_url () се използва тук.

Функционално WP-signup.php

WP-signup.php файл съдържа голям брой функции и код. За да видите цялата картина, можете да използвате код за сгъване. Като общо правило, на английски се нарича «код сгъване».

Как да създадете своя собствена страница за регистрация в WordPress за многостранна - списание WP

съдържанието на файла WP-signup.php

В началото на файла, от 1 до 80 линия (във версия 4.1.1), направени на различни проверки и показва на страницата "Старт" с помощта get_header ().

По-нататък заявява набор от методи и преди да започнем да работим с тях, е необходимо да се разбере какво всяка функция прави. Вътре, много от тях често се използват други функции с wpmu_ префикс. те са обявени в WP-включва / MS-functions.php файл. Този раздел е трудно да се разбере, без да виждат кода себе си. По-долу е кратко описание на основните функции в случай, че срещнете трудности.

В долната част на файла WP-signup.php (от линията 646 във версия 4.1.1) основната логика на страницата за регистрация, която използва всички от описаните по-горе методи. Тази част от кода не се тегли на функцията. В края причинени get_footer ().

Копие функционалност WP-signup.php

На следващо място, как да копирате WP-signup.php ще бъдат описани в МУ-ина и за изменение на "вилицата". Може би това не може да изглежда като най-правилния начин. Вместо това, можете да напишете от нулата функциите за тестване и изходни форми, използващи класове вместо обичайните функции. По мое мнение в WP-signup.php вече разполагате с цялата необходима логиката на нашата страница, може да направи само малки промени.

При подобряването WordPress от време на време и промени WP-signup.php. но това не означава, че с всяко ново издание ще трябва да синхронизирате своя "вилица". Функция вътре WP-signup.php същество участва само на HTML изхода, валидиране на данни, създаване на потребителски профили и сайтове, участващи в дейности с wpmu_ префикс. декларирани в MS-functions.php.

Ние ще напише функция, която ще се отпечата на регистрационната форма на страницата. За да направите това, копирайте WP-signup.php на WordPress корен мю-plugings / Селена-мрежа / регистрация /. Свържете го в ц-приставки / Селена мрежа / регистрация / plugin.php).

Махни от началото на копиран файл, всички те изискват и ненужното изпитване. Във версия 4.1.1 всичко е кодът от 1 до 80 ред.

Сега ние сме готови да се създаде основната функция за формуляр за регистрация. За да направите това, всичко, логиката от линията 646 до самия край на файла ще се премести на име на функция в selena_network_signup_main на. В края премахнете две допълнително затваряне

(Линии 722 и 723), както и предизвикателство get_footer ().

В новосъздадената selena_network_signup_main () в началото ние заявяваме глобална променлива active_signup. който се използва от всички други методи за този файл. И добавяне на повикване before_signup_form събития. ние сме отстранени от самото начало на файла.

Сега остава само да промените оформлението на всички места, където е необходимо и регистрация страница е готова.

Формуляр за регистрация

Вторият вариант - да се създаде дете тема шаблон страница директория страница signup.php. Вместо думата «регистрация» Можете да използвате уникалния идентификационен номер, даден на страницата. Вътре в шаблона, добавете необходимото оформлението и да направи selena_network_signup_main повикване () на правилното място.

В резултат на моята страница регистрация започна да изглежда много по-добре и по-чист.

Как да създадете своя собствена страница за регистрация в WordPress за многостранна - списание WP

Собствен страницата за регистрация в WordPress Многосайтово

страница за активиране

За оттеглянето на мястото на активиране е отговорен WP-activate.php файл, намиращ се в главната директория на WordPress. WP-activate.php, можете също така да промени изцяло. Процесът е подобен на това, което направихме за WP-signup.php.

Как да създадете своя собствена страница за регистрация в WordPress за многостранна - списание WP

страница за активиране в WordPress Многосайтово

Копирайте файла WP-activate.php да си MU-ин и да го свърже с мю-плъгини / Селена-мрежа / регистрирането в / plugin.php.

Премахване на всички излишни изпитвания и се изисква - 1-69 линия в WordPress 4.1.1. В края на разговора премахнете get_footer (). Ляв за прехвърляне на съдържанието selena_network_activate_main функция ().

Интересно е да се отбележи, че тук, преди да изтеглите WordPress (WP-load.php) обявен WP_INSTALLING постоянна. Присъствието му прави WordPress не се зарежда плъгини.

Както е случаят с регистрацията на страница остава само да се определи оформление, където това е необходимо. Можете също да промените текстови съобщения, показвани (в този случай, не забравяйте да добавите текст домейн на техните MU-ина във всички функции и преводачи, по подразбиране не се инсталира навсякъде).

Попълненият функция може да се използва за предварително създадена страница чрез кратък номер или отделен шаблон в дъщерното темата.

Как да създадете своя собствена страница за регистрация в WordPress за многостранна - списание WP

Собствен активиране страница в WordPress Многосайтово

След това, в зависимост от функцията, наречена wpmu_signup_user _notification () или wpmu_signup_blog _notification (). И двете функции имат подобна функционалност - генериране и изпращане на имейл с линк за активиране, но имат различни аргументи. И в двата случая има филтри за "прихващане" на събитието.

Остава само да пиша, работещи с тях в рамките на който да изпраща съобщения чрез wp_mail (). но в крайна сметка е задължително да дават неверни. за WordPress не изпрати имейл за активиране на два пъти - един е ваш, а другият - Стандартният имейл с линк към WP-activate.php.

Ако изпратите електронна поща чрез SMTP-сървър или броя на регистрациите е много голяма, трябва да мисля за това как не трябва да се изпрати писмото веднага. Вместо това, можете да добавите Cron-задачи с WordPress Cron.

Близо достъп до WP-signup.php и WP-activate.php

Създайте своя собствена страница за вход и активиране, може да се наложи да затвори "оригинали". Например, ако страницата за регистрация има допълнителни полета, които са необходими, за да запълни. Също така, много сайтове WordPress са изложени на спам регистрации.

За да реши два проблема в една стъпка можете да попитате Apache да даде 404 в случай на опити за отваряне на тези страници. За да направите това, трябва да се регистрирате само няколко допълнителни RewriteRule във файла си конфигурация или .htaccess.

заключение

Поради тази и много други "проблеми", свързани с WordPress в интернет има много решения. Например, за да се създаде страница, за да се регистрират и да активирате някои от тях предлагат да се пренапише оригиналния WP-signup.php и WP-activate.php. Тя не трябва да се направи, тъй като в случай на актуализация WordPress, ще загубите всички промени, направени в файловете, както и не може да се провери целостта на ядрото с помощта на WP-CLI.

Развитието на всякакви допълнения, теми или решения трябва да отделите малко време, опитвайки се да се справят с това, което се случва вътре WordPress. За да направите това, има много полезни инструменти за отстраняване на грешки.

За да зададете автоматично различни роли на новите потребители, можете да използвате плъгин Многосайтово Ръководството на потребителя.

И същия въпрос за работещи в рамките на който да се изпращат съобщения чрез wp_mail () - те просто мю-плъгини?

Всичко това функционалност, както казах по-горе Константин, по-добри мю-плъгини трябва да имате, все пак, ако по някаква причина, то е по-удобно в темата, че е възможно и там (например, темата е настроен за всеки един отделен сайт). Как най-добре да се организират файловете в папка мю-плъгини или тема, които вече са на свобода на действие на разработчика. Сложих в /selena-network/signup/plugin.php. Това вероятно не е "правилната" решение. Защото можете да пишете всичко това с помощта на класовете, а не просто обикновен функции (това е сложно). Можете да използвате и композитора и след това на мястото на файловете, също е различно е, например, с помощта на стандартни PSR-4 и autoloaders.

Но всичко това е до голяма степен от крайната преценка на възложителя, защото аз съм толкова много различни плъгини и теми видят навсякъде, който го иска и който пише. Разбира се, че е по-добре да следват стандартите или някаква друга логика за един месец можех да разбера, където всичко беше. И новият разработчик не вижда код по-сива.

И още един въпрос - за различните роли регистрирани. Системата е създал различни роли и потребители за регистрация, за да изберете роля за себе си - формуляр за регистрация е генерирана тема. Сега, когато съм създал моята регистрация страница, за да се регистрирате за конкретен сайт мрежа - изборът на ролите не е налице, има само едно поле потребителско име и имейл адрес, което е разбираемо. Как може да донесе нова форма на потребителски роли, за да избирам?

Веднъж седмично, но всичко ново за WordPress и няма спам!