Personalizarea comentariilor în WordPress - funcționalitate și aspect

În WordPress există diferite tipuri de conținut cum ar fi postarea, pagina și comentariile etc. Acestea formează foarte elementele de bază ale WordPress. WordPress fiind o platformă foarte personalizabilă vă permite să particularizați tipurile de bază foarte mult pentru a vă potrivi site-ului. Se poate schimba atât aspectul, cât și funcționalitatea tipurilor de bază pentru a le face să se comporte și să arate ca aspectul și funcționalitatea site-ului dvs. În acest articol vom vedea cum putem schimba comportamentul și apariția comentariilor în site-ul nostru WordPress.


Pasul 1 Înțelegerea comment_form Funcția și argumentele acesteia

Să aruncăm o privire la funcția WordPress comment_form. Acesta este responsabil pentru afișarea formularului de comentarii care este afișat în cea mai mare parte pe singura pagină sau post în WordPress. O chemare la această funcție va fi în mare parte văzută în comments.php fișierul dosarului temei. Apoi, acest fișier ar fi inclus în diferite locuri cum ar fi single.php, page.php, etc direct sau prin apelarea comments_template funcţie.

Puteți găsi mai multe detalii despre comments_template în Codul WordPress.

Dacă folosim comment_form pentru a afișa formularul, formularul va fi afișat utilizând parametrii impliciți care vor fi câmpuri cum ar fi numele, adresa de e-mail (ambele sunt obligatorii), site-ul Web și conținutul comentariului. În tema implicită Twenty Eleven, formularul va arăta după cum urmează.

Unele dintre argumentele importante pentru comment_form sunt:

  • câmpuri - Prin care puteți controla de fapt ce câmpuri sunt afișate în formularul de comentarii.
  • comment_notes_before și comment_notes_after - Acestea sunt folosite pentru a afișa o notă înainte sau după formularul de comentarii.
  • title_reply - Folosind această opțiune puteți schimba titlul răspunsului care este implicit "Lăsați un răspuns".
  • label_submit - Acest lucru poate fi folosit pentru a schimba textul peste butonul de trimitere al comentariului.

Pasul 2 Personalizarea formularului dvs. de comentariu utilizând funcția comment_form

Acum, să customizăm formularul nostru de comentarii prin transmiterea unor argumente diferite comment_form.

În cazul în care vrem să customizăm câmpurile formularului de comentariu, putem trece câmpurile la comment_form funcţie. Câmpurile implicite din comment_form funcția sunt după cum urmează:

 $ fields = array ('autor' => '

". ' ". ($ req? '*":"). "

',' e-mail '=>'

". ($ req? '*":"). "

',' url '=>'

". '

',);

Deci, în cazul în care dorim să eliminăm câmpul de site web, atunci trebuie să creăm câmpurile fără câmpul site-ului web, după cum urmează, și să îl transmitem către comment_form.

 $ commenter = wp_get_current_commenter (); $ req = get_option ('necesită nume_email'); $ aria_req = ($ req? "aria-required =" true ""); $ fields = array ('

". ' ". ($ req? '*":"). "

',' e-mail '=>'

". ($ req? '*":"). "

',); $ comments_args = array ('fields' => câmpuri $); comment_form ($ comments_args);

Acum, dacă mergem să vedem comentariile, va apărea după cum urmează:

În plus, să schimbăm acum titlul de răspuns la "Vă rugăm să ne dați un comentariu valabil" și, de asemenea, să schimbați titlul butonului postului de comentariu la "Trimiteți comentariul meu".

Următoarele sunt argumentele la care vom trece comment_form pentru a realiza acest lucru:

 $ commenter = wp_get_current_commenter (); $ req = get_option ('necesită nume_email'); $ aria_req = ($ req? "aria-required =" true ""); $ fields = array ('

". ' ". ($ req? '*":"). "

',' e-mail '=>'

". ($ req? '*":"). "

',); $ comments_args = array ('fields' => fields, 'title_reply' => 'Vă rugăm să ne dați un comentariu valabil', 'label_submit' => 'Send My Comment'); comment_form ($ comments_args);

Acum, dacă vedem formularul de comentarii, acesta va arăta după cum urmează:


Pasul 3 Eliminarea câmpurilor din comentariul pentru utilizarea cârligelor

Formularul de comentarii WordPress poate fi personalizat, de asemenea, folosind cârlige și filtre. Personalizarea folosind cârligele / filtrele este foarte utilă, mai ales când personalizați prin intermediul unui plugin și nu puteți modifica fișierele tematice. Filtrul pentru adăugarea sau eliminarea câmpurilor din formularul de comentarii este "comment_form_default_fields'

Acum, să eliminăm câmpul de adrese URL utilizând acest filtru. Codul pentru a face acest lucru îl puteți pune fie în fișier plugin, dacă vă personalizați prin plugin sau în functions.php fișier al temei.

Codul este după cum urmează:

 funcția remove_comment_fields (câmpuri $) unset ($ fields ['url']); returnați câmpurile $;  add_filter ('comment_form_default_fields', 'remove_comment_fields');

În aceasta adăugăm funcția remove_comment_fields pe 'comment_form_default_fieldsfiltrați și apoi dezactivați URL-ul pentru a elimina câmpul site-ului web.


Pasul 4 Adăugarea mai multor date la comentariile dvs. utilizând cârlige

Putem adăuga chiar și câmpuri în comentariu pentru utilizarea "comment_form_default_fields' filtru. Acum, să adăugăm câmpul de vârstă al autorului pentru comentarii utilizând acest filtru și apoi să stocăm acest câmp ca comentariu meta și să îl afișăm în comentariu.

Putem adăuga un câmp după cum urmează:

 funcția add_comment_fields ($ fields) $ fields ['age'] = '

". '

„; returnați câmpurile $; add_filter ("comment_form_default_fields", "add_comment_fields");

Odată ce adăugăm câmpul în funcție de tema pe care ar trebui să o formulăm. Pe măsură ce folosesc tema Twenty Eleven, am adăugat-o #respond .comment-label-age-form cu stilul celorlalte etichete cum ar fi #respond .comment-form-url label etc, după cum urmează:

 #respond .comment-form-author label, #respond .comment-form-e-mail label, #respond .comment-form-url label, #respond .comment-form-age label, fundal: #eee; -webkit-box-shadow: 1px 2px 2px rgba (204,204,204,0.8); -moz-box-shadow: 1px 2px 2px rgba (204,204,204,0.8); box-shadow: 1px 2px 2px rgba (204,204,204,0,8); culoare: # 555; afișare: inline-block; font-size: 13px; stânga: 4px; min-lățime: 60px; padding: 4px 10px; poziție: relativă; top: 40px; z-index: 1; 

Acum, dacă vedem comentariile, câmpul de vârstă va fi văzut după cum urmează:

Acum că vârsta este stocată ca comentariu meta, trebuie să fim în "comment_post"și salvați vârsta ca comentariu meta după cum urmează:

 funcția add_comment_meta_values ​​($ comment_id) if (isset ($ _ POST ['age'])) $ age = wp_filter_nohtml_kses ($ _ POST ['vârsta']); add_comment_meta ($ comment_id, 'age', $ age, false);  add_action ('comment_post', 'add_comment_meta_values', 1);

Odată ce meta este salvată, ea poate fi afișată în comentariu după cum urmează:

 cod_id, "vârstă", adevărat); ?>

Pasul 5 Personalizarea comentariilor pentru anumite tipuri de posturi specifice

Ar putea fi uneori util să aveți câmpuri de comentarii numai pentru anumite tipuri de posturi. Acum permiteți modificării codului să afișeze câmpul de comentarii pentru vârstă numai dacă este un tip de post personalizat, cum ar fi, de exemplu, carte.

Codul de vârstă numai pentru tipul de post personalizat al cărților este:

 funcția add_comment_fields ($ fields) if (is_singular ('books')) $ fields ['age'] =

". '

„; returnați câmpurile $; add_filter ("comment_form_default_fields", "add_comment_fields");

Deci, aici adăugați câmpul numai dacă este de tipul "Cărți".


Pasul 6 Crearea unui apel invers pentru afișarea comentariilor

Functia wp_list_comments este folosit pentru a afișa comentariile pe o postare. Puteți citi despre wp_list_comments în Codul WordPress.

wp_list_comments are un argument de "suna inapoi'în care puteți specifica funcția care trebuie apelată înapoi pentru a afișa comentariul.

În tema "Twenty Eleven" din comments.php veți vedea o linie:

 wp_list_comments (array ('callback' => 'twentyeleven_comment'));

Acest lucru se va schimba la:

 wp_list_comments (array ('callback' => 'my_comments_callback'));

Deci, funcția my_comments_callback va fi solicitat pentru fiecare post.


Pasul 7 Efectuarea de comentarii

Acum ne vom modela postul puțin diferit. Vrem doar să afișăm conținutul postului și câmpul de vârstă pe care l-am adăugat în mod specific. Schimba și culoarea de fundal a comentariilor.

Codul funcției "my_comments_callback' este după cum urmează:

 funcția my_comments_callback ($ comment, $ args, $ depth) $ GLOBALS ['comment'] = $ comentariu; ?> 
  • >

    cod_id, "vârstă", adevărat); ?>

    __ ('Răspuns ',' twentyeleven '),' adâncime '=> adâncime $,' max_depth '=> $ args [' max_depth ']))); ?>
  • Modificăm și culoarea de fundal după cum urmează:

     .comentarii> li.comment background: # 99ccff; frontieră: 3px solid #ddd; -moz-border-radius: 3px; raza de graniță: 3 pixeli; marja: 0 0 1,625em; umplutură: 1,625cm; poziție: relativă; 

    Acum, dacă vom vedea comentariile, acestea vor arăta după cum urmează:


    Concluzie

    Comentariile joacă un rol important, deoarece unul construiește un site comunitar. În funcție de site, funcționalitatea comentariilor poate fi personalizată în mod corespunzător. WordPress oferă un sistem flexibil de comentare și oferă un suport bun prin funcții pentru a schimba comportamentul și aspectul comentariilor site-ului dvs. Deci, vă puteți distra personalizarea site-ului dvs. WordPress!

    Spuneți-ne în comentariile de mai jos dacă aveți alte sugestii despre cum să personalizați comentariile pe site-ul dvs. WordPress.

    Cod