В последних версиях WordPress в качестве иконки пользователя используется граватар (глобально распознаваемый аватар от популярного сервиса Gravatar). Но, хоть данный сервис и популярен, далеко не все посетители им пользуются. А бывает что хочется иметь разные аватары на разных сайтах, и регистрировать для этого новые аккаунты не совсем удобно. Поэтому в дополнение к уже существующей системе аватаров можно добавить возможность загружать свою картинку.
Для реализации этой возможности уже существует несколько плагинов и много больше инструкций по настройке этих плагинов.
Я же расскажу как добавить поле для загрузки аватара в профиль пользователя средствами темы.
В результате в админке появится такое поле:
Данный код, как и все последующие, нужно поместить в конец файла functions.php вашей темы.
Сперва добавим поле для загрузки и отметку для удаления аватара в профиль пользователя (в консоли).
Теперь когда есть поле- его нужно обрабатывать, следующий код отвечает уже за сохранение и удаление аватара.
Файлы будут сохраняться в папке загрузок, в подпапке avatars, название файла соответствует ID пользователя.
Так как форма тепреь отправляет файлы- нужно установить способ кодирования данных формы. Следующий код добавит соответствующий атрибут к форме.
Мы добавили возможность загрузки своих аватаров, осталось сделать что бы они выводились везде где выводится аватар пользователя.
Здесь все просто, следующий код с помощью фильтра дополняет стандартную функцию вывода аватра, добавим его в файл functions.php.
Теперь, если пользователь загрузит свой аватар- везде отобразится он, если нет- то граватар, если и граватара нет, то картинка по-умолчанию.
Комментарии ()