Как создать свою логин-форму в Wordpress
Здравствуйте уважаемые читатели!
В этой статье поговорим о том как создать свою логин форму.
Для чего это нужно?
Давайте обратимся к статье о создании плагина на Wordpress (часть 2).
Кратенько перескажу ее содержимое:
- создание плагина;
- создание ссылки "Настройки" в списке плагинов;
- создание ссылки на страницу нашего плагина в админ-меню;
- создание плагина, который будет закрывать определенную страницу от просмотра незалогиненными пользователями. (Т.е. те пользователи которые не зарегистрированы у вас на сайте, или просто не вошли в свой профиль ( личный кабинет ) видеть содержимое страницы не будут, вместо него увидят сообщение которое мы зададим в опции нашего плагина).
Коснемся последнего пункта. А что если вместо сообщения которое увидят незалогиненые пользователи показывать форму для входа? Это очень несложно сделать. Примеров в Сети - масса.
Итак:
Согласно заданию нам нужно выводить форму только на указанной странице незалогиненным пользователям.
Фрагмент кода из предыдущей статьи:
function no_login_message_func( $content ) {
$message = '';
$out = $content;
if( is_page(49) && !is_user_logged_in() ) {
$out = get_option('no_login_message');
}
return $out;
}
add_filter( 'the_content', 'no_login_message_func' );
Что означает, если посетитель зашел на страницу с ID = 49 незалогиненным, то покажем ему сообщение которое мы задали в админ части, из нашей опции.
И вот подставим вместо сообщения нашу логин форму.
Для начала создадим функцию, которая позволит нам выводить форму при помощи шорткода:
И уже в предыдущей функции изменим код на:
Результат вы увидите в браузере.
О том, как получить список страниц и их ID, чтобы не вводить вручну в коде - поговорим в следующей статье!
И вот подставим вместо сообщения нашу логин форму.
Для начала создадим функцию, которая позволит нам выводить форму при помощи шорткода:
add_shortcode('my_plugin_login_form','my_login_form');
function my_login_form () {
return wp_login_form(array('echo'=>false,'form_id'=>'my_form'));
}
И уже в предыдущей функции изменим код на:
function no_login_message_func( $content ) {
$message = '';
$out = $content;
if( is_page(49) && !is_user_logged_in() ) {
$out = "".get_option('no_login_message')."
".do_shortcode('[my_plugin_login_form]')."
";
}
return $out;
}
add_filter( 'the_content', 'no_login_message_func' );
Результат вы увидите в браузере.

О том, как получить список страниц и их ID, чтобы не вводить вручну в коде - поговорим в следующей статье!