Не редко возникает необходимость добавить в профиль пользователя одно или более дополнительных полей. К примеру, это может быть полезно для указания ссылок на социальные сети или любой другой важной информации о пользователе.
Для добавления новых полей в профиль пользователя вам потребуется использовать функции WordPress и немного кода. Обычно это делается с помощью хуков show_user_profile и edit_user_profile для отображения дополнительных полей и хука personal_options_update для сохранения данных.
Например, чтобы добавить поле для ссылки на Instagram, вы можете использовать следующий код:
function my_custom_user_profile_fields($user) {
?>
Дополнительная информация
Введите ссылку на ваш Instagram.
Этот код добавляет новое поле в профиль пользователя и сохраняет его значение при обновлении профиля. Не забудьте протестировать код на локальной среде или резервной копии вашего сайта, прежде чем внедрять его на рабочем сайте.
Также для упрощения процесса можно использовать плагины, такие как User Meta или Profile Builder, которые предоставляют интуитивно понятный интерфейс для управления пользовательскими полями.
Как добавить новое поле в Профиль пользователя WordPress?
Существует несколько подходов для решения данной задачи, включая специализированные плагины. В данном случае мы воспользуемся стандартными инструментами, доступными в системе WordPress. Для добавления и удаления полей в профиле пользователя предусмотрен специальный метод — фильтр.
Если вам не знакомо редактирование functions.php, вы можете использовать плагин ProFunctions для упрощения процесса.
Теперь в указанный файл следует добавить следующий код на языке PHP:
function site_add_fields_user_profile( $user_contactmethods ) {
$user_contactmethods['twitter'] = 'Twitter';
$user_contactmethods['facebook'] = 'Facebook';
return $user_contactmethods;
}
add_filter( 'user_contactmethods', 'site_add_fields_user_profile' );
После выполнения этого кода на странице профиля пользователя в разделе Контакты появятся два новых поля, которые мы добавили.

Для отображения значений этих новых полей на страницах вашего сайта вам необходимо использовать следующий код:
// Вывод значения поля Twitter echo get_user_meta(1, 'twitter', true); // Вывод значения поля Facebook echo get_user_meta(1, 'facebook', true);
* Учтите, что Facebook признан экстремистской организацией и его деятельность запрещена на территории Российской Федерации.
Помимо добавления полей, вы также можете настроить видимость и обязательность их заполнения. Например, используя JavaScript либо дополнительно настраивая роли пользователей, вы можете ограничить доступ к определённым полям, требуя их заполнения только от определённых групп пользователей.
Чтобы сделать новые поля обязательными для заполнения, вы можете добавить дополнительную проверку при сохранении данных пользователя. Это делается с помощью экшена personal_options_update:
function site_save_user_profile_fields($user_id) {
if ( !current_user_can('edit_user', $user_id) ) {
return false;
}
update_user_meta($user_id, 'twitter', $_POST['twitter']);
update_user_meta($user_id, 'facebook', $_POST['facebook']);
}
add_action('personal_options_update', 'site_save_user_profile_fields');
Кроме того, для большей гибкости работы с профилем пользователя, вы можете использовать такие плагины как ACF (Advanced Custom Fields), которые предоставляют возможность простого создания и управления произвольными полями без необходимости написания кода. Это может быть полезно, если требуется добавить больше полей или изменить их настройки.
Методы добавления дополнительных данных: плагин или код?
Выбор между установкой плагина и использованием кода зависит от потребностей проекта и уровня ваших навыков программирования. В общем, для большинства пользователей проще и быстрее воспользоваться плагинами, такими как Advanced Custom Fields или User Meta Pro.
Плагины предлагают разнообразные готовые решения. Установив плагин, вы получите интуитивно понятный интерфейс для настройки нужной функциональности без единой строки кода. При этом создаётся возможность для дальнейшего расширения функционала с помощью дополнительных модулей.
Использование кода обеспечивает полный контроль над реализацией. Например, можно использовать хуки `add_action` и `add_filter` для интеграции функций. Это позволяет избежать зависимости от сторонних разработчиков и увеличивает производительность сайта.
Важно помнить, что использование плагинов может замедлять загрузку, если на сайте установлено много из них.
Вот пример кода, который добавляет поле для ввода телефона в администрацию:
add_action('show_user_profile', 'add_phone_field');
add_action('edit_user_profile', 'add_phone_field');
function add_phone_field($user) {
?>
Дополнительная информация
|
Введите номер телефона. |
Функция добавляет поле к профилю, но не завершает процесс. Необходимо сохранить значение после обновления данных. Это требует дополнительных хуков, что усложняет решение для тех, кто не знаком с кодом.
- Плагины:
- Легкость установки
- Готовые шаблоны и функционал
- Но возможны конфликты и замедление
Использование кода требует больше времени и усилий, но предлагает чистое и оптимизированное решение. Сконцентрируйтесь на том, что важно именно для вашего проекта: скорость, надежность или быстрота внедрения.