Как отключить автоматический выход из WordPress

18 авг. 2010 г., 23:21:17
Просмотры: 139K
Голосов: 31

После определенного периода времени WordPress автоматически выходит из системы всех пользователей и заставляет их входить снова. Для среды разработки на моей локальной машине это раздражает и совершенно не нужно.

Существует ли способ отключения автоматического выхода через API на неопределенный срок? В идеале хотелось бы что-то, что можно добавить в wp-config.php вместе с другими настройками для разработки.

Плагин был бы излишним для моего случая, поэтому я не буду рассматривать его как решение, хотя вы можете предложить его как вариант.

0
Все ответы на вопрос 2
7
32

По умолчанию флажок "Запомнить меня" сохраняет вашу авторизацию на 14 дней. Однако это значение можно изменить с помощью фильтра.

Следующий код изменит это значение:

add_filter( 'auth_cookie_expiration', 'keep_me_logged_in_for_1_year' );

function keep_me_logged_in_for_1_year( $expirein ) {
    return 31556926; // 1 год в секундах
}
19 авг. 2010 г. 02:01:38
Комментарии

Это именно то, что мне было нужно. Думаю, константа для этого значения была бы очень полезна, но фильтр — следующая лучшая вещь. Я даже мог бы использовать create_function(), чтобы сделать это в одну строку.

jerclarke jerclarke
19 авг. 2010 г. 04:40:54

create_function() работает медленно и усложняет удаление фильтра. Лучшей практикой является использование функции. :)

Viper007Bond Viper007Bond
20 авг. 2010 г. 01:46:25

Вы даже можете получить свежую версию PHP и написать это как замыкание: http://php.net/manual/en/functions.anonymous.php - WordPress поддерживает это. Просто не мешайте себе и больше не используйте create_function(). Это отстой.

hakre hakre
20 авг. 2010 г. 13:15:27

Ой, подождите, это не работает в wp-config.php :( Чтобы использовать это, мне понадобится плагин, который будет использовать эту функцию позже, когда add_filter() станет доступен.

jerclarke jerclarke
24 авг. 2010 г. 18:53:28

О, если вам нужно это в wp-config.php, думаю, вам придётся клонировать всю функцию из pluggable.php. Довольно громоздко.

Viper007Bond Viper007Bond
4 сент. 2010 г. 01:15:21

Вместо 31556926 можно использовать YEAR_IN_SECONDS. Есть и другие константы. (Смотрите wp-includes/default-constants)

Upeksha Upeksha
18 янв. 2013 г. 06:21:50

@Upeksha: На момент написания этого ответа этих констант не существовало. ;) Хотя вы правы, теперь, когда они есть, их использование было бы предпочтительнее.

Viper007Bond Viper007Bond
19 янв. 2013 г. 23:04:23
Показать остальные 2 комментариев
2

Это больше связано с тем, как ваш браузер хранит куки. Когда вы входите в систему, он должен сохранять куки, а WordPress считывает их, чтобы проверить вашу аутентификацию (по крайней мере, так я это понимаю).

Во всех локальных установках для разработки мое имя пользователя - admin, а пароль - admin. Я не считаю ввод 8 символов большой проблемой, но возможно, я печатаю быстрее?

18 авг. 2010 г. 23:23:25
Комментарии

Я использую резервные копии рабочих баз данных, и в них у меня всегда установлены сложные пароли для всех учетных записей администраторов. Также я часто использую разные имена пользователей для разных сайтов, и во многих случаях Firefox испытывает трудности с различением моих разных локальных установок для целей автодополнения.

jerclarke jerclarke
19 авг. 2010 г. 04:46:45

Именно так, настройки вашего браузера перезапишут функцию "запомнить меня".

Brad Dalton Brad Dalton
23 дек. 2014 г. 14:19:50