Webbell » WordPress хаки и советы » Дополнительные поля в профилях пользователей
Правила Контакты Чтение RSS

Дополнительные поля в профилях пользователей

У нас вы можете скачать бесплатно Дополнительные поля в профилях пользователей .

Не пропустите комментарии к Дополнительные поля в профилях пользователей.
Данный материал предоставлен сайтом Webbell.ru исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Дополнительные поля в профилях пользователей

Существует ряд плагинов для WordPress, с помощью которых можно расширить возможности обычной регистрации на сайте. Но не всегда бывает рационально устанавливать кучу плагинов, особенно, если вам необходимо добавить одно-два дополнительных поля. Да, гораздо удобнее установить плагин, но они будут дополнительно нагружать ваш блог. В таком случае, лучше использовать метод, который мы рассмотрим в этой статье. Он заключается в редактировании файла шаблона functions.php.

Для того, чтобы в профиль пользователей добавились дополнительные поля, нужно открыть файл шаблона functions.php и добавить туда следующий фрагмент кода:
 add_action('show_user_profile', 'show_my_profile_fields');
add_action('edit_user_profile', 'show_my_profile_fields');
 function show_my_profile_fields($user) { ?>
<h3>Дополнительные данные</h3>
<table class="form-table">
  <tr>
    <th><label for="twitter">Twitter</label></th>
      <td>
      <input type="text" name="twitter" id="twitter" value="
      <?php echo esc_attr(get_the_author_meta('twitter', $user->ID)); ?>" 
      class="regular-text" /><br />
      <span class="description">Укажите ваш логин в Twitter
      </span>
      </td>
  </tr>
  <tr>
      <th><label for="icq">ICQ</label></th>
      <td>
      <input type="text" name="icq" id="icq" value="
      <?php echo esc_attr(get_the_author_meta('icq', $user->ID)); ?>" 
      class="regular-text" /><br />
      <span class="description">Укажите ваш ICQ номер.</span>
      </td>
  </tr>
</table>
<?php } 

С помощью этого кода, появятся дополнительные поля для Twitter и ICQ в пользовательских профилях. Точно так же можно добавить любые другие поля. Но учтите, что вы сможете только добавить поля в профиль, а сохранения значений не будет происходить. Для того, чтобы сохранить значения, нужно добавить следующий код в functions.php:
 add_action('personal_options_update', 'save_my_profile_fields');
add_action('edit_user_profile_update', 'save_my_profile_fields');
 function save_my_profile_fields($user_id) {
	if ( !current_user_can( 'edit_user', $user_id ) )
		return false;
	update_usermeta($user_id, 'twitter', $_POST['twitter']);
	update_usermeta($user_id, 'icq', $_POST['icq']);
}

В итоге у вас имеются дополнительные параметры в профиле, причем полностью работающие. Это вполне просто сделать, не загружая ресурсы работой дополнительных плагинов. Но возникает вопрос: как использовать эту информацию из дополнительных полей на сайте? Для этого нужно добавить в functions.php еще один фрагмент кода:
 function my_author_box() { ?>
  <div class="author-profile vcard">
      <p class="author-name"><?php echo get_avatar(get_the_author_meta('user_email'), '16'); ?>
      Автор поста: <?php the_author_posts_link(); ?></p>
       <?php if (get_the_author_meta('twitter')) { ?>
          <p class="twitter">
            <img src="http://www.wordpressplugins.ru/wp-content/themes/wpplugins/images/twitter.png" width="16" height="16" />
            Twitter: <a href="http://twitter.com/<?php the_author_meta('twitter'); ?>"><?php the_author_meta('twitter'); ?></a>
          </p>
      <?php } ?>
       <?php if (get_the_author_meta('icq')) { ?>
          <p class="icq">
            <img src="http://web.icq.com/whitepages/online?icq=<?php the_author_meta('icq'); ?>&img=5" />
            ICQ: <?php the_author_meta('icq'); ?>
          </p>
      <?php } ?>
   </div>
<?php } 

В необходимом файле шаблона необходимо вставить вызов функции my_author_box():
<?php my_author_box(); ?> 

Причем не всегда нужно добавлять саму функцию my_author_box() непосредственно в файл functions.php. Вы можете добавить ее в любой файл шаблона, но если вы добавите ее functions.php, то сможете напрямую вызывать функцию с помощью одной строки, соответственно, уменьшится нагрузка шаблона лишними строками кода.


Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

«    Декабрь 2017    »
ПнВтСрЧтПтСбВс
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Яндекс Апдейты
↓ Апдейты Яndex тИЦ
18.11.2017 ←Последний
04.11.2017
16.08.2017
↓ Апдейты выдачи Яndexa
09.12.2017 ←Последний
03.12.2017
27.11.2017
↓ Апдейты ЯКаталога
04.12.2017 ←Последний
29.11.2017
27.11.2017
Мы рекомендуем
Заработай на сайте!
Gogetlinks-Биржа вечных ссылок для сайтов с Тиц
Getgoodlinks-Биржа вечных ссылок для сайтов с PR


Опрос на портале

Сколько у вас сайтов?

Больше 20 сайтов
От 10 до 20 сайтов
От 5 до 10 сайтов
От 1 до 5 сайтов
Нету сайтов

Наш архив
Облако тегов
ajax, Build, DataLife, dle, dle 9.0, dle 9.2, Engine, Final, Google, Opera, Release, RSS, WordPress, адаптация, административная панель, бесплатно, виджет, Игровой, кино, комментарии, модуль, новости, Новый, Оригинал, парсер, парсер поисковых систем yandex google рассылка комментариев по DLE Joomla Community спаммер раскрутк, Переходы, плагин wordpress, сайта, сайтов, сбор данных телефонов адресов email контактов потенциальные клиенты BlackSpider универсальный сборщи, тема, тематики, универсальный, хак, хак wordpress, Шаблон, шаблона, Яндекс

Показать все теги
Последние комментарии
Популярные файлы

Информация!
Уважаемый посетитель! Присоединяйтесь к нам
в Твиттере.