Власна сторінка логіну та профіль користувача у WordPress


Сьогодні я розповім як змінити сторінку логіну та сторінку профілю користувача на свій лад. Для чого б воно вам не знадобилось, але таке можна зробити. Окрім хіба сторінки профілю – її можна змінити лише до певної межі (деталі нижче). Також, все написане нижче ніяк не зачіпає файли двигунця і не пропадає після його оновлення. Все що потрібно – прописати код у файлі functions.php вашої теми. Також, тут не йтиметься про те, як створити повністю нові сторінки логіну та керування профілем користувача та додати їх на сайт як окремі сторінки. Хоча можна зробити і таке. 🙂

Кастомний редірект з адмінки

У якості аперитиву, зробимо кастомний редірект для користувача, що виходить з адмінки. Стандартно, натиснувши кнопку “Вихід” у адмінці ви перенаправляєтесь на сторінку логіну. Хм, і для чого таке зроблено? Я одразу уявляю напів переляканого користувача зі словами “Ой, вибачте, навіщо ж я вийшов? Звісно я хочу назад!” і він наново “вбиває” свій логін та пароль і заходить знову. У реальності, думаю логічно, що коли я хочу вийти з адмінки, то значить там я вже все зробив і хочу переглянути сайт. Ок, зробимо щоб було саме так:

add_filter('wp_logout', 'RedirectAfterLogout');

function RedirectAfterLogout(){
    $redirectLinks = get_bloginfo( 'url' );
    wp_redirect($redirectLinks);
    exit();
}

Змінюємо сторінку логіну

Що-що, а сторінку логіну можна змінити до неупізнаваності! Хоча, особисто мені подобається вигляд стандартної форми. Я б змінював тільки лого, фон та кольорову гаму взагалі, але саму форму не чіпав би. Отож, додаємо власний файл стилей до сторінки логіну:

function my_login_css() {
    echo '';
}
add_action('login_head','my_login_css');

Не забудьте розмістити цей власний файл під назвою wp-admin.css у папці з вашою темою. Щоб краще зорієнтуватись які class’и та id’и використовуються на сторінці логіну – раджу підглянути у стандартний файл стилів двигунця, що знаходиться у wp-admin/css/login.css.

Також ми можемо вивести якесь повідомлення для користувача, що знаходиться на сторінці логіну. Ось так:

function custom_login_message() {
    $message = '
Привіт! У нас ведеться відеоспостереження тут, тут і ось тут.
'; return $message; } add_filter('login_message', 'custom_login_message');

Змінюємо сторінку профілю

Імхо, найцікавіший пункт. Але, нажаль, зі сторінки профілю не можливо забрати все, що забажаєш. Більшість полів прописано прямо у шаблоні цієї сторінки у файлах ядра двигунця до яких ми обіцяли не лізти. Хоча дещо ми все-таки можемо 😉 Можна прибрати вибір кольорової гами, можна прибрати три поля контактних даних (aim, yim та jabber). Можна додати які завгодно власні поля. Ок, цим і займемось!

Приберемо можливість вибору кольорової гами:

remove_action('admin_color_scheme_picker', 'admin_color_scheme_picker');

Приберемо три поля контактних даних (за код дякуємо wordpress.co.ua):

function remove_profile_fields($contactmethods) {
    unset($contactmethods['aim']);
    unset($contactmethods['yim']);
    unset($contactmethods['jabber']);

    return $contactmethods;
}
add_filter('user_contactmethods', 'remove_profile_fields');

Тепер додамо власні поля на сторінку профілю користувача (за код дякуємо colinjmorgan.com):

function extendUser_socialforms($user_id) {
    $userID = $user_id->ID;
    ?>

Додаткові дані

Функція extendUser_socialforms виводить дод. поля на сторінку, а функція extendUser_Save обробляє і зберігає їх значення, коли користувач натискає кнопку "Зберегти". У прикладі є лише звичайні текстові поля. Проте, насправді такий метод є дуже гнучким і потужним. Фактично, можна додати будь-які поля (текстові, випадаючі списки і т.д.) та прописати виконання будь-якої функції при збережені даних.

За підтримки:
Создание сайта http://www.mcsite.com.ua/

Оновив файли локалізації плагіна eShop

Оновив файли локалізації плагіна eShop

Оплата нату… ой, твітом! :)

Оплата нату… ой, твітом! :)

Новіший допис