Текст-заполнитель для формы регистрации в WordPress

22 янв. 2014 г., 05:17:04
Просмотры: 15.5K
Голосов: 7

Я пытаюсь добавить текст-заполнитель в стандартную форму регистрации WordPress. В настоящее время я использую плагин Register Plus Redux. Как добавить этот текст-заполнитель в текстовые поля формы?

Мне нужно указать пользователям использовать свое имя и фамилию в качестве имени пользователя. Буду очень признателен, если кто-то сможет помочь.

0
Все ответы на вопрос 2
2
10

Еще один простой способ сделать это без необходимости добавления дополнительного скрипта — использовать функцию PHP str_replace.

$args = array(
    'echo' => false,
);

$form = wp_login_form( $args ); 

//добавляем плейсхолдеры
$form = str_replace('name="log"', 'name="log" placeholder="Имя пользователя"', $form);
$form = str_replace('name="pwd"', 'name="pwd" placeholder="Пароль"', $form);

echo $form;
11 янв. 2017 г. 01:41:04
Комментарии

Если я ничего не упускаю, это выглядит как идеальное решение, поскольку тогда вы не зависите от JS, что может привести к отсутствию плейсхолдеров, если у пользователя отключен JavaScript или возникла ошибка в коде. А если вы скрыли подписи, ваша форма в таком случае станет бесполезной.

Trevor Trevor
24 мая 2017 г. 07:41:10

Это ОПРЕДЕЛЁННО правильный подход, а НЕ вариант с JS

vimes1984 vimes1984
19 авг. 2018 г. 12:45:37
7

К сожалению, нет хуков/фильтров для изменения поля ввода в форме входа/регистрации, чтобы добавить к нему placeholder.

Но вы можете сделать это с помощью простого jQuery. Ниже я добавляю шаги.

Я не знаю, как этот плагин изменяет форму, но вы можете применить тот же подход для него. Ниже приведены коды, работающие для стандартной страницы входа/регистрации.

Сначала вам нужно создать js-файл. Я создал его в папке js активной темы и назвал custom.js.

Затем добавил следующую строку в этот файл.

/**
 * Пользовательский js файл.
 */

jQuery(document).ready(function(){
    jQuery('#user_login').attr('placeholder', 'Имя пользователя');
    jQuery('#user_email').attr('placeholder', 'Email пользователя');
    jQuery('#user_pass').attr('placeholder', 'Пароль пользователя');
});

Вышеуказанный код добавляет placeholder Имя пользователя, Email пользователя и Пароль пользователя к полям ввода user_login, user_email и user_pass соответственно. Вы можете изменить их по своему усмотрению.

Теперь вам нужно добавить/зарегистрировать этот js-файл, что можно сделать, добавив следующий код в файл functions.php вашей активной темы.

add_action( 'login_enqueue_scripts', 'wpse_login_enqueue_scripts', 10 );
function wpse_login_enqueue_scripts() {
    wp_enqueue_script( 'custom.js', get_template_directory_uri() . '/js/custom.js', array( 'jquery' ), 1.0 );
}
22 янв. 2014 г. 08:37:17
Комментарии

Марути, ТЫ СДЕЛАЛ МОЙ ДЕНЬ! Я не могу выразить, как я благодарен!!

mr_bythatmuch mr_bythatmuch
22 янв. 2014 г. 23:47:48

Могу я дать тебе, ну, золотой значок или что-то в этом роде? :)

mr_bythatmuch mr_bythatmuch
22 янв. 2014 г. 23:49:44

Рад, что помог, а насчёт значка — нет, ты не можешь дать мне значок, по крайней мере, WPSE пока не поддерживает такую функцию ;) но ты точно можешь проголосовать за мой ответ и принять его, чтобы я получил максимум 25 очков от тебя :)

Maruti Mohanty Maruti Mohanty
23 янв. 2014 г. 07:26:15

@mr_bythatmuch Если это решение вам помогло, примите его, чтобы оно помогло другим с такой же проблемой. как-работает-принятие-ответа

Maruti Mohanty Maruti Mohanty
29 янв. 2014 г. 09:41:43

Контент, достойный вознаграждения золотом, но не помеченный как правильный ответ. SMH.

Clarus Dignus Clarus Dignus
12 янв. 2016 г. 15:28:42

Для будущих читателей: плейсхолдеры не поддерживаются в <IE10. Учитывая, что 2 из каждых 10 ваших посетителей используют IE8/IE9, я рекомендую использовать полифилл-плагин.

Clarus Dignus Clarus Dignus
12 янв. 2016 г. 16:34:25

А что насчёт локализации поддержки? Думаю, вам стоит использовать wp_localize_script

emilushi emilushi
3 июн. 2016 г. 22:35:38
Показать остальные 2 комментариев