Čas pridať komentár komentár odpoveď. WordPress komentáre – kompletný dizajn vzhľadu

WordPress má niekoľko typov obsahu, ako sú príspevky, stránky, komentáre. WordPress je veľmi flexibilná platforma, ktorá vám umožňuje prispôsobiť základný obsah tak, aby vyhovoval vašej stránke. Môžete zmeniť vzhľad a funkčnosť. V tomto návode vám ukážeme, ako zmeniť správanie a vzhľad komentárov na webe WordPress.

Krok 1. Pochopenie funkcie comment_form a jej argumentov

Poďme sa pozrieť na funkciu WordPress comment_form. Je zodpovedný za zobrazenie formulára komentára, ktorý sa objaví na stránke alebo príspevku. Volanie tejto funkcie sa nachádza hlavne v súbore comments.php v priečinku témy. Tento súbor je obsiahnutý na rôznych miestach, napríklad v súboroch single.php a page.php, priamo alebo prostredníctvom volania funkcie comments_template.

Popis funkcie nájdete v kódexe WordPress.

Ak na zobrazenie formulára použijete funkciu comment_form, vykreslí sa pomocou predvolených parametrov a bude obsahovať polia ako meno, e-mail (obe polia sú povinné), webová lokalita a obsah komentára. V predvolenej téme Twenty Eleven bude formulár vyzerať takto.

Niektoré dôležité argumenty funkcie comment_form:

  • polia – pomocou neho môžete ovládať zobrazovanie polí vo formulári komentára.
  • comment_notes_before a comment_notes_after – slúži na zobrazenie informácií pred a za formulárom.
  • title_reply – používa sa na zmenu názvu odpovede, ktorý je predvolene nastavený na „Leave a Reply“.
  • label_submit – používa sa na zmenu textu na tlačidle na odoslanie komentára.
Krok 2. Prispôsobte formulár komentárov pomocou funkcie comment_form

Teraz poďme nastaviť náš formulár komentárov odovzdaním argumentov funkcii comment_form.

V prípade, že potrebujeme upraviť polia vo formulári komentárov, musíme ich zoznam odovzdať funkcii comment_form. Funkcia štandardne používa nasledujúci zoznam polí:

$fields = array("autor" => "

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

", "e-mail" => " ", "url" => "

" . __("Webová lokalita") . "" ."

",);

Ak potrebujeme odstrániť pole, napríklad website , musíme ho jednoducho vylúčiť z poľa a odovzdať pole funkcii comment_form.

$commenter = wp_get_current_commenter(); $req = get_option("require_name_email"); $aria_req = ($req ? " aria-required="true"" : ""); $fields = array("autor" => "

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

", "e-mail" => " ",); $comments_args = array("polia" => $polia); comment_form($comments_args);

Okrem toho zmeníme aj názov formulára na „Pošlite nám prosím svoj hodnotný komentár“ a nápis na tlačidle na „Odoslať môj komentár“.

Na dokončenie úlohy odovzdáme nasledujúce argumenty do funkcie comment_form:

$commenter = wp_get_current_commenter(); $req = get_option("require_name_email"); $aria_req = ($req ? " aria-required="true"" : ""); $fields = array("autor" => "

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

", "e-mail" => " ",); $comments_args = array("fields" => $fields, "title_reply"=>"Pošlite nám svoj hodnotný komentár", "label_submit" => "Odoslať môj komentár"); comment_form($comments_args);

Teraz bude formulár komentára vyzerať takto:

Krok 3. Odstránenie polí z formulára pomocou háku

Formulár komentárov WordPress je tiež možné upraviť pomocou háčikov a filtrov. Toto nastavenie môže byť užitočné najmä pri práci s pluginom, keď potrebujete prispôsobiť viacero prvkov, no nie meniť súbory tém. Filter na pridávanie alebo odstraňovanie polí z formulára - " comment_form_default_fields "

Odstránime pole URL pomocou filtra. Vyššie uvedený kód je možné použiť v plugine alebo v súbore functions.php aktívnej témy.

Funkcia remove_comment_fields($fields) ( unset($fields["url"]); return $fields; ) add_filter("comment_form_default_fields","remove_comment_fields");

Krok 4. Pridajte údaje do formulára komentárov pomocou háku

Polia môžeme do formulára pridať pomocou filtra ‘comment_form_default_fields’. Pridajme pomocou filtra pole veku autora a toto pole uložme s ďalšími údajmi a zobrazme v komentári.

Pridajte pole, ako je toto:

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

" . __("Vek") . "" . "

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

#respond .comment-form-author label, #respond .comment-form-e-mail label, #respond .comment-form-url label, #respond .comment-form-age label, #respond .comment-form-comment label ( pozadie: #eee; -webkit-box-shadow: 1px 2px 2px rgba(204,204,204,0,8); -moz-box-shadow: 1px 2px rgba(204,204,204,0,8; farba: #55); : 13px minimálna šírka: 4px 10px;

Teraz bude náš formulár komentárov vyzerať takto:

Vek je teraz uložený ako dodatočná informácia. Musíte použiť háčik v „comment_post“:

Funkcia add_comment_meta_values($comment_id) ( if(isset($_POST["vek"])) ( $vek = wp_filter_nohtml_kses($_POST["vek"]); add_comment_meta($comment_id, "vek", $vek, false); ) ) add_action("príspevok_komentára", "meta_hodnoty_pridať_komentár", 1);

Po uložení údajov je možné ich vytlačiť ako komentár, ako je tento:

Krok 5. Nastavenie komentárov pre konkrétne typy príspevkov

Niekedy chcete použiť polia komentárov len pre určité typy príspevkov. Zmeňme kód tak, aby sa pole veku zobrazovalo len pre typ záznamu knihy:

Funkcia add_comment_fields($fields) ( if(is_singular("books")) ( $fields["age"] = "

" . __("Vek") . "" . "

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

Krok 6. Vytvorte funkciu spätného volania na zobrazenie komentárov

Funkcia wp_list_comments slúži na zobrazenie komentárov k príspevkom. V kóde WordPress funkcia je podrobne popísaná.

wp_list_comments má argument ' spätné volanie ', v ktorom môžete definovať funkciu, ktorá sa zavolá, keď sa zobrazí komentár.

V téme Twenty Eleven v súbore comments.php nájdete riadok:

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

Zmeňme to na:

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

Pre každý príspevok sa zavolá funkcia my_comments_callback.

Krok 7: Úprava štýlu komentárov

Teraz trochu zmeníme štýl komentára. Jednoducho zobrazíme obsah príspevku a pole veku, ktoré sme pridali skôr. Zmeníme aj farbu pozadia komentárov.

Kód funkcie „my_comments_callback“:

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

Popis a akceptované argumenty funkcie comments_template() a ďalších spomenutých v článku nájdete v kódexe WordPress.

Príprava šablóny

Pokúsme sa pochopiť šablóny komentárov WP a vytvoriť si vlastný súbor na zobrazovanie komentárov na blogových príspevkoch a stránkach. Ako príklady si môžete vziať šablóny zo štandardných tém WordPress. Vytvorme si nový dokument v ľubovoľnom textovom editore, nazvime ho comments.php a začnime upravovať.

  • V zásade môžete súbor pomenovať akokoľvek chcete a cestu k tomuto súboru napísať do comments_template(), ale je lepšie držať sa štandardného názvu
  • Mimochodom, súbor môžete upraviť aj na paneli správcu WP.
  • Najlepšie je, samozrejme, napísať kód a okamžite otestovať jeho účinok na svojom blogu alebo na lokálnom serveri.

Vo WordPresse je možné zakázať komentáre k jednotlivým príspevkom, takže pred ich zobrazením je potrebné skontrolovať „otvorenosť“:

Toto je kód obalu pre naše ďalšie akcie. Teraz pripravme kontajner pre blok komentárov so sémanticky správnou triedou alebo identifikátorom (trieda je samozrejme vhodnejšia):

Dovnútra napíšeme názov, aby vaši čitatelia pochopili, že tu sú komentáre a nič iné, štítok bude na to vhodný:

"

Tu sme naznačili jednu z funkcií WordPress – the_title(), výsledkom vykonania tejto funkcie bude výstup názvu aktuálneho príspevku alebo stránky. Ak nechcete zobraziť názov, môžete jednoducho napísať „Komentáre čitateľa“.

Ďalej sa pred zobrazením komentárov musíte uistiť, že existujú, t.j. skontrolujte, ak existuje, zobrazte úplný zoznam, ak nie, môžete používateľovi zobraziť niečo ako „“. Návštevníkovi vášho príspevku/stránky tak bude jasné, že ešte nikto nič nenapísal a motivujúca veta “Môžeš byť prvý” zvýši pravdepodobnosť, že ti niečo napíše rýchlejšie.

Po tejto formulácii problému je teda jasné, že na implementáciu budeme potrebovať konštrukty if/else a funkciu na zobrazenie počtu komentárov get_comments_number() . Ak funkcia vráti 0 (nulu), zobrazí sa „Zatiaľ žiadne komentáre...“, inak „Komentáre čitateľov...“:

Zatiaľ tu nie sú žiadne komentáre, ale môžete byť prvými čitateľmi komentárov k článku "" Diskusie pre túto stránku sú uzavreté

Výstup komentárov

Super, zobrazili sme hlavičky v závislosti od prítomnosti alebo absencie komentárov, teraz je logické zobrazovať komentáre samotné - má to na svedomí funkcia wp_list_comments(). Predvolená funkcia zabalí všetky komentáre do značiek

  • , takže by ste mali pridať obal s priradením triedy.zoznam komentárov:

    wp_list_comments() má množstvo argumentov, ktoré možno použiť na flexibilné prispôsobenie zobrazenia komentárov. Môžete napríklad zmeniť veľkosť avatara, text odpovede na komentár a ďalšie nastavenia zadaním kľúčového slova a hodnoty:

    $args = array("avatar_size" => 64, // veľkosť avataru 64*64px, predvolená hodnota 32 "reply_text" => "Reply" // text odpovede na komentár "callback" => "my_comments" // funkcia na generovanie externého typu komentára)

    Zvláštnu pozornosť si zasluhuje parameter callback, ktorý má hodnotu názvu vlastnej funkcie na zobrazenie komentára. S jeho pomocou môžete flexibilne prispôsobiť vzhľad každého komentára. Takto vyzerá štandardná výstupná funkcia zo súboru comment-template.php:




     

    Môže byť užitočné prečítať si: