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

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

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

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

Сегодня опять будем работать с 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>';

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

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

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

Back to top