Site icon

Come inserire il form di login di WordPress nel front-end

Come inserire il form di login di WordPress nel front-end, ora te lo insegnero’ e vedrai che e’ molto selmplice.

La funzione wp_login_form() fa proprio questo: genera un semplice form di login di WordPress da collocare dove si desidera all’interno di un template.

Per prima cosa va creato lo shortcode:

function register_theme_settings() {
    add_shortcode( 'login-form', 'build_login_form' );
}
add_action('init', 'register_theme_settings');

La funzione add_shortcode() richiede due argomenti: il nome dello shortcode e una funzione di callback, che può essere anche la seguente:

function build_login_form( $atts ){
    if ( is_user_logged_in() )
        return '';
    $atts = shortcode_atts( array( 'redirect' => get_bloginfo( 'url' ) ), $atts, 'login_form' );
    $output = '
        <div id="login">
    ';
    $args = array(
        'echo' => false,
        'redirect' => esc_url( $atts['redirect'] ), 
        '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' => true
    );
    $output .= wp_login_form( $args );
    $output .= '
        </div><!-- #login-form -->
    ';
    return $output;
}

La prima condizione verifica che l’utente non sia già autenticato.
Se il visitatore non è autenticato, si procede alla creazione dello shortcode. A questo provvede la funzione shortcode_atts(), con cui vengono definiti gli attributi dello shortcode e se ne impostano i valori predefiniti. In questo caso, abbiamo previsto l’unico attributo redirect, cui assegniamo il valore dell’URL della home page (get_bloginfo( ‘url’ ) – si legga il Codex per maggiori informazioni).

Così, se l’amministratore inserisce lo shortcode senza attributi, l’utente sarà reindirizzato alla home page dopo il login.

[login-form]

Se, invece, viene passato l’attributo redirect, sarà questo a impostare una diversa pagina di reindirizzamento:

[login-form redirect=”http://www.example.com/profile”]

E questo è il nostro form visualizzato in una pagina di Twenty Nineteen:

Exit mobile version