Разработка и сопровождение
Постоянная авторизация в Wordpress
При разработке сайта на WordPress довольно часто приходится выполнять какие-то действия в админке (установка плагина, редактирование записи и так далее). При этом каждый раз нужно авторизоваться (пусть даже сессия сохраняется в кукисах, они все равно они умирают).
В этой статье я расскажу пару способов, как отключить авторизацию, либо же продлить сессию, чтобы вы могли быть авторизованы, например, год.
Рассмотрим два пути.
Первый из них состоит в том, чтобы убрать систему логирования как таковую :)
Ясное дело, этот путь стоит применять только в том случае, если к сайту никто, кроме вас, не имеет доступа (например localhost).
Второй путь - модифицировать несколько файлов системы и наслаждаться результатом.
Убираем систему логирования
Это решение можно использовать только для тестирования или на этапе разработки в зазщищенной стреде (т.е. только для себя).
Оно состоит в том, чтобы отредактировать файл по пути wp-includes/pluggable.php. Там находим функцию wp_validate_auth_cookie().
Эта функция отвечает за проверку авторизации и возвращает ID пользователя. Все что нам нужно — изменить ее, чтобы она всегда возвращала ID админа.
Конечно же, сделайте бэкап этого файла, или сохраните где-нибудь тело этой функции перед внесением изменений. Вообще, всегда нужно делать бэкап перед необратимым изменением, удалением чего-либо, особенно если это база данных =)
Заменяем эту функцию на следующий код:
function wp_validate_auth_cookie($cookie = '', $scheme = '') { $user_ID = (int) 1; // id админа return $user_ID; }
Для тех кто не любит писать код, есть еще один способ достигнуть этого же результата. Существует такой плагин No-Login, который делает так, чтобы любой пользователь авторизировался как админ.
Продлеваем сессию.
Этот способ можно использовать не только в том случае, если никто не имеет доступа к вашему сайту. Например, вам лень часто логинится и вы хотите чтобы WordPress надолго вас «запомнил».
По умолчанию, когда вы авторизуетесь, кнопка «Запомнить меня» позволяет забыть про авторизацию на 2 недели.
Следующая функция заставить запомнить вас на год:
function keep_me_logged_in_for_1_year($expirein) { return 31556926; // 1 год в секундах } add_filter('auth_cookie_expiration', 'keep_me_logged_in_for_1_year');
Вставьте ее в файл functions.php вашей темы.
На этом все :) Какой способ выбрать зависит от ваших потребностей.
Платон Чукин