Koha për të shtuar një përgjigje komenti. Komentet e WordPress – dizajn i plotë i pamjes

WordPress ka disa lloje të përmbajtjes si postime, faqe, komente. WordPress është një platformë shumë fleksibël që ju lejon të personalizoni përmbajtjen bazë për t'iu përshtatur faqes tuaj. Ju mund të ndryshoni pamjen dhe funksionalitetin. Në këtë tutorial ne do t'ju tregojmë se si të ndryshoni sjelljen dhe pamjen e komenteve në një faqe WordPress.

Hapi 1. Kuptimi i funksionit comment_form dhe argumenteve të tij

Le të hedhim një vështrim në funksionin e komentit_formës së WordPress. Ai është përgjegjës për shfaqjen e formularit të komentit që shfaqet në faqe ose postim. Thirrja për këtë funksion mund të gjendet kryesisht në skedarin comments.php në dosjen e temës. Ky skedar përfshihet në vende të ndryshme, për shembull në skedarët single.php dhe page.php, drejtpërdrejt ose përmes një thirrjeje në funksionin comments_template.

Përshkrimi i funksionit mund të gjendet në kodeksin e WordPress.

Nëse përdorni funksionin comment_form për të shfaqur një formular, ai do të jepet duke përdorur parametrat e paracaktuar dhe do të përmbajë fusha të tilla si emri, emaili (të dyja fushat janë të nevojshme), uebsajti dhe përmbajtjen e komenteve. Në temën e paracaktuar Twenty Eleven, forma do të duket kështu.

Disa argumente të rëndësishme për funksionin comment_form:

  • fushat - mund ta përdorni për të kontrolluar shfaqjen e fushave në formularin e komenteve.
  • comment_notes_fore dhe comment_notes_after - përdoret për të shfaqur informacionin para dhe pas formularit.
  • title_reply - përdoret për të ndryshuar titullin e përgjigjes, i cili parazgjedhur është "Lini një përgjigje".
  • label_submit - përdoret për të ndryshuar tekstin në butonin e dërgimit të komenteve.
Hapi 2. Personalizojeni formularin e komentit duke përdorur funksionin comment_form

Tani le të vendosim formularin tonë të komentit duke kaluar argumente në funksionin comment_form.

Në rast se duhet të personalizojmë fushat në formularin e komenteve, duhet të kalojmë një listë të tyre në funksionin comment_form. Si parazgjedhje, funksioni përdor listën e mëposhtme të fushave:

$fields = grup ("autor" => "

" . "" . __("Emri") . " " . ($req ? "*" : "") ."

", "email" => " ", "url" => "

" . __("Uebsajti") . "" ."

",);

Nëse na duhet të heqim një fushë, për shembull faqen e internetit , thjesht duhet ta përjashtojmë atë nga grupi dhe ta kalojmë grupin te funksioni koment_form.

$commenter = wp_get_current_commenter(); $req = get_option ("kërkohet_emri_email"); $aria_req = ($req ? " aria-required="true"" : ""); $fields = grup ("autor" => "

" . "" . __("Emri") . " " . ($req ? "*" : "") ."

", "email" => " ",); $comments_args = grup ("fusha" => $fushat);forma e komentit ($comments_args);

Përveç kësaj, ne do të ndryshojmë gjithashtu emrin e formularit në "Ju lutemi na jepni komentin tuaj të vlefshëm", dhe mbishkrimin në butonin "Dërgo komentin tim".

Për të përfunduar detyrën, ne kalojmë argumentet e mëposhtme në funksionin comment_form:

$commenter = wp_get_current_commenter(); $req = get_option ("kërkohet_emri_email"); $aria_req = ($req ? " aria-required="true"" : ""); $fields = grup ("autor" => "

" . "" . __("Emri") . " " . ($req ? "*" : "") ."

", "email" => " ",); $comments_args = array("fields" => $fields, "title_reply"=>"Ju lutemi na jepni komentin tuaj të vlefshëm", "label_submit" => "Dërgo komentin tim"); comment_form($comments_args);

Tani forma e komenteve do të duket kështu:

Hapi 3. Heqja e fushave nga një formular duke përdorur një goditje

Gjithashtu, formulari i komenteve të WordPress mund të modifikohet duke përdorur grepa dhe filtra. Ky cilësim mund të jetë veçanërisht i dobishëm kur punoni me një shtesë, kur duhet të personalizoni disa elementë, por jo të ndryshoni skedarët e temës. Filtri për shtimin ose heqjen e fushave nga formulari - "comment_form_default_fields"

Le të heqim fushën e URL-së duke përdorur një filtër. Kodi i mësipërm mund të përdoret në një plugin ose në skedarin functions.php të temës aktive.

Funksioni remove_comment_fields($fields) ( unset($fields["url"]); kthe $fields; ) add_filter("comment_form_default_fields","remove_comment_fields");

Hapi 4. Shtoni të dhëna në formularin e komenteve duke përdorur një goditje

Mund të shtojmë fusha në formular duke përdorur filtrin 'comment_form_default_fields'. Le të shtojmë fushën e moshës së autorit duke përdorur një filtër dhe ta ruajmë këtë fushë me të dhëna shtesë dhe ta shfaqim në koment.

Shtoni një fushë si kjo:

Funksioni add_comment_fields($fields) ( $fields["age"] = "

" . __("Mosha") . "" ."

"; ktheni $fields; ) add_filter("comment_form_default_fields","add_comment_fields");

#respond .etiketë-formë-komenti-autor, #përgjigju .etiketë-etiketë-formë-e-mail-i-komenti, #përgjigju .etiketë-url-form-formë-komenti, #përgjigje .etiketë-etiketë-formë-komenti-moshë, #përgjigju .etiketë-formë-koment-etiketë-e-mail ( sfond: -webkit-box-hije: 1px 2px rgba(204,204,204,0.8) -moz-box-hije: 1px 2px rgba(204,204,0.5); : 13px;min-gjerësia: 4px 10px;

Tani forma jonë e komenteve do të duket kështu:

Mosha tani ruhet si informacion shtesë. Ju duhet të përdorni grepin në "comment_post":

Funksioni add_comment_meta_values($comment_id) ( if(isset($_POST["mosha"])) ($age = wp_filter_nohtml_kses($_POST["mosha"]); add_comment_meta($comment_id, "mosha", $mosha, false); ) ) add_action("koment_post", "shto_koment_meta_vlerash", 1);

Pasi të ruhen të dhënat, ato mund të dalin si një koment si ky:

Hapi 5. Vendosja e komenteve për lloje specifike postimesh

Ndonjëherë dëshironi të përdorni fushat e komenteve vetëm për disa lloje postimesh. Le të ndryshojmë kodin për të shfaqur fushën e moshës vetëm për një lloj regjistrimi libri:

Funksioni add_comment_fields($fields) ( if(is_singular("libra")) ( $fields["age"] = "

" . __("Mosha") . "" ."

"; ) ktheni $fields; ) add_filter("comment_form_default_fields","add_comment_fields");

Hapi 6. Krijoni një funksion të kthimit të thirrjes për të shfaqur komentet

Funksioni wp_list_comments përdoret për të shfaqur komentet në postime. Në kodin e WordPress funksioni përshkruhet në detaje.

wp_list_comments ka një argument 'backback' në të cilin mund të përcaktoni një funksion që thirret kur shfaqet një koment.

Në temën Twenty Eleven në skedarin comments.php mund të gjeni rreshtin:

Wp_list_comments(array("callback" => "twentyeleven_comment"));

Le ta ndryshojmë atë në:

Wp_list_comments(array("callback" => "my_comments_callback"));

Funksioni my_comments_callback do të thirret për çdo postim.

Hapi 7: Stilimi i komenteve

Tani do të ndryshojmë pak stilin e komenteve. Ne thjesht do të shfaqim përmbajtjen e postimit dhe fushën e moshës që kemi shtuar më parë. Ne gjithashtu do të ndryshojmë ngjyrën e sfondit për komentet.

Kodi i funksionit "my_comments_callback":

Funksioni my_comments_callback($comment, $args, $depth) ( $GLOBALS["comment"] = $comment; ?>

Për një përshkrim dhe argumente të pranuara të funksionit comments_template() dhe të tjerëve të përmendur në artikull, shikoni në WordPress Codex.

Përgatitja e shabllonit

Le të përpiqemi të kuptojmë shabllonet e komenteve të WP dhe të krijojmë skedarin tonë për shfaqjen e komenteve në postimet dhe faqet e blogut. Si shembuj për referencë, ju mund të merrni shabllone nga temat standarde të WordPress. Le të krijojmë një dokument të ri në çdo redaktues teksti, ta quajmë comments.php dhe të fillojmë redaktimin.

  • Në parim, ju mund ta emërtoni skedarin si të doni, dhe më pas shkruani shtegun drejt këtij skedari në comments_template(), por është më mirë t'i përmbaheni emrit standard
  • Meqë ra fjala, mund ta modifikoni gjithashtu skedarin në panelin e administratorit të WP.
  • Sigurisht, është më mirë të shkruani kodin dhe të provoni menjëherë efektin e tij në blogun tuaj ose në një server lokal.

Në WordPress është e mundur të çaktivizoni komentet për postimet individuale, kështu që përpara se t'i shfaqni ato duhet të kontrolloni për "hapjen":

Ky është një kod mbështjellës për veprimet tona të mëtejshme. Tani le të përgatisim një enë për bllokun e komenteve me një klasë ose identifikues të saktë semantikisht (klasa është sigurisht e preferueshme):

Ne do të shkruajmë një titull brenda në mënyrë që lexuesit tuaj të kuptojnë se këtu ka komente dhe asgjë tjetër, etiketa do të jetë e duhura për këtë:

"

Këtu kemi treguar një nga funksionet e WordPress - the_title(), rezultati i ekzekutimit të këtij funksioni do të jetë dalja e titullit të postimit ose faqes aktuale. Nëse nuk dëshironi të shfaqni titullin, thjesht mund të shkruani "Komentet e lexuesve".

Më pas, përpara se të shfaqni komentet, duhet të siguroheni që ato ekzistojnë, d.m.th. kontrolloni, nëse ka, shfaqni listën e plotë, nëse jo, atëherë mund t'i tregoni përdoruesit diçka si "". Në këtë mënyrë, vizitori i postimit/faqes suaj do ta ketë të qartë se askush nuk ka shkruar ende asgjë dhe fraza motivuese "Mund të jesh i pari" do të rrisë gjasat që ata të shkruajnë diçka për ju më shpejt.

Pra, pas këtij formulimi të problemit, bëhet e qartë se për zbatim do të na duhen konstruktet if/else dhe një funksion për shfaqjen e numrit të komenteve get_comments_number() . Nëse funksioni kthen 0 (zero), atëherë shfaqim "Nuk ka komente akoma...", përndryshe "Komentet e lexuesit...":

Nuk ka ende komente, por ju mund të jeni komentet e para të lexuesve në artikullin "" Diskutimet janë mbyllur për këtë faqe

Dalja e komenteve

E shkëlqyeshme, ne kemi shfaqur titujt në varësi të pranisë ose mungesës së komenteve, tani është logjike të shfaqen vetë komentet - funksioni wp_list_comments() është përgjegjës për këtë. Funksioni i paracaktuar i mbështjell të gjitha komentet në etiketa

  • , kështu që duhet të shtoni një mbështjellës me caktimin e klasës.commentlist:

    wp_list_comments() merr një sërë argumentesh që mund të përdoren për të personalizuar në mënyrë fleksibël shfaqjen e komenteve. Për shembull, mund të ndryshoni madhësinë e avatarit, tekstin e përgjigjes së komentit dhe cilësimet e tjera duke kaluar një fjalë kyçe dhe vlerë:

    $args = array("avatar_size" => 64, // madhësia e avatarit 64*64px, e paracaktuar 32 "reply_text" => "Përgjigju" // teksti i përgjigjes ndaj komentit "callback" => "my_comments" // funksion për gjenerimin e një lloji të jashtëm komenti)

    Parametri i kthimit të thirrjes meriton një konsideratë të veçantë, i cili merr vlerën e emrit të një funksioni të personalizuar për shfaqjen e një komenti. Me ndihmën e tij, ju mund të personalizoni në mënyrë fleksibël pamjen e secilit koment. Kështu duket funksioni standard i daljes nga skedari comment-template.php:




     

    Mund të jetë e dobishme të lexoni: