Modificare i messaggi di errore del login

5 ago 2011, 23:03:22
Visualizzazioni: 35.5K
Voti: 21

Ho guardato tra le domande ma non ho trovato nulla di simile.

Ho bisogno di modificare i messaggi di errore personalizzati che vengono visualizzati quando un utente cerca di accedere con username o password errati.

Ad esempio, cambiare questo: "ERRORE: La password inserita per l'username %1$s non è corretta. Hai dimenticato la password?" in "Informazioni errate" (solo un esempio)

Ho provato ad utilizzare "add_filter" ma non ho familiarità con esso, quindi ogni aiuto sarà apprezzato! Grazie

Ecco un esempio di codice da aggiungere al file functions.php del tuo tema:

add_filter('login_errors', function($error) {
    // Controllo se l'errore contiene il messaggio della password errata
    if (strpos($error, 'password you entered') !== false) {
        return 'Informazioni di accesso errate';
    }
    
    // Controllo se l'errore contiene il messaggio dell'username errato 
    if (strpos($error, 'username does not exist') !== false) {
        return 'Informazioni di accesso errate';
    }
    
    // Restituisce il messaggio di errore originale per altri tipi di errori
    return $error;
});

Questo codice intercetta i messaggi di errore del login e li sostituisce con messaggi personalizzati. È possibile modificare il testo "Informazioni di accesso errate" con qualsiasi altro messaggio desiderato.

1
Commenti

Per quel che vale, il commento sopra dell'utente20986 è spam. Ti indirizza a una pagina che afferma che il tuo software Flash non è aggiornato e necessita di un aggiornamento. Raccomando agli amministratori di rimuovere il commento dell'utente20986

leromt leromt
30 gen 2019 17:07:09
Tutte le risposte alla domanda 1
6
24

puoi farlo utilizzando l'hook filter login_errors ed ecco come:

add_filter('login_errors','login_error_message');

function login_error_message($error){
    //controlla se è l'errore che stai cercando
    $pos = strpos($error, 'incorrect');
    if (is_int($pos)) {
        //è l'errore giusto quindi puoi sovrascriverlo
        $error = "Informazioni errate";
    }
    return $error;
}

aggiornamento:

ho appena testato il codice e funziona bene, ho semplicemente incollato il codice nel file functions.php del mio tema senza modificare nulla con il file .po

Risultato del test del codice di errore di login

6 ago 2011 00:59:18
Commenti

Per chiarire bene, dovrei sostituire 'incorrect' con la stringa di errore? A proposito, grazie per la tua risposta!

Vitor Argos Vitor Argos
6 ago 2011 01:07:10

Ho appena provato in questo modo ma non funziona, non sono sicuro se il file .po di WordPress stia sovrascrivendo il testo. Hai qualche idea?

Vitor Argos Vitor Argos
6 ago 2011 01:10:55

il testo da WordPress.po viene servito prima che quell'hook filter venga attivato, e no non devi cambiare incorrect, sta verificando se il messaggio di errore contiene quella parola.

Bainternet Bainternet
6 ago 2011 01:15:51

Ho provato a farlo funzionare ma non ci sono riuscito. In realtà ho anche provato a rimuovere la parte condizionale, quindi dovrebbe restituire il testo nella variabile $error giusto? Ma non ha alcun effetto.

Analizzando il file .po ho visto che i messaggi che voglio sovrascrivere si trovano nel file wp-includes/user.php come: "<strong>ERRORE</strong>: Il campo nome utente è vuoto."

Vitor Argos Vitor Argos
6 ago 2011 01:37:06

@Vitor stai facendo qualcosa di sbagliato, non c'è bisogno di modificare il file .po, ho aggiornato la mia risposta.

Bainternet Bainternet
6 ago 2011 03:03:16

Per favore cambia strpos con stripos che è insensibile alle maiuscole/minuscole; è importante perché i messaggi di errore sono del tipo "Errore: Nome utente non valido."

Marco Panichi Marco Panichi
9 giu 2022 13:10:40
Mostra i restanti 1 commenti