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: