X
  • Дизайн та розробка сайту
  • Дизайн і створення сайтів. Розробка тем для WordPress. Створення Landing Page.
  • office@gnatkovsky.com.ua
  • @vgnat
  • Написати мені
Замовити послугу

Как добавить новое поле в профиль пользователя WordPress

Приклад
  • 2024-10-06
  • 7158 переглядів

  • Дизайн та розробка сайту

Доброго времени суток. 🙂

Сегодня опять будем работать с WordPress, а вернее дорабатывать его стандартный функционал. Если конкретно, то я покажу как добавить одно или несколько новых полей в профиль пользователя. У WordPress есть свои стандартные поля, но иногда их не хватает для некоторых проектов. В одном из моих последних заказов, для авторов статей, нужно было добавить их должность, чтобы потом вывести ее на странице автора.

Как добавить новое поле в профиль пользователя WordPress

Осуществить задуманное мы сможем с помощью фильтра user_contactmethods. Вам нужно просто добавить функцию в пользовательский файл функций - function.php. Если вы легко работаете с кодом WordPress, то добавляйте новый код, куда угодно, если же нет, то в самый конец перед закрывающим тегом php - ?>, если его нет, то просто в самый конец.

// Поле должность
add_filter('user_contactmethods', 'ved_user_contactmethods');
	function ved_user_contactmethods($user_contactmethods){
	$user_contactmethods['position_user'] = 'Должность';
	return $user_contactmethods;
}

По сути, все что вам нужно, в третей строке. Именно она и создает новое поле. В ней указан ключ - position_user и название Должность, которое выведется в настройках профиля. В итоге, на странице профиля вы увидите такое поле:

Новое поле в профиле

Просто добавить поле на страницу профиля не достаточно, нужно еще и вывести его на сайте. Делается это на странице автора, в файле author.php, ну или там, где у вас выводится информация об авторе. В месте где хотите видеть строку с данными поля, добавляете такую строку:

Данная строка добавляется только внутри цикла или на странице автора. В общем там, где есть смысл выводить информацию об авторе записи.

<?php the_author_meta('position_user'); ?>

Как видите, указывается ключ position_user и с помощью the_author_meta выведутся данные.

Таким самым образом, можно добавить несколько полей, код по сути тот же самый, просто добавляете строки с ключами и названиями, ну и вызываете потом данные в нужном месте.

add_filter('user_contactmethods', 'ved_user_contactmethods');
function ved_user_contactmethods($user_contactmethods){
  $user_contactmethods['position_user'] = 'Должность';
  $user_contactmethods['hobby_user'] = 'Хобби';
  return $user_contactmethods;
}

Как видите мы еще добавили и поле Хобби, с ключом hobby_user. Ключи и название можете задавать какие хотите, главное, чтобы они не были одинаковыми в разных полях, иначе будет ошибка. Ну и выводим так же, плюч, можете добавить комментарий:

<p>Должность: <?php the_author_meta('position_user'); ?></p>
<p>Хобби: <?php the_author_meta('hobby_user'); ?></p>

В данных примерах функции заключены в теги PHP для вставки в HTML код. Если в вашей теме везде используется PHP код, то можно без тегов, но используя правила PHP. Например так:

echo '<p>Должность: ';
echo the_author_meta('position_user');
echo '</p>';
echo '<p>Хобби: ';
echo the_author_meta('hobby_user');
echo '</p>';

Как видите, нет ничего сложного. С помощью данного метода, вы легко добавите нужную информацию, про авторов блога.

На этом все, спасибо за внимание. 🙂

Якщо Вам була корисна моя праця, можете фінансово підтримати сайт або відключити блокувальник реклами, що займе 2 хвилини :)

Хочу підтримати фінансово Хочу відключити блокувальник

Оцініть статтю
  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
Проголосовало: 6, в среднем: 5 из 5
Читайте також

Deprecated: Функція WP_Query викликана з аргументом, який вважається застарілим з версії 3.1.0! Вираз caller_get_posts застарілий. Використовуйте ignore_sticky_posts. in /var/www/vhosts/gnatkovsky.com.ua/gnatkovsky.com.ua/public/wp-includes/functions.php on line 6078