Какой самый простой способ остановить WP от выхода из системы?

28

Через некоторое время WP выходит из системы всех пользователей и заставляет их снова войти в систему. Для сред разработки на моей локальной машине это неприятно и абсолютно не нужно.

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

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

jerclarke
источник

Ответы:

27

По умолчанию флажок «Запомнить меня» запоминает вас на 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 year in seconds
}
Viper007Bond
источник
1
Это именно то, что мне было нужно. Я думаю, что константа для этого значения была бы действительно полезна, но фильтр - следующая лучшая вещь. Я мог бы даже использовать create_function()это для одной строки.
Джеркларке
2
create_function()работает медленно и затрудняет удаление фильтра. Лучше всего использовать функцию. :)
Viper007Связь
Вы даже можете получить последнюю версию PHP и написать ее как закрытие: php.net/manual/en/functions.anonymous.php - WordPress поддерживает это. Просто не мешайте себе и больше не используйте create_function (). Это отстой.
hakre
1
YEAR_IN_SECONDSможет быть использован вместо 31556926. Есть и другие константы. (См. wp-includes/default-constants)
Упекша,
1
@ Упекша: На момент написания этого ответа эти константы не существовали. ;) Вы правы, хотя теперь, когда они это делают, было бы лучше использовать их.
Viper007Связь
4

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

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

curtismchale
источник
Я использую резервные копии живых баз данных, и в них у меня всегда есть надежные пароли для всех учетных записей администратора. У меня также часто разные имена пользователей для разных сайтов, и во многих случаях у Firefox возникают проблемы с разграничением моих локальных установок для целей автозаполнения.
Джеркларке
Точно, настройки вашего браузера перезапишут функцию запомнить меня.
Брэд Далтон
-2

Это работает, если вы поместите его в wp-config.php?

function wp_validate_auth_cookie($cookie='',$scheme='') {
    return 1; // admin user id
}

Тщательно не проверено. Это не столько «никогда не выходить из системы», сколько «относиться ко всем как к администраторам».

Анника Бэкстрем
источник
5
НИКОГДА НЕ ИСПОЛЬЗОВАТЬ В ПРОИЗВОДСТВЕ !!! Походит на установку песочницы.
Арлен Бейлер
2
НЕ ДЕЛАЙТЕ ЭТОГО, иначе вас быстро взломают!
Т.Тодуа