Accedere a WordPress con l’indirizzo email

WP login email Accedere a WordPress con lindirizzo email

accedere a WordPress con email e nome utente

Tempo addietro, su di una installazione di WordPress, avevo modificato il file functions.php del tema (chi non lo fa prima o poi) per poter accedere, sia attraverso il nome utente (username) sia con l’email di registrazione.
Inoltre, nell’ambito di quella modifica, avevo dovuto anche far sì che gli indirizzi email scritti nei commenti, nelle pagine o negli articoli, fossero non accessibili ai sistemi automatici che li cercano in Rete; i cosiddetti spambots.

Giusto oggi mi sono trovato a dover rimettere le mani a quelle modifiche poiché, l’utilizzatore del Sito web, lamentava il fatto di vedere stampati dei warning nel pannello di amministrazione.

I due pezzi di codice che avevo aggiunto al file del tema erano ancora là, alla fine del file functions, ma rileggendoli e cercando nel codex, ho compreso che WordPress – molto probabilmente con la versione 3.3 – qualcosa ha cambiato; quindi si trattava di apportare una qualche modifica. Per avvalorare il metodo di questo upgrade, ho guardato un pochino anche là fuori, in Rete, con sangoogle.. E direi anche con Yandex, visto che spesso, lato area cirillico, ci sanno fare e si reperiscono cose interessanti.

Login con email su WordPress

Come fare per utilizzare l’indirizzo di posta elettronica per accedere a WordPress

Il pezzo di codice che avevo implementato per permettere agli utenti di loggarsi su WordPress con l’indirizzo email era questo che, a dire il vero, è molto semplice:

function login_with_email_address($username) {
$user = get_user_by_email($username);
if(!empty($user->user_login))
$username = $user->user_login;
return $username;
}
add_action('wp_authenticate','login_with_email_address');

Ma, come ho detto, c’è qualcosa di deprecato (imprecato, come alle volte mi diverte affermare), praticamente è questo termine:

get_user_by_email

Ad essere stato deprecato sin dalla versione 3.3 di WP,  in favore di:

get_user_by('email')

Pertanto bisogna fare una piccola modifica sostituendo al pezzo di codice la funzione deprecata, questo infine deve risultare così:

function login_with_email_address($username) {
$user = get_user_by( 'email', $username );
if(!empty($user->user_login))
$username = $user->user_login;
return $username;
}
add_action('wp_authenticate','login_with_email_address');

Posizionandolo nel file functions.php del tema di WordPress si abilita la possibilità di accedere al Sito web sia utilizzando l’email o, come previsto di default, con il nome utente.

Lo so ed è inutile che me lo dite! Per accedere a WordPress con l’email esiste anche un plugin bello che pronto. I plugin, a mio giudizio, è meglio evitarli quando, per ottenere una certa funzionalità, è sufficiente inserire piccole modifiche ai file del tema; specie poi per il fatto che nulla ci vieta di (anzi è caldamente consigliato) creare il tema child e fare tutte le modifiche in questo ambito.

Evitare che le email siano indicizzate dagli spambots

Un metodo intelligente e sicuro per stampare l’indirizzo email su pagine, articoli e commenti

Nella norma per poter permettere in sicurezza di scrivere l’indirizzo email all’utenza di un Forum, per chi commenta in un blog e per gli stessi autori di un Sito web, si interviene a livello css con un redirect (reindirizzamento). Ad esempio con del codice come questo per creare lo stile:

Ricordandosi poi, nel momento in cui si edita (oppure attraverso un automatismo che li riconosca), di inserire gli indirizzi email racchiusi così:

miaemail@miosito.tld

Come sempre però con WordPress abbiamo la cosiddetta marcia in più, giacché  sono due le possibili varianti al laborioso (e noioso) metodo a livello  css redirection anzidetto.

Il primo consiste nel rifarsi in pieno a questa voce della bibbia, pardon del codex, dal titolo “Protection From Harvesters” e ripresa anche qui (sempre nel codex); utilizzando questo piccolo pezzo di codice nel proprio template di pagina o implementandolo nel tema che stiamo realizzando:

antispambot("miaemail@miosito.tld");

Ma direi che il vantaggio della funzione antispambot() sta nel fatto che – con un piccolo lavoro di contorno al codice – potremo aggiungerla nel file functions.php di qualsiasi tema per WordPress o nel child di questo; sarà molto più semplice utilizzarla per qualsiasi pagina e far si che ciò avvenga con uno shortcode. Il pezzo di codice da aggiungere alla fine del functions è questo:

// SHORTCODE TO ENCODE EMAIL
function email_encode_function( $atts, $content ){
return ''.antispambot($content).'';
}
add_shortcode( 'email', 'email_encode_function' );

Dal momento che il codice è stato inserito nella corretta posizione, cioè in basso (alla fine) del file functions.php del tema, si potrà usare la struttura seguente, appunto uno shortcode, ogni qual volta sia necessario scrivere un indirizzo di posta elettronica da qualche parte nelle pagine e articoli del Sito web realizzato con il CMS WordPress.

Lo shortcode è questo:

[email]qui l’indirizzo email[/email]

Come al solito per qualsiasi ulteriore chiarimento altro non dovete fare se non che tweettare o commentare.

Zhenya

Stampa questo Post

Post correlati

2 comments for “Accedere a WordPress con l’indirizzo email

  1. adidas jeremy scott bones
    4 novembre 2013 at 00:06

    You are in reality a perfect webmaster. The web page loading speed is amazing. It type of feels which you’re performing any distinctive trick. Additionally, The material are masterwork. you’ve done an incredible task with this topic!

  2. Tealifeleidet
    28 novembre 2013 at 02:47

    Sì, probabilmente lo è ma nel mio template non riesco a farlo funzionare.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *