Se avete necessità di personalizzare le pagine del vostro WordPress, inserendo all'interno dei template LOGIN FORM o REGISTRATION FORM, sappiate che le soluzioni sono piuttosto semplici. La prima è la classica soluzione plugin: ne cercate uno che faccia al caso vostro e via. Al massimo potete anche personalizzarlo. Se invece vi piace giocare con i template personalizzati non vi resta che creare un paio di template: uno per il modulo di accesso e uno per il modulo di registrazione.
Login Form in Template
Questa soluzione l'ho trovata su wprecipes. Per chi mastica un po' di WordPress Programming è abbastanza banale. Prendete una pagina template di base, ovvero quella che volete usare come modello. Se volete copiare il template di base dovete copiare page.php, e inserire il nome del template in testa alla pagina, in questo modo:
<?php
/*
Template Name: TemplatePerLogin
*/
Se invece copiate già un template personalizzato, cambiategli nome. Fatto questo identificate dove volete che appaia il form e inserite il codice seguente. Se volete che appaia sotto i contenuti che gestite tramite wordpress mettete il codice subito dopo <?php the_content(); ?>
:
<form name="registerform" id="registerform" action="<?php echo site_url('wp-login.php?action=register', 'login_post') ?>" method="post">
<p>
<label><?php _e('Username') ?><br />
<input type="text" name="user_login" id="user_login" class="input" value="<?php echo esc_attr(stripslashes($user_login)); ?>" size="20" tabindex="10" /></label>
</p>
<p>
<label><?php _e('E-mail') ?><br />
<input type="text" name="user_email" id="user_email" class="input" value="<?php echo esc_attr(stripslashes($user_email)); ?>" size="25" tabindex="20" /></label>
</p>
<?php do_action('register_form'); ?>
<p id="reg_passmail"><?php _e('A password will be e-mailed to you.') ?></p>
<br class="clear" />
<input type="hidden" name="redirect_to" value="<?php echo esc_attr( $redirect_to ); ?>" />
<p class="submit"><input type="submit" name="wp-submit" id="wp-submit" class="button-primary" value="<?php esc_attr_e('Register'); ?>" tabindex="100" /></p>
</form>
<p id="nav">
<a href="<?php echo site_url('wp-login.php', 'login') ?>"><?php _e('Log in') ?></a> |
<a href="<?php echo site_url('wp-login.php?action=lostpassword', 'login') ?>" title="<?php _e('Password Lost and Found') ?>"><?php _e('Lost your password?') ?></a>
</p>
Non vi resta che andare nell'interfaccia di WP ADMIN e settare per la vostra pagina, quel template. Se invece vi accontentate di un form di login standard c'è una funzione di WordPress che fa al caso vostro: wpmrx_login_form. Eccone un esempio pratico:
<?php $args = array(
'echo' => true,
'redirect' => site_url( $_SERVER['REQUEST_URI'] ),
'form_id' => 'loginform',
'label_username' => __( 'Username' ),
'label_password' => __( 'Password' ),
'label_remember' => __( 'Remember Me' ),
'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 );
?>
<?php wpmrx_login_form( $args ); ?>
Registration Form in Template
A questo punto piace vincere facile. Scoperto come è fatta la soluzione sopra è bastato capire dove WordPress definiva il codice dei form e copiarlo. Per il resto tutto come sopra.
<form name="registerform" id="registerform" action="<?php echo site_url('wp-login.php?action=register', 'login_post') ?>" method="post">
<p>
<label><?php _e('Username') ?><br />
<input type="text" name="user_login" id="user_login" class="input" value="<?php echo esc_attr(stripslashes($user_login)); ?>" size="20" tabindex="10" /></label>
</p>
<p>
<label><?php _e('E-mail') ?><br />
<input type="text" name="user_email" id="user_email" class="input" value="<?php echo esc_attr(stripslashes($user_email)); ?>" size="25" tabindex="20" /></label>
</p>
<?php do_action('register_form'); ?>
<p id="reg_passmail"><?php _e('A password will be e-mailed to you.') ?></p>
<br class="clear" />
<input type="hidden" name="redirect_to" value="<?php echo esc_attr( $redirect_to ); ?>" />
<p class="submit"><input type="submit" name="wp-submit" id="wp-submit" class="button-primary" value="<?php esc_attr_e('Register'); ?>" tabindex="100" /></p>
</form>
E via a settare il template per la pagina destinataria.