¿Quieres saber el inicio de sesión automático en WordPress Admin?
El blog de hoy será breve y te enseñaré cómo agregar una función útil a tu sitio de WordPress. Esto puede ser bastante útil si se aplica correctamente. Esto está destinado al uso en sitios de WordPress que proporcionan a los usuarios una cuenta genérica para iniciar sesión.
En muchas demostraciones de backend de WordPress, por ejemplo, el autor establecerá una cuenta de demostración para que los clientes potenciales inicie sesión y exploren con su producto.
Con frecuencia, el autor solo publicará un aviso que dice;
Nombre de usuario: modelo
Contraseña: modelo
En este artículo, le informaremos cómo crear un sistema para iniciar sesión automáticamente en el panel de administración de WordPress, con un solo clic de enlace.
¿Cómo completar el inicio de sesión automático en el panel de WordPress?
Le ofreceré un breve fragmento de acceso automático a WordPress Admin con estas credenciales. Esto se puede incluir en el archivo de funciones de su tema o se puede colocar en su archivo de complemento y habilitado.
Esto podría ser útil si:
- Su sitio tiene una cuenta genérica para que los usuarios anónimos inicien sesión.
- Desea un enlace de inicio de sesión de "un solo clic".
- Desea maximizar la conversión de demostración de productos al proporcionar una vía rápida y eficiente a la demostración, minimizando los pasos necesarios.
- Desea dirigir a los visitantes directamente a la ubicación correspondiente (por ejemplo, página de configuración).
importante: Nunca utilice esto para iniciar sesión en cuentas con poder real; por ejemplo. cuentas de administrador/editor, etc.
Usa este fragmento con cuidado.
Ahora cree un complemento simple para iniciar sesión automáticamente en el panel de WordPress.
Crea una carpeta de complementos en tu directorio de WordPress: wp-content > plugins
- Crea una nueva carpeta como: inicio de sesión automático
- Abra esta carpeta y cree un nuevo archivo PHP como:
auto-login.php - Copie este código y péguelo.
Personalizar código para un autor
/*
Plugin Name: Auto Login
Plugin URI: https://themedev.net/
Version: 1.0.0
Author: ThemeDev
Author URI: https://themedev.net/
*/
function themedev_autologin() { // PARAMETER TO CHECK FOR if ($_GET['autologin'] == 'demo') { // ACCOUNT USERNAME TO LOGIN TO $creds['user_login'] = 'demo'; // ACCOUNT PASSWORD TO USE $creds['user_password'] = 'demo'; $creds['remember'] = true; $autologin_user = wp_signon( $creds, false ); if ( !is_wp_error($autologin_user) ) header('Location: wp-admin'); // redirect to }
}
// ADD CODE JUST BEFORE HEADERS AND COOKIES ARE SENT
add_action( 'after_setup_theme', 'themedev_autologin');Estos valores pueden ser lo que quieras, pero se deben evitar los parámetros originales de WordPress como 'lock-out', 'action' y 'redirigir to'.
Personalizar código para varios autores
Nuestro fragmento actualmente solo está configurado para iniciar sesión automáticamente en una cuenta. ¿Qué pasa si necesitamos enlaces de inicio de sesión separados para cada cuenta? Este es un método rápido y simple que no requiere que repitas todo el extracto una y otra vez. Echa un vistazo a mi solución a continuación.
/*
Plugin Name: Auto Login
Plugin URI: https://themeedev.net/
Description: Create convenient auto-login links to quickly login to generic accounts. Configure source code to make changes.
Version: 1.0.0
Author: ThemeDev
Author URI: https://themeedev.net/
*/
// Declare global var's
global $login_parameter, $accounts;
// THE PARAMETER TO CHECK FOR
// eg. http://exmaple.com/wp-login.php?param_name=account
$login_parameter = "autologin";
// Another example iteration
$accounts[] = array( "user" => "campaign", "pass" => "campaign", "location" => "wp-admin/admin.php?page=nxc-dashboard", );
$accounts[] = array( "user" => "next3", "pass" => "next3", "location" => "wp-admin/admin.php?page=next3aws#ntab=settings", );
$accounts[] = array( "user" => "nextwoo", "pass" => "nextwoo", "location" => "wp-admin/admin.php?page=nextwoo#ntab=features", );
// SEE PREVIOUS EXAMPLE FOR DETAILS ABOUT THIS FUNCTION
function th_autologin() { global $login_parameter, $accounts; foreach ($accounts as $account) { if( !isset($_GET[$login_parameter]) ){ continue; } if ($_GET[$login_parameter] == $account['user']) { $creds['user_login'] = $account['user']; $creds['user_password'] = $account['pass']; $creds['remember'] = true; $autologin_user = wp_signon( $creds, '' ); if ( !is_wp_error($autologin_user) ) header('Location: ' . $account['location']); } }
}
add_action( 'after_setup_theme', 'th_autologin' );Esto es esencialmente lo mismo, pero con un bucle foreach y una matriz de cuentas arrojada por si acaso. La función Autologin() tiene la misma estructura que el método login(), con la excepción de que el código se repite (a través del bucle foreach) para cada cuenta.
El arreglo global ahora tiene toda la información importante. El ejemplo anterior muestra cómo configurar dos cuentas, pero nuestro fragmento puede manejar tantas como necesitamos. Simplemente personalice y agregue tantos de los siguientes bloques de código como necesite agregar cuentas adicionales.
// ACCOUNT CODE BLOCK
$accounts[] = array( "user" => "anotheraccount", "pass" => "public_password", "location" => "https://themedev.net/",
);
// END ACCOUNT CODE BLOCKTambién notará que también he movido el nombre del parámetro a una variable global: esto no es necesario, pero lo hice simplemente para eliminar todos los valores codificados de la función th_autologin().
Uso de URL para iniciar sesión automáticamente en el panel de WordPress
Esto es muy simple de usar. El nombre de usuario y la contraseña de la cuenta se especifican en el archivo de complemento (código anterior) y para iniciar sesión, simplemente necesita visitar; http://example.com/wp-login.php?autologin=demo
Debes ser llevado a wp-admin e iniciar sesión en la cuenta deseada de inmediato. Sin embargo, si las credenciales son incorrectas, debería ver el formulario de inicio de sesión como de costumbre.
idea de narración
Aunque este fragmento es simplemente una función simple destinada al uso ligero, como en un sitio de demostración de productos, tiene el potencial de utilizarse para escenarios de inicio de sesión mucho más complejos. El resto del código debe ser autoexplicativo, pero si tienes alguna pregunta sobre lo que hice o por qué lo hice, deja un comentario a continuación o envíame un tweet. ¡Deje un comentario en el espacio a continuación si tiene algún comentario, recomendación o pensamiento!
Si te gustó este artículo, por favor suscríbete a nuestro Canal de youtu Para tutoriales en vídeo de WordPress. También nos puedes encontrar en Twitter y Facebook.