Formulario de login personalizado para #WordPress

publicado en: Diseño Web, Wordpress | 0

Recienetemente me he visto en la necesidad de crear un propio formulario de login para wordpress. El comportamiento por defecto suele estar bien, pero en este caso en concreto buscaba una solución un poco más integrada en la página.

¿Porqué usar un formulario personalizado? Hay muchos motivos, el mio en concreto es que no me venia bien hacia donde redirigia el formulario que ya existia de otro plugin, asi que decidí crearme mi propio formulario.

La verdad que wordpress nos va a facilitar la mayoria de las tareas que tenemos que realizar y en este caso no iba a ser menos. Crear un formulario para hacer login es muy sencillo, tan solo tenemos que crear un array con una serie de parametros, y le pasamos esto a la función wp_login_form() que será la encargada de crear el formulario.

$args = array(
'echo' => true,
'redirect' => site_url( $_SERVER['REQUEST_URI'] ),
'form_id' => 'loginform',
'label_username' => __( 'Usuario' ),
'label_password' => __( 'Password' ),
'label_remember' => __( 'Recordarme' ),
'label_log_in' => __( 'Log In' ),
'id_username' => 'user_login',
'id_password' => 'user_pass',
'id_remember' => 'rememberme',
'id_submit' => 'wp-submit',
'remember' => true,
'value_username' => NULL,
'value_remember' => false );
 
wp_login_form( $args );

Después de incluirlo tan solo tendremos que darle un poco de estilo para ponerlo a nuestro gusto y listo, ya tenemos un sencillo formulario de login funcionando.

Podemos mezclar esta funcion con is_user_logged_in() para darle un poco más de sentido y si por ejemplo trata de acceder nuevamente a la página de login que no vea el formulario, si no que sea redirigido a donde le digamos

if (!is_user_logged_in()) {
	$args = array(
	'echo' => true,
	'form_id' => 'loginform',
	'label_username' => __( 'Usuario' ),
	'label_password' => __( 'Password' ),
	'label_remember' => __( 'Recordarme' ),
	'label_log_in' => __( 'Log In' ),
	'id_username' => 'user_login',
	'id_password' => 'user_pass',
	'id_remember' => 'rememberme',
	'id_submit' => 'wp-submit',
	'remember' => false,
	'value_username' => NULL,
	'value_remember' => false );
	 
	wp_login_form( $args );
}
else{
	wp_redirect(home_url()); exit;
	
}

De esta forma si intenta acceder nuevamente a supongamos misitio.com/iniciar-sesion/ lo que ocurrirá es que será redirigido a la página de inicio y no volverá a ver el formulario de login hasta que haya cerrado sesión.

 

Como habeis visto es algo muy sencillo y facil de llevar a cabo, además evitamos tener que utilizar un plugin especifico para esto.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *