Validazione del modulo dei commenti

4 ott 2010, 14:50:40
Visualizzazioni: 15.7K
Voti: 4

Come posso impostare le regole di validazione per il campo dei commenti?

Cambio il valore del nome/email/homepage del commentatore onmouseover e onblur (uso questo invece delle etichette - quindi se il campo è vuoto mostra "La tua email", "La tua homepage", ecc.). Il problema è che al momento dell'invio, invia questo testo nel campo homepage (poiché non ha validazione a differenza del campo email dove ricevi un errore se inserisci qualsiasi cosa tranne qualcosa@qualcosa.qualcosa).

Come potrei validare il campo homepage?

3
Commenti

C'era una domanda simile sulla validazione dei moduli nell'area di amministrazione, la risposta potrebbe soddisfare le tue esigenze: Validazione dei valori delle meta box personalizzate e campi obbligatori

Rarst Rarst
4 ott 2010 15:23:32

Grazie, ma sembra che non possa modificare il valore inserito, quindi se qualcuno non scrive un URL nel campo "homepage", restituirebbe semplicemente un messaggio di errore (poiché "La tua homepage" non è un URL valido). Ho bisogno che invii il campo vuoto, in modo che WordPress non crei un link senza senso come "http://la%20tua%20homepage").

Kilgore_Trout Kilgore_Trout
4 ott 2010 16:27:06

Ah, ho frainteso leggermente la tua domanda. Probabilmente questo può essere fatto internamente in WordPress, ma non so come - dovrò approfondire. Per una soluzione front-end, dai anche un'occhiata a Etichette scorrevoli, è quello che ho usato nel mio blog per etichette inline ordinate con un tocco di effetto visivo.

Rarst Rarst
4 ott 2010 17:53:47
Tutte le risposte alla domanda 1
3

L'elaborazione dei commenti viene gestita nel file: wp-comments-post.php. Puoi utilizzare l'hook pre_comment_on_post per validare i valori inseriti nei campi del modulo dei commenti.

function custom_validate_comment_url() {
    if( !empty( $_POST['url'] ) && !preg_match( '\b(https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|!:,.;]*[-A-Z0-9+&@#/%=~_|]', $_POST['url'] ) // effettua qui la validazione dell'url (non sono un esperto di regex)
        wp_die( __('Errore: inserisci un URL valido o lascia vuoto il campo homepage') );
}

add_action('pre_comment_on_post', 'custom_validate_comment_url');

Se desideri modificare un valore inviato, utilizza il filtro preprocess_comment. Ad esempio:

function custom_change_comment_url( $commentdata ) {
    if( $commentdata['comment_author_url'] == 'La tua homepage' )
        $commentdata['comment_author_url'] = '';
    return $commentdata;
}

add_filter('preprocess_comment', 'custom_change_comment_url');
4 ott 2010 22:33:22
Commenti

Grazie! Quindi se voglio modificare un valore inviato durante la validazione, devo intervenire su quello? (L'obiettivo principale è che quando il campo comment_author_url viene inviato con il valore "dummy" "La tua homepage", venga modificato in un campo vuoto - così nessun link verrà visualizzato).

Kilgore_Trout Kilgore_Trout
5 ott 2010 12:02:13

Ho modificato la mia risposta.

sorich87 sorich87
5 ott 2010 12:38:24

come mostrare l'errore nella stessa pagina sotto il modulo dei commenti

inrsaurabh inrsaurabh
4 lug 2018 09:01:18