Validarea formularului de comentarii

4 oct. 2010, 14:50:40
Vizualizări: 15.7K
Voturi: 4

Cum pot seta regulile de validare pentru câmpul de comentarii?

Schimb valoarea câmpurilor nume/e-mail/homepage la evenimentele onmouseover și onblur (folosesc asta în loc de etichete - astfel, dacă câmpul este gol, afișează "E-mailul tău", "Pagina ta de web", etc.). Problema este că la trimitere, se trimite acest text în câmpul homepage (deoarece nu are validare, spre deosebire de câmpul e-mail unde primești o eroare dacă introduci altceva decât ceva@ceva.ceva).

Cum aș putea valida câmpul homepage?

3
Comentarii

Există o întrebare similară despre validarea formularului în zona de administrare, răspunsul de acolo ar putea să vă ajute: Validarea valorilor din Cutii Meta Personalizate și Câmpuri Obligatorii

Rarst Rarst
4 oct. 2010 15:23:32

Mulțumesc, dar se pare că nu poate modifica valoarea introdusă, așa că dacă cineva nu scrie un URL în câmpul "homepage", va returna pur și simplu un mesaj de eroare (deoarece "Your homepage" nu este un URL valid). Am nevoie să trimită câmpul gol, astfel încât WordPress să nu creeze un link fără sens "http://your°%20homepage").

Kilgore_Trout Kilgore_Trout
4 oct. 2010 16:27:06

Ah, am înțeles ușor greșit întrebarea. Acest lucru probabil se poate face intern în WordPress, dar nu știu cum - va trebui să mă uit mai atent. Ca și soluție pentru front-end, verifică și Etichete Glisante, este ceea ce am folosit pe blogul meu pentru etichete inline ordonate cu un pic de efecte vizuale.

Rarst Rarst
4 oct. 2010 17:53:47
Toate răspunsurile la întrebare 1
3

Procesarea comentariilor se face în fișierul: wp-comments-post.php. Puteți folosi hook-ul pre_comment_on_post pentru a valida valorile introduse în câmpurile formularului de comentarii.

function custom_validate_comment_url() {
    if( !empty( $_POST['url'] ) && !preg_match( '\b(https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|!:,.;]*[-A-Z0-9+&@#/%=~_|]', $_POST['url'] ) // aici faceți validarea URL-ului (nu sunt expert în regex)
        wp_die( __('Eroare: vă rugăm să introduceți un URL valid sau să lăsați câmpul pentru pagină de start gol') );
}

add_action('pre_comment_on_post', 'custom_validate_comment_url');

dacă doriți să modificați o valoare trimisă, folosiți filtrul preprocess_comment. De exemplu:

function custom_change_comment_url( $commentdata ) {
    if( $commentdata['comment_author_url'] == 'Pagina ta de start' )
        $commentdata['comment_author_url'] = '';
    return $commentdata;
}

add_filter('preprocess_comment', 'custom_change_comment_url');
4 oct. 2010 22:33:22
Comentarii

Mulțumesc! Deci dacă vreau să modific o valoare trimisă în timpul validării, trebuie să o schimb astfel? (Scopul principal este ca atunci când câmpul comment_author_url este trimis cu valoarea "dummy" "Pagina ta de acasă", să se schimbe într-un câmp gol - astfel încât să nu fie afișat niciun link).

Kilgore_Trout Kilgore_Trout
5 oct. 2010 12:02:13

Am modificat răspunsul meu.

sorich87 sorich87
5 oct. 2010 12:38:24

cum să afișezi eroarea pe aceeași pagină sub formularul de comentarii

inrsaurabh inrsaurabh
4 iul. 2018 09:01:18