Как отобразить форму регистрации пользователя WordPress (форма, которая отображается на странице «www.mywebsite.com/wp-register.php») в начале моего блога?
Я настроил регистрационную форму. Но не знаю, как вызвать эту форму на главной странице. Любая поддержка будет очень полезна.
Заранее спасибо. :)
registration
forms
bueltge
источник
источник
Ответы:
Процесс включает в себя 2 этапа:
Есть 3 разных подхода, которые приходят мне в голову, чтобы показать интерфейс:
Для этого ответа я буду использовать последний. Причины:
1: построить URL
Всем нам известно, что форма регистрации по умолчанию на сайте WordPress часто является целью для спамеров. Использование пользовательского URL-адреса помогает решить эту проблему. Кроме того, я хочу также использовать переменную url, то есть URL формы регистрации не должен быть всегда одинаковым, это усложняет жизнь спамерам. Трюк делается с использованием одноразового номера в URL:
С помощью этих функций легко отобразить в шаблонах ссылку на регистрационную форму, даже если она динамическая.
2: Распознать URL, первый пень
Custom_Reg\Custom_Reg
классаТеперь нам нужно распознать URL. Для начала я начну писать класс, который будет закончен позже в ответе:
Функция просмотра первой части URL после
home_url()
и, если она совпадает с нашим nonce, возвращает TRUE. эта функция будет использоваться для проверки нашего запроса и выполнения необходимых действий для отображения нашей формы.3:
Custom_Reg\Form
классСейчас я напишу класс, который будет отвечать за генерацию разметки формы. Я также буду использовать его для сохранения в свойстве пути к файлу шаблона, который должен использоваться для отображения формы.
Класс генерирует разметку формы, зацикливая все поля, добавляя вызывающий
create
метод на каждое из них. Каждое поле должно быть экземпляромCustom_Reg\FieldInterface
. Дополнительное скрытое поле добавлено для одноразовой проверки. Метод формы по умолчанию 'POST', но он может быть установлен на 'GET', используяsetVerb
метод. После создания разметка сохраняется в$form
свойстве объекта, которое отображаетсяoutput()
методом, подключенным к'custom_registration_form'
крючку: в шаблоне формы просто вызовdo_action( 'custom_registration_form' )
выведет форму.4: шаблон по умолчанию
Как я уже сказал, шаблон для формы может быть легко переопределен, однако нам нужен базовый шаблон в качестве запасного варианта. Я напишу здесь очень грубый шаблон, скорее подтверждение концепции, чем реальный шаблон.
5:
Custom_Reg\FieldInterface
интерфейсКаждое поле должно быть объектом, который реализует следующий интерфейс
Я думаю, что комментарии объясняют, что должны делать классы, реализующие этот интерфейс.
6: Добавление некоторых полей
Теперь нам нужно несколько полей. Мы можем создать файл с именем 'fields.php', в котором мы определяем классы полей:
Я использовал базовый класс для определения реализации интерфейса по умолчанию, однако можно добавить очень настраиваемые поля, непосредственно реализующие интерфейс или расширяющие базовый класс и переопределяющие некоторые методы.
На данный момент у нас есть все для отображения формы, теперь нам нужно что-то для проверки и сохранения полей.
7:
Custom_Reg\Saver
классЭтот класс имеет 2 основных метода: один (
validate
), который зацикливает поля, проверяет их и сохраняет полезные данные в массив, второй (save
) сохраняет все данные в базе данных и отправляет пароль по электронной почте новому пользователю.8: Использование определенных классов: окончание
Custom_Reg
классаТеперь мы можем снова работать над
Custom_Reg
классом, добавляя методы, которые «склеивают» определенный объект и заставляют их работатьКонструктор класса принимает экземпляр
Form
и один изSaver
.init()
метод (с использованиемcheckUrl()
) просматривает первую часть URL-адреса послеhome_url()
, и, если он совпадает с правильным одноразовым номером, он проверяет, была ли форма уже отправлена, если используетSaver
объект, он проверяет и сохраняет данные пользователя, в противном случае просто распечатывает форму ,init()
Метод также запускает хук действия,'custom_reg_form_init'
передавая экземпляр формы в качестве аргумента: этот хук должен использоваться для добавления полей, для настройки пользовательского шаблона, а также для настройки метода формы.9: собрать вещи вместе
Теперь нам нужно написать основной файл плагина, где мы можем
Custom_Reg
класса и вызоваinit()
метода с использованием достаточно раннего хукаТак:
10: пропущенные задания
Теперь все сделано. Нам нужно только настроить шаблон, возможно, добавив в нашу тему специальный файл шаблона.
Таким образом, мы можем добавлять определенные стили и скрипты только на пользовательскую страницу регистрации.
Используя этот метод, мы можем поставить в очередь некоторые js-скрипты для обработки проверки на стороне клиента, например, этот . Разметка, необходимая для работы этого скрипта, может быть легко обработана путем редактирования
Custom_Reg\BaseField
класса.Если мы хотим настроить регистрационное электронное письмо, мы можем использовать стандартный метод, и, сохраняя пользовательские данные в мета-формате, мы можем использовать их в электронном письме.
Последняя задача, которую мы, вероятно, хотим реализовать, - запретить регистрацию по умолчанию, просто:
Все файлы можно найти в Gist здесь .
источник
TLDR; Поместите следующую форму в вашу тему, то
name
иid
атрибуты являются важными:Я нашел отличную статью Tutsplus « Создание оригинальной формы Wordpress с нуля» . Это тратит довольно много времени на стилизацию формы, но имеет следующий довольно простой раздел о необходимом коде WordPress:
Редактировать: я добавил дополнительный последний бит из статьи, чтобы объяснить, куда поместить вышеупомянутые фрагменты кода - это просто форма, так что он может перейти в любой шаблон страницы или боковую панель или сделать из нее шорткод. Важный раздел
form
содержит приведенные выше фрагменты и важные обязательные поля.источник
wp-login.php?action=register
страницуВ этой статье вы найдете большое руководство по созданию собственных форм регистрации / входа / восстановления пароля для внешнего интерфейса.
или если вы ищете плагин, то я использовал их раньше и могу порекомендовать их:
источник
Некоторое время назад я создал веб-сайт, который отображал индивидуальную регистрационную форму на внешней стороне. Этот сайт больше не работает, но вот несколько скриншотов.
Вот шаги, которые я выполнил:
1) Активируйте возможность для всех посетителей запрашивать новую учетную запись через Настройки> Общие> Параметр членства. Страница регистрации теперь отображается по адресу /wp-login.php?action=register.
2) Настройте регистрационную форму так, чтобы она выглядела как интерфейс вашего сайта. Это более сложно и зависит от темы, которую вы используете.
Вот пример с двадцать тринадцатью:
Затем измените таблицу стилей темы, чтобы форма отображалась так, как вы хотите.
3) Вы можете дополнительно изменить форму, настроив отображаемые сообщения:
4) Если вам нужна внешняя форма регистрации, вы, вероятно, не захотите, чтобы зарегистрированные пользователи видели бэкэнд при входе в систему.
Есть много шагов, но результат здесь!
источник
Намного проще: используйте функцию WordPress, которая называется
wp_login_form()
( страница Кодекса здесь ).Вы можете создать свой собственный плагин, чтобы использовать шорткод на своих страницах:
Все, что вам нужно сделать, это оформить форму на веб-интерфейсе.
источник
Если вы открыты для использования плагинов, я уже использовал надстройку «Регистрация пользователей» для Gravity Forms, она работала очень хорошо:
http://www.gravityforms.com/add-ons/user-registration/
Редактировать: я понимаю, что это не очень подробное решение, но оно делает именно то, что вам нужно, и является хорошим решением.
Изменить: Чтобы расширить мой ответ далее, надстройка «Регистрация пользователя» для гравитационных форм позволяет сопоставить любые поля в форме, созданной с помощью гравитационных форм, с пользовательскими полями. Например, вы можете создать форму с именем, фамилией, адресом электронной почты, веб-сайтом, паролем. После отправки надстройка сопоставит эти входные данные с соответствующими пользовательскими полями.
Еще одна интересная вещь - вы можете добавлять любых зарегистрированных пользователей в очередь на утверждение. Их учетные записи будут создаваться только после утверждения администратором.
Если приведенная выше ссылка не работает, просто Google "Регистрация пользователя для Gravity Forms"
источник