Изменение полей в форме регистрации WordPress — это задача, которая может быть выполнена более оптимально и безопасно с использованием хуков и фильтров, предоставляемых WordPress. Редактировать файлы ядра, такие как `wp-login.php`, не рекомендуется, так как это может привести к проблемам с обновлениями и совместимостью.
Чтобы изменить поля форм регистрации в WordPress, лучше всего использовать хуки. Ниже приведен пример того, как можно изменить поле "Имя пользователя" с помощью вашего собственного плагина или в файле `functions.php` вашей темы.
### Шаг 1: Создайте плагин или используйте `functions.php`
Если вы хотите создать плагин:
1. Создайте новую папку в `wp-content/plugins/`, например, `custom-registration-fields`.
2. Создайте файл `custom-registration-fields.php` внутри этой папки и добавьте следующий код:
```php
<?php
/**
* Plugin Name: Custom Registration Fields
* Description: Изменяет поля в форме регистрации пользователя.
* Version: 1.0
* Author: Ваше имя
*/
// Изменение поля "Имя пользователя" в форме регистрации
add_action('register_form', 'custom_register_form');
function custom_register_form() {
?>
<label for="wpschool_user_login"><?php _e('Username') ?><br />
<input type="text" name="wpschool_user_login" id="wpschool_user_login" value="<?php if (!empty($_POST['wpschool_user_login'])) echo esc_attr($_POST['wpschool_user_login']); ?>" size="20" tabindex="10" />
</label>
<?php
}
// Проверка нового поля перед регистрацией
add_action('register_post', 'custom_register_post', 10, 3);
function custom_register_post($username, $email, $errors) {
if (empty($_POST['wpschool_user_login']) || !is_string($_POST['wpschool_user_login'])) {
$errors->add('wpschool_user_login_error', __('<strong>ERROR</strong>: Вы должны ввести имя пользователя.'));
} else {
$username = sanitize_user($_POST['wpschool_user_login']);
}
}
// Сохранение нового поля в базе данных
add_action('user_register', 'custom_user_register');
function custom_user_register($user_id) {
if (!empty($_POST['wpschool_user_login'])) {
update_user_meta($user_id, 'wpschool_user_login', sanitize_text_field($_POST['wpschool_user_login']));
}
}
```
### Шаг 2: Активируйте плагин
Перейдите в панель управления WordPress, на вкладку "Плагины" и активируйте созданный вами плагин.
### Объяснение кода:
- `custom_register_form()` — добавляет новое поле "Имя пользователя" к форме регистрации.
- `custom_register_post()` — проверяет, было ли новое поле заполнено, и добавляет ошибку, если оно пустое.
- `custom_user_register()` — сохраняет значение нового поля в метаданных пользователя.
### Примечание
- Таким образом, вы избегаете изменения ядра WordPress и используете стандартные механизмы платформы.
- Этот код можно дополнительно адаптировать под ваши требования, такие как добавление проверки уникальности имени пользователя или дополнительных полей.
Помните, что всегда следует делать резервную копию перед внесением изменений, особенно если вы редактируете код.