¿Cuál es la forma más fácil de evitar que WP me cierre la sesión?


28

Después de un cierto tiempo, WP cierra la sesión de todos los usuarios y los obliga a volver a iniciar sesión. Para entornos de desarrollo en mi máquina local, esto es desagradable y absolutamente innecesario.

¿Existe una forma basada en API de deshabilitar el cierre de sesión automático indefinidamente? Idealmente, me gustaría algo que pueda agregar wp-config.phpjunto con otras configuraciones relacionadas con la configuración del desarrollador.

Un complemento sería excesivo para mí, por lo que no lo consideraré una respuesta, pero también podría publicarlo como una opción.

Respuestas:


27

De forma predeterminada, la casilla de verificación "Recordarme" te hace recordar durante 14 días. Sin embargo, esto es filtrable.

Este código cambiará ese valor:

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
}

1
Esto es exactamente lo que necesitaba. Creo que una constante para este valor sería realmente útil, pero un filtro es la siguiente mejor opción. Incluso podría usarlo create_function()para hacerlo en una línea.
jerclarke

2
create_function()es lento y dificulta la extracción del filtro. Es una buena práctica usar una función. :)
Viper007Bond

Incluso puede obtener una versión PHP reciente y escribirla como cierre: php.net/manual/en/functions.anonymous.php - WordPress lo respalda. Simplemente no se interponga en su camino y ya no use create_function (). Apesta.
Hakre

1
YEAR_IN_SECONDSse puede usar en su lugar 31556926. También hay otras constantes. (Ver wp-includes/default-constants)
Upeksha

1
@ Upeksha: En el momento en que se escribió esta respuesta, esas constantes no existían. ;) Sin embargo, tienes razón en que ahora que lo hacen, sería mejor usarlos.
Viper007Bond

4

Esto tiene más que ver con la forma en que su navegador almacena las cookies. Cuando inicia sesión, debe guardar la cookie y WordPress la lee para ver si está autenticado (al menos eso es lo que entiendo).

En todas las instalaciones de desarrollo local, mi nombre de usuario es admin y mi contraseña es admin. No encuentro 8 letras para ser realmente un gran problema, pero ¿tal vez escribo más rápido?


Utilizo copias de seguridad de las bases de datos en vivo, y en ellas siempre tengo contraseñas seguras en todas las cuentas de administrador. También a menudo tengo diferentes nombres de usuario para diferentes sitios, y en muchos casos Firefox tiene problemas para diferenciar mis diferentes instalaciones locales para fines de autocompletar.
jerclarke

Exactamente, la configuración de su navegador sobrescribirá la función recordarme.
Brad Dalton el

-2

¿Funciona esto si lo coloca en wp-config.php?

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

No probado a fondo. No significa "nunca cerrar sesión", sino "tratar a todos como administradores".


55
¡NUNCA UTILICE EN PRODUCCIÓN! Suena como una instalación de sandbox.
Arlen Beiler

2
¡NO LO HAGAS o serás hackeado rápidamente!
T.Todua
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.