Я уже описывал способ вывода формы входа в любом месте блога. Есть еще один альтернативный способ вывода формы входа с помощью шорткода, который можно вставить в содержимое любого поста или страницы.
Шорткод использует встроенную функцию wp_login_form. Для создания шорткода откройте файл functions.php, и вставьте в него код:
add_action( 'init', 'my_add_shortcodes' ); function devpress_add_shortcodes() { add_shortcode( 'my-login-form', 'my_login_form_shortcode' ); }
Добавьте после него код вызова функции my_login_form_shortcode:
function my_login_form_shortcode() { if ( is_user_logged_in() ) return ''; return wp_login_form( array( 'echo' => false ) ); }
Теперь вы можете использовать шорткод [my-login-form]. Шорткод не требует указания никаких дополнительных параметров, однако их можно добавить, чтобы управлять названиями полей формы входа. Функция шорткода с параметрами будет выглядеть так:
function my_login_form_shortcode( $attr ) { if ( is_user_logged_in() ) return ''; /* Установки по умолчанию */ $defaults = array( 'label_username' => 'Имя', 'label_password' => 'Пароль' ); /* Замена настроек по умолчанию данными, которые вводит пользователь */ $attr = shortcode_atts( $defaults, $attr ); /* Установка значения 'echo' в 'false' для того, чтобы можно было и дальше использовать шорткод с настройками по умолчанию */ $attr['echo'] = false; return wp_login_form( $attr ); }
Теперь шорткод формы входа с аргументами выглядит так: Можно ли как-то изменить форму входа? Можно, если добавить в файл style.css оформление элементов формы: Пользуйтесь![my-login-form label_username="Введите имя" label_password="Введите пароль"]
/* Область поля ввода имени */
.login-username {}
/* Название поля ввода имени */
.login-username label {}
/* Поле ввода имени */
.login-username .input {}
/* Область поля ввода пароля */
.login-password {}
/* Название поля ввода пароля */
.login-password label {}
/* Поле ввода пароля */
.login-password .input {}
/* Область размещения чекбокса */
.login-remember {}
/* Название чекбокса */
.login-remember label {}
/* Чекбокс */
.login-remember input[type="checkbox"] {}
/* Область кнопки */
.login-submit {}
/* Копка */
.login-submit .button-primary {}