Більше результатів...

Загальні селектори
Тільки точні збіги
Шукати у заголовках
Шукати у контенті
Вибір типів постів
Фільтрувати за категоріями
FAQ
Hostenko
Натхнення
Відео уроки
Новини
Плагіни
теми
Уроки
Хакі

Якщо ви введете у пошуку "Як додати нове поле у ​​профілі користувача WordPress", то, швидше за все, ви знайдете всілякі приклади з десятками рядків коду, що дозволяють отримувати додаткову інформацію про користувачів під час реєстрації. Однак, якщо все, що вам потрібно - це додати, скажімо, одне нове поле з Twitter обліковим записом, є більш простий спосіб, як це зробити!

Фільтр user_contactmethods

Фільтр user_contactMethods дозволяє додавати нові та виключати існуючі контактні поля на сторінці профілю користувача. Головна перевага цього фільтра полягає в тому, що створення та оновлення нових полів контактної інформації лягає на плечі самого движка WordPress, а не через сторонні скрипти та плагіни.

inet.ws - Powerful VPS Hosting в США, Canada, UK та DE!

Давайте розглянемо приклад, у якому ми додамо 2 нових поля у Профіль користувача: це буде Twitter и Facebook. Просто додайте наступний код у ваш файл  functions.php:

add_filter('user_contactmethods', 'my_user_contactmethods');

function my_user_contactmethods($user_contactmethods){

  $user_contactmethods['twitter'] = 'Twitter Username';
  $user_contactmethods['facebook'] = 'Facebook Username';

  return $user_contactmethods;
}

Ось так виглядатиме контактна інформація у Профілі після внесених змін:

Як додати нове поле в Профіль користувача WordPress

Якщо ви хочете приховати деякі поля з контактної інформації, просто виключіть їх із масиву. Давайте, наприклад, приберемо поля AIM, Yahoo IM и Jabber / Google Talk:

function my_user_contactmethods($user_contactmethods){

  unset($user_contactmethods['yim']);
  unset($user_contactmethods['aim']);
  unset($user_contactmethods['jabber']);

  $user_contactmethods['twitter'] = 'Twitter Username';
  $user_contactmethods['facebook'] = 'Facebook Username';

  return $user_contactmethods;
}

В результаті вийде ось так:

Як додати нове поле в Профіль користувача WordPress

Щоб вивести в коді цю інформацію, просто використовуйте функцію get_user_meta:

echo get_user_meta(1, 'twitter', true);

У прикладі вище ми вивели обліковий запис Twitter для користувача з 1 ID. Аргумент правда у коді використаний у тому, щоб вивести значення як текст, а чи не як масив даних.

На цьому все. Сподіваюся, ця порада виявиться вам корисною.

Джерело: WP.tutsplus.com
inet.ws - Powerful VPS Hosting в США, Canada, UK та DE!
Олексій Шевченко
редактор wpcafe
Вивчає сайтобудування з 2008 року. Практикуючий вебмайстер, який спеціалізується на створенні сайтів на WordPress. Задати питання Олексію можна на https://profiles.wordpress.org/wpthemeus/

Коментарі до запису: 19

Fox:

Доброго дня!
Спробував, але натрапив на те, що functions.php два і в темі, і десь ще. У якій із них треба вставляти код фільтра, в яке краще місце, без будь-яких "//"?

WordPresso:

Ви можете вставити код у functions.php вашої теми, тоді при її активації буде застосована ця дія і зайві поля заберуться.

Ivan Klimov:

Добрий день!

Як додати довільне поле в профіль клієнта для вказівки знижки, а потім написати функцію, яка вичитає знижку із загальної вартості для кожного користувача окремо.

Суть, що можна було б окремим користувачам вказувати знижку товар, і коли користувач переглядатиме товар, що він бачив вже товар зі знижкою.
Спасибі за відповідь!

alexandr:

Доброго дня, для мене дуже актуальна ця тема, тому що намагаюся зробити повноцінний особистий кабінет. Але ось питання виникло. А як видалити будь-які непотрібні поля? Наприклад, поле «last name». У мене стоїть плагін Theme My Profile і версія wordpress 3.4.1! Намагався видалити непотрібні поля у [wp-admin/user-edit], але не допомогло! Я взагалі майже повний chainik у php та html але вже дещо починаю розуміти)

Adward Valeev:

Хотілося б знати, чи вирішили Ви це завдання? По-моєму, людству це не вдалося, принаймні гугл про це нічого не знає або я там забанен :-)

VRS:

dispay: none!important; - Forever! :)

Я його:

Як вставити в профіль інші елементи? наприклад контейнер у написі.

WordPresso:

Для цього потрібно редагувати конфігураційні файли в папці wp-admin. Це керівництво не допоможе.

Ілліча:

Ось Ви пишіть "echo get_user_meta(1, 'twitter', true);", де 1 - ID користувача. А можна якось зробити так, щоб ID вводилося для кожного користувача автоматично. Тобто у мене на сайті є 3 автори, для кожного з них я прописую Twitter-акаунти у профілі, і необхідно, щоб у пості конкретного автора прописувався саме його твіттер.

WordPresso:

Важко відповісти, але для цього є інші плагіни, які наприкінці кожного посту виводять блок з інформацією про автора. І там може бути вказано його твіттер та інші профілі. Подивіться цей урок: https://hostenko.com/wpcafe/tutorials/kak-dobavit-bolshe-dannyih-v-blok-ob-avtore-s-pomoshhyu-besplatnogo-plagina/

Ілля:

Дякую за підказку, але я знайшов рішення без використання плагінів)

Олексій:

Розкажіть, як це ви зробили?

Dmitriy Ko:

Добрий день. Дякую за статтю, використовував код з неї разом з Gravity Forms-тепер я можу створювати реєстраційні форми з індивідуальними полями в профілі.
Є питання - як вивести додаткові поля з профілю, які були додані завдяки вашій статті на сторінці "Користувачі", щоб можна було бачити їх, не заходячи в профіль кожного користувача.

WordPresso:

В уроці ж написано: Щоб вивести в коді цю інформацію користувача, просто використовуйте функцію get_user_meta:

Dmitriy Ko:

На жаль, я не знаю, де знаходиться код сторінки "користувачі" адмінпанелі. З пошуку не зміг знайти.

login2030:

Ось приклад виведення поля біографія, причому id підставляється динамічно

звіт про помилку (E_ALL);

$user = get_current_user_id();

$sql = "SELECT meta_value FROM wp_usermeta WHERE meta_key='description' AND user_id="$user'";

$result = mysql_query($sql);

$row = mysql_fetch_assoc($result);

echo $row['meta_value'];

Юрій:

Вставлю 5 коп. Виводити дані можна ще одним способом: echo the_author_meta('twitter');

Уроки WordPress:

Ось написав пост про розробку особистого кабінету, найближчим часом хочу доопрацювати статтю і можливо плагін напишу невеликий.

Якщо цікаво заходите, було б супер почути вашу думку та поради. А можливо вже є такий плагін, але я про це поки не знаю). Втім якщо є ідеї пишіть на сайті або в соціальній мережі.
http://wp-admin.com.ua/razrabotka-lichnogo-kabineta-wordpress/

Додати коментар або відгук