In questi ultimi giorni, avendo installato un forum qui sul blog, ho abilitato anche le registrazioni.
Avendo le registrazioni adesso abilitate, bisognava dunque aggiungere un menù o widget per permettere agli utenti di registrarsi e loggarsi.
Ho provato dunque il widget presente su WordPress, ma lasciava decisamente a desiderare e così – come spesso capita – ho risolto facendo un mini plugin adatto allo scopo.
<?php
/*
Plugin Name: Custom Login Widget
Description: Just add [custom_login_widget] in sidebar shortcode
Author: Salvatore Noschese
Author URI: https://salvatorenoschese.it
Version: 1.0
*/
defined( 'ABSPATH' ) || exit;
// Add shortcode
add_shortcode('custom_login_widget', 'custom_login_widget_function');
// Custom login widget function
function custom_login_widget_function() {
// Fix redirect if homepage (do not edit)
$clw_redirect = is_home() ? home_url('/') : get_permalink();
// Logged-in users
if (is_user_logged_in()) {
// User info
$clw_user = wp_get_current_user();
$clw_avatar = get_avatar($clw_user->ID, 64);
// User Output
$output = "<h3>" . sprintf(__('Howdy, %s'), $clw_user->display_name) . " 😊</h3>";
$output .= "<div class='user-profile-widget'>";
$output .= "<p style='float:left;margin:0 10px 0 0'><a href='" . esc_url(admin_url('profile.php')) . "' title='" . esc_attr__('Edit Profile') . "'>" . $clw_avatar . "</a></p>";
$output .= "<p><a href='" . esc_url(admin_url('profile.php')) . "' title='" . esc_attr__('Edit Profile') . "'>" . esc_html__('Edit Profile') . "</a></p>";
$output .= "<p>" . wp_loginout($clw_redirect, false) . "</p>";
$output .= "</div>";
} else {
// Register Link only if 'user can register' is enabled (else show an alert)
$clw_registerlink = get_option('users_can_register') ? wp_register(" | ", " | ", false) : " | ";
$clw_regdisabled = get_option('users_can_register') ? "" : "<em style='display:block;font-size:small'>(" . esc_attr__("Registration has been disabled.") . ")</em>";
// Guest Output
$output = "<h3>" . esc_attr__('User Login Name') . " 👤</h3>";
$output .= "<p style='font-size:medium'>";
$output .= wp_loginout($clw_redirect, false);
$output .= $clw_registerlink;
$output .= "<a href='" . esc_url(wp_lostpassword_url()) . "' title='" . esc_attr__('Lost your password?') . "'>" . esc_html__('Lost your password?') . "</a>";
$output .= $clw_regdisabled;
$output .= "</p>";
}
// After (separator)
$output .= "<hr />";
// Print code
return $output;
}
Il file va messo nella directory mu-plugin e non necessita traduzioni (usa stringhe già presenti in WordPress).
Basterà poi aggiungere lo shortcode direttamente nella sidebar:
[custom_login_widget]
O direttamente in una pagina o articolo (per esempio, lo piazzo qui):
[custom_login_widget]Per un anteprima da loggato e sloggato (con registrazioni abilitate o senza):



Bene, spero vi piaccia e fatemi sapere se vi serve aiuto per applicarlo sul vostro blog 👍