14Sep 2012 2 Comments */?>

Formulario de login personalizado para WordPress

Categorías: Tips de wordpress, Wordpress - Tags:

Continuando con las miniseries de plantillas personalizadas hoy les voy a explicar como crear un formulario de login para usar en sus diseños.

Esta es la plantilla más facil de todas y voy a explicar dos formas de hacerlo. La facil y que no requiere más que una linea de código y la no tan facil 😀

La forma sencilla para crear un formulario de login es utilizar la función que wordpress nos brinda. Para ello en vuestro template debeis poner:

 

$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 );

 

Si necesitan hacerlo de forma manual pueden usar el siguiente código:

Un formulario html cualquiera

<div id="errors"><?php echo $errors;?></div>

<form id="wp_login_form" action="" method="post">
<label>Username</label><br>
<input type="text" name="username" class="text" value=""><br>
<label>Password</label><br>
<input type="password" name="password" class="text" value=""> <br>
<label>
<input name="rememberme" type="checkbox" value="forever">Remember me</label>

<?php wp_nonce_field('login','nonce'); ?>
<input type="submit" id="submitbtn" name="submit" value="Login">

</form>

El código que se encarga del login:

if(isset($_POST) && wp_verify_nonce($_POST['nonce'],'login')){
$username = $wpdb->escape($_REQUEST['username']);
$password = $wpdb->escape($_REQUEST['password']);
$remember = $wpdb->escape($_REQUEST['rememberme']);
	
if($remember) $remember = "true";
else $remember = "false";
$login_data = array();
$login_data['user_login'] = $username;
$login_data['user_password'] = $password;
$login_data['remember'] = $remember;
$user_verify = wp_signon( $login_data, true ); 
		
if ( is_wp_error($user_verify) ) 
{
$errors = "<span class="error">Nombre de usuario o contraseña incorrecto!</span>";

} else 
{	
echo "<script type="text/javascript">window.location='". get_bloginfo('url') ."'</script>";
exit();
}
} 

Como ven esto segundo es un poco más complicado pero permite hacer lo que uno quiera.

Damián Logghe

Programador freelancer y emprendedor en sueños. Contento de ser mi jefe y poder hacer lo que me gusta. WordPress es mi principal fuente de ingreso y me escribo tanto para ayudar como para tener una guia de memoria. Quieres contratarme? Déjame un mensaje.

More Posts - Website

Follow Me:
TwitterFacebookLinkedInGoogle Plus

  • Fran

    Como tener una contraseña en pág. personalizada al estilo de las págs. normales que puedes tener una contraseña y al iniciar la pág. te la pide?? Pq. en la pág. hay acceso a base de datos y no quiero que todo el mundo lo vea, solo quien tenga la contraseña que yo le de.
    Gracias.

  • dowie

    Cómo se podría hacer una página de login, que verifique si estas registrado en cualquiera de las bases de datos de cada subdominio.

    Un saludo.