Botvinya přidat komentář komentář odpovědět. Doladění formuláře komentáře. Jak stylovat komentáře stromu

Je čas začít se stylováním komentářů na WordPressu vážně. Téměř ve všech tématech jsou konfigurovány systémovými soubory, což zase omezuje editaci jednotlivých funkcí. Myslím, že mnoho lidí se s tím setkalo, když potřebovali provést změny v komentářích, ale nemohli najít, kde přesně to bylo. Proto by bylo lepší přenést veškerou funkcionalitu do aktuálního tématu, což nám poskytne naprostou svobodu ovládání.

V tomto článku jsem dal dohromady několik zajímavých funkcí, které vám pomohou zlepšit vaše komentáře. Přesto vám umožňují vést dialogy jak se správcem webu, tak mezi uživateli. Odpovídejte na otázky, zakládejte různé diskuze, obecně zaveďte plnohodnotnou virtuální komunikaci. Je tedy nutné jim věnovat pozornost a uvést je do správné formy.

Zde je to, co uděláme:

  • Plné přizpůsobení
  • Vzhledový design
  • Číslování komentářů
  • Počítání zpráv na uživatele
  • Každému uživateli přiřaďte stav
  • A další drobnosti

Každý bod rozebereme zvlášť a na konci článku budou všechny funkce kompletně sestaveny do jednoho hotového kódu.

Přizpůsobení komentářů

Ve WordPressu se komentáře zobrazují pomocí funkce wp_list_comments, obvykle v souboru comments.php. A tvorba jednotlivých funkcí, stejně jako samotný cyklus, se využívá ze systémové šablony souboru comment-template.php. V ojedinělých případech se ale stane, že se nastavení může nacházet v tématu WordPress, souboru functions.php nebo comments.php.

Pokud tedy vaše téma nespadá do ojedinělých případů a potřebujete provést vlastní nastavení, otevřete soubor functions.php a před znak ?> přidejte následující kód:

If (! function_exists("my_comment")): function my_comments($comment, $args, $depth) (global $commentnumber; $GLOBALS["comment"] = $comment; switch ($comment->comment_type) : case " pingback" : případ "trackback" : ?>

  • ", ""); ?>
  • id="li-comment-">
    komentář_rodič) $avatar_size = 39; echo get_avatar($komentář, $velikost_avataru); /* překladatelé: 1: autor komentáře, 2: datum a čas */ printf(__("%1$s %2$s", "my_press"), sprintf(" %s", get_comment_author_link()), sprintf(" ", esc_url(get_comment_link($comment->comment_ID)), get_comment_time("c"), /* překladače: 1: datum, 2: čas */ sprintf(__("%1$s %2$s", " my_press"), get_comment_date(), get_comment_time()))); ?>
    comment_approved == "0") : ?>
    __("Reply", "my_press"), "hloubka" => $hloubka, "max_hloubka" => $args["max_hloubka"]))); ?>
    ", ""); ?>

    Poté do souboru comments.php přidejte volající funkci:

      "moje_komentáře")); $číslo komentáře = 0; ?>

    Po těchto manipulacích budou vaše komentáře vygenerovány pomocí funkce šablony ze souboru functions.php aktuálního tématu.

    Počítání komentářů na uživatele

    Pomocí níže uvedené funkce můžeme zobrazit celkový počet zbývajících zpráv vedle komentátora. Můžete tak sledovat, jak je uživatel aktivní, a kromě toho statistiky nejsou nikdy zbytečné, zejména v tomto ohledu.

    Otevřeme soubor functions.php, který již známe, a na konec před znak ?> přidáme následující kód:

    //funkce počítání uživatelských zpráv bac_comment_count_per_user() ( global $wpdb; $comment_count = $wpdb->get_var("SELECT COUNT(comment_ID) FROM ". $wpdb->comments." WHERE comment_author_email = "" . get_comment_author_email() ." " AND comment_approved = "1" AND comment_type NOT IN ("pingback", "trackback")"); if ($comment_count == 1) ( echo " 1 zpráva"; ) else ( echo " " . $comment_count . " Zprávy ";))

    Nyní zbývá pouze přidat funkci volání na místo, které potřebujete:

    Zprávy budou počítány na základě e-mailu uživatele, ať už registrovaného nebo ne. Berou se v úvahu pouze komentáře potvrzené správcem webu, ale komentáře v pohotovostním režimu a smazané nikoli.

    Každému uživateli přidělujeme status v závislosti na počtu komentářů

    To je přesně ten případ, kdy statistika rozhodně hraje důležitou roli. Protože funkce je postavena na základě počtu zpráv a výsledné číslo dává uživateli správný stav. Teoreticky se to používá na každém fóru k prokázání autority uživatele k danému zdroji.

    Znovu otevřete soubor functions.php a před znak ?> přidejte následující kód:

    //funkce stavu uživatele get_author_class($comment_author_email,$user_id)( global $wpdb; $adminEmail = get_option("admin_email"); $author_count = count($wpdb->get_results("VYBERTE ID_komentáře jako počet autorů Z $wpdb->AdminUseR "; if($author_count>=1 && $author_count<50 && $comment_author_email !==$adminEmail) echo "Прохожий"; else if($author_count>=50 && $author_count<100 && $comment_author_email !==$adminEmail) echo "Новичок"; else if($author_count>=100 && $author_count<250 && $comment_author_email !==$adminEmail) echo "Знающий"; else if($author_count>=250 && $author_count<400 && $comment_author_email !==$adminEmail) echo "Опытный"; else if($author_count>=400 &&$author_count<800 && $comment_author_email !==$adminEmail) echo "Бывалый"; else if($author_count>=800 && $author_count<1200 && $comment_author_email !==$adminEmail) echo "СуперПупер"; else if($author_count>Profesor" ;)

    A na požadovaném místě zobrazíme funkci volání:

    comment_author_email,$comment->user_id)?>

    Vysvětlení: tato funkce, stejně jako předchozí, je spojena s e-mailem uživatele. Pouze zde není hlavním úkolem jen počítání zpráv, ale počet od a do v závislosti na nastaveném počtu. A jakmile ho uživatel dosáhne, získá určitou pozici. K dispozici je celkem 7 statusů plus admin a insignie pro registrované účastníky.

    Kompletně dokončený kód komentáře

    Zde se dostáváme na konec tohoto článku. Zde jsem nelenil a shromáždil všechny funkce včetně nastavení komentářů do jednoho hotového kódu. Přidal jsem vlastní stylingové styly a výsledkem bylo něco jako minifórum.

    Otevřete soubor functions.php a na konec před znak ?> přidejte následující kód:

    //funkce počítání uživatelských zpráv bac_comment_count_per_user() ( global $wpdb; $comment_count = $wpdb->get_var("SELECT COUNT(comment_ID) FROM ". $wpdb->comments." WHERE comment_author_email = "" . get_comment_author_email() ." " AND comment_approved = "1" AND comment_type NOT IN ("pingback", "trackback")"); if ($comment_count == 1) ( echo " 1 zpráva"; ) else ( echo " " . $comment_count . " Zprávy "; ) ) //funkce stavu uživatele get_author_class($comment_author_email,$user_id)( globální $wpdb; $adminEmail = get_option("admin_email"); $author_count = count($wpdb->get_results("VYBRAT ID_komentáře jako počet autorů FROM $ wpdb->comments WHERE comment_author_email = "$comment_author_email" ")); if($comment_author_email ==$adminEmail) echo "Admin"; if($user_id!=0 && $comment_author_email !=$adminEmail) echo "UseR"; ($author_count>=1 && $author_count<50 && $comment_author_email !==$adminEmail) echo "Прохожий"; else if($author_count>=50 && $author_count<100 && $comment_author_email !==$adminEmail) echo "Новичок"; else if($author_count>=100 && $author_count<250 && $comment_author_email !==$adminEmail) echo "Знающий"; else if($author_count>=250 && $author_count<400 && $comment_author_email !==$adminEmail) echo "Опытный"; else if($author_count>=400 &&$author_count<800 && $comment_author_email !==$adminEmail) echo "Бывалый"; else if($author_count>=800 && $author_count<1200 && $comment_author_email !==$adminEmail) echo "СуперПупер"; else if($author_count>=1200 && $comment_author_email !==$adminEmail) echo "Profesor"; ) //přizpůsobení komentářů if (! function_exists("wordsmall_comment")) : function wordsmall_comment($comment, $args, $depth) (global $commentnumber; $GLOBALS["comment"] = $comment; switch ($comment- > comment_type): case "pingback" : case "trackback" : ?>

  • id="li-comment-">
    %s", get_comment_author_link()); ?> comment_parent)( $comment_parent_href = htmlspecialchars(get_comment_link($comment->comment_parent)); $comment_parent = get_comment($comment->comment_parent); ?> @Odpověď pro:komentář_autor;?>
    komentář_rodič) $avatar_size = 60; echo get_avatar($komentář, $velikost_avataru); ?> comment_author_email,$comment->user_id)?>
    comment_approved == "0") : ?>
    ", ""); ?> __("Odpověď", "wallpress"), "hloubka" => $hloubka, "max_hloubka" => $args["max_depth"]))); ?>

    Nyní otevřete soubor comments.php, najděte v něm funkci pro volání komentářů. Vypadá to nějak takto:

    Změnit na toto:

      "slovní_komentář")); ?>

    Poslední krok. Otevřete soubor style.css a na konec přidejte následující styly:

    My_commentlist( border-top:none; ) .my_commentlist .comment( padding:0 0 15px 0; border:none; ) .my_commentlist .pingback( padding:0 0 15px 0; border:none; ) .my_commentlist .comment .children ( list-style-type: none; padding:0px; margin-left:0px;/*pokud potřebujete odsazení pro krabice ve tvaru stromu, zadejte 15px*/ ) .my_commentlist .comment .children .comment( margin:15px 0 0 0 ; border: none; padding: 0; ) #comments ( background: #fff; ) #comments .my_commentlist ( margin: 10px 0; padding: 0; list-style: none; background: #ebf0f3; padding: 5px; ) # komentáře .my_commentlist .comment ( margin:0; padding: 0 0 10px; background: #fff; ) #comments .my_commentlist .my_comment-author ( display: inline; border-right: 1px solid #e0e0e0; width: 100px; float: left; margin : 0px 15px 10px 0; ) #comments .my_commentlist .commentmetadata ( float:left; ) #comments .my_commentlist p (clear:none; color: #555; font: 14px arial; line-height: 23px; ) # komentáře .my_commentlist .comment-content (levý okraj: 116px; padding-right: 10px; ) #comments .my_commentlist .reply ( text-align:right; ) #comments .my_commentlist .reply a( background: #f5f5f5; border: 1px solid rgba(0, 0, 0, 0.06); border-radius: 2px; color : #515456; display: inline-block; font-size: 13px; font-weight: normal; line-height: 30px; margin-right: 15px; min-height: 30px; padding: 0 12px; text-align: center ; text-decoration: none; ) .my_commentlist .avatar( border: medium none; border-radius: 50%; float: none; margin: 5px auto; padding: 0px; display: table; ) .my_commentlist .comment-header( výška: 30px; pozadí: #DEE5EB; margin-bottom: 15px; ) .my_commentlist cite.fn( color: #444; font: bold 13px/30px arial; padding-left: 10px; ) .my_commentlist .com_date ( color: # 8ca0b5; font: normal 13px/30px arial; float: right; padding-right: 15px; ) .my_commentlist .commentnumber (color: #8ca0b5; float: right; font: italic 13px/30px arial; padding-right: 15px; ) .my_commentlist .comment-body ( overflow: hidden; position: relativní; pozadí:#fff; ) .my_commentlist .rep-authorcom ( barva: #25394e; font-size: 13px; line-height: 30px; ) .my_commentlist .edit-link a ( background: none !important; border: none !important; border-radius: 0 !důležité; barva: #999!důležité; displej: vložený blok; velikost písma: 11px !důležité; váha písma: normální; výška řádku: 30px; pravý okraj: 5px !důležité; minimální výška: 30px ; padding: 0 !důležité; text-align: center; text-decoration: none; ) .com_per ( border: medium none; color: #666; display: block; font-size: 11px; text-align: center; ) .vip1,.vip, .vp, .vip2, .vip3, .vip4, .vip5, .vip6, .vip7 ( border: medium none; font: bold 13px arial; display: block; text-align: center; margin- bottom: 5px; text-decoration: none; ) .vp (color: #e82e24;).vip1 (color: #348be8;).vip2 (color: #BE005E;).vip3 (color: #2e517e;).vip4 ( color: #658a18;).vip5 (color: #00A56D;).vip6 (color: #e35d28;).vip7 (color: #99A400;).vip (color: #4c5176;font-size: 11px;margin: 0 ;)

    Kód je plně funkční a nezpůsobuje chyby, ale mohou být potřeba drobné změny stylů CSS.

    Toto jméno mnoho lidí neobtěžuje, ale někdy vyvstává otázka, jak změnit přidání komentáře, abyste zanechali recenzi nebo podobně. V tomto případě vám pomůže tento článek. Jak jsem psal výše, ukážu vám několik způsobů.

    Metoda č. 1

    U první metody musíte najít soubor ve složce s motivem, který je nainstalován na vašem webu komentáře.php. Pokud existuje, otevřete jej a vyhledejte v něm pole, které je zodpovědné za nastavení a zobrazení obsahu formuláře komentáře. Vypadá to nějak takto:

    $args = array("comment_notes_before" => "

    ", "pole komentáře" => "

    ", "id_submit" => "comm_subm", "label_submit" =>

    Takže do tohoto pole musíte přidat nový parametr s požadovanou hodnotou a je to. V našem případě je toto:

    "title_reply" => "Zanechte svou recenzi",

    Jak chápete - Zanechte svou recenzi, toto je nový název místo - Přidat komentář. Takový parametr můžete přidat na konec nebo na začátek pole. Dopadne to asi takto:

    $args = array("title_reply" => "Zanechte svou recenzi", "comment_notes_before" => "

    Vyplňte níže uvedená pole. Váš email nebude zveřejněn. Povinná pole jsou označena *

    ", "pole komentáře" => "

    ", "id_submit" => "comm_subm", "label_submit" => "Odeslat",); comment_form($args);

    Přidáno na začátek a nyní se na stránkách příspěvků zobrazí řádek - Zanechte svou recenzi. Tato metoda není složitá a vyžaduje minimální úsilí, hlavní věcí je správně definovat pole. Někdy se ale stane, že v motivu není žádný soubor comments.php nebo v něm není žádné pole a nevíte, jak ho tam správně přidat, pak vám pomůže druhá metoda.

    Metoda č. 2

    Podstatou druhé metody je přidání nové funkce, která nahradí název. Chcete-li to provést, ve složce s aktivním motivem musíte najít soubor funkce.php s vlastními funkcemi a na vhodném místě, pokud to neznáte, pak úplně na konci před závěrečnou značkou PHP - ?> , pokud nic takového neexistuje, přidejte na úplný konec následující kód:

    Funkce wph_change_submit_label($defaults) ( $defaults["title_reply"] = "Zanechte svou recenzi"; return $defaults; ) add_filter("comment_form_defaults", "wph_change_submit_label");

    Bonus

    To je v podstatě stejné jako to, co bylo provedeno v první metodě, jednoduše, tam jsme to implementovali přímo do pole a zde přes filtr. Po těchto krocích uvidíte změnu názvu. Stejně jako v první metodě můžete změnit text - Nechte svou recenzi na tu, která se vám líbí. Tento text je uveden jako příklad.

    Chci také navrhnout a upozornit na skloňování slova Komentáře. Pokud váš formulář zobrazuje řádek - 1 komentář publikován nebo Komentáře: 10. Můžete použít funkci z článku. Pokud jej již používáte, doporučuji v řádku s polem:

    Array("komentář","komentář","komentáře")

    Změňte názvy na recenze, recenze, recenze, pokud jste toto slovo použili ve výše uvedených metodách. tímto způsobem budete mít vše stejné a ne rozházené, jsou zde recenze a jsou komentáře.

    Toto jsou informace, které jsem vám dnes chtěl poskytnout. Třeba se to někomu bude hodit.

    To je vše, děkuji za pozornost. 🙂

    Nedávno jsem se ponořil do souborů mého WordPress tématu, konkrétně do pravidel pro šablonu zobrazování komentářů, zároveň jsem porozuměl její struktuře a různým funkcím zodpovědným za zobrazování komentářů u příspěvků na blogu. V důsledku toho jsem změnil standardní výstup, vytvořil a zahrnul vlastní soubor comments.php. Získaný výsledek jsem se rozhodl prezentovat ve formě článku, protože jsem tomuto tématu dobře rozuměl a materiálu bylo poměrně hodně.

    Doufám, že článek bude užitečný pro majitele blogů na WordPressu obeznámené s HTML, CSS a PHP.

    ***

    Chcete-li ve WordPressu připojit šablonu komentáře k příspěvku nebo stránce, použijte funkci comments_template(), která přebírá dva parametry:

    • první je cesta k souboru šablony, standardně je to comments.php ve složce s aktuálním tématem
    • druhý se používá k oddělení komentářů podle typu (běžné, zpětné odkazy a zpětné odkazy), ve výchozím nastavení false

    Vložme comments_template() po zobrazení záznamu v šabloně příspěvku single.php nebo page page.php .

    Popis a přijaté argumenty funkce comments_template() a dalších zmíněných v článku naleznete v kodexu WordPress.

    Příprava šablony

    Pokusme se porozumět šablonám komentářů WP a vytvořit si vlastní soubor pro zobrazování komentářů na blogových příspěvcích a stránkách. Jako příklady pro referenci si můžete vzít šablony ze standardních témat WordPress. Vytvořme nový dokument v libovolném textovém editoru, nazvěme ho comments.php a začněme upravovat.

    • V zásadě můžete soubor pojmenovat libovolně a cestu k tomuto souboru pak napsat do comments_template(), ale je lepší se držet standardního názvu
    • Mimochodem, soubor můžete také upravit v administračním panelu WP.
    • Nejlepší je samozřejmě napsat kód a okamžitě otestovat jeho účinek na svém blogu nebo na místním serveru.

    Ve WordPressu je možné zakázat komentáře k jednotlivým příspěvkům, takže před jejich zobrazením je třeba zkontrolovat „otevřenost“:

    Toto je kód obalu pro naše další akce. Nyní si připravíme kontejner pro blok komentářů

    se sémanticky správnou třídou nebo identifikátorem (třída je samozřejmě výhodnější):

    Uvnitř

    napišme název, aby vaši čtenáři pochopili, že jsou zde komentáře a nic jiného, ​​označte

    Tohle bude přesně pro tohle:

    "

    Zde jsme uvedli jednu z funkcí WordPressu – the_title(), výsledkem spuštění této funkce bude výstup nadpisu aktuálního příspěvku nebo stránky. Pokud nechcete zobrazovat název, můžete jednoduše napsat „Komentáře čtenářů“.

    Dále se před zobrazením komentářů musíte ujistit, že existují, tzn. zkontrolujte, pokud existuje, zobrazte úplný seznam, pokud ne, můžete uživateli ukázat něco jako „“. Návštěvníkovi vašeho příspěvku/stránky tak bude jasné, že ještě nikdo nic nenapsal a motivující věta „Můžete být první“ zvýší pravděpodobnost, že vám něco napíše rychleji.

    Po této formulaci problému je tedy jasné, že pro implementaci budeme potřebovat konstrukce if/else a funkci pro zobrazení počtu komentářů get_comments_number() . Pokud funkce vrátí 0 (nulu), zobrazí se „Zatím žádné komentáře...“, jinak „Komentáře čtenářů...“:

    Zatím zde nejsou žádné komentáře, ale můžete být první

    Komentáře čtenářů k článku ""

    Diskuze pro tuto stránku jsou uzavřeny

    Výstup komentářů

    Skvělé, zobrazili jsme nadpisy v závislosti na přítomnosti či nepřítomnosti komentářů, nyní je logické zobrazovat komentáře samotné - má to na svědomí funkce wp_list_comments(). Výchozí funkce zabalí všechny komentáře do značek

  • , takže by měl být přidán obal
      se seznamem komentářů:

      wp_list_comments() přebírá řadu argumentů, které lze použít k flexibilnímu přizpůsobení zobrazení komentářů. Můžete například změnit velikost avatara, text odpovědi na komentář a další nastavení předáním klíčového slova a hodnoty:

      $args = array("avatar_size" => 64, // velikost avataru 64*64px, výchozí 32 "reply_text" => "Reply" // text odpovědi na komentář "callback" => "my_comments" // funkce pro generování externího typu komentáře)

      Zvláštní pozornost si zaslouží parametr zpětného volání, který má hodnotu názvu vlastní funkce pro zobrazení komentáře. S jeho pomocí si můžete flexibilně přizpůsobit vzhled každého komentáře. Takto vypadá standardní výstupní funkce ze souboru comment-template.php:

    1. id="li-comment-">
      "); ?> %s říká:"), get_comment_author_link()) ?>
      comment_approved == "0") : ?>
      $depth, "max_depth" => $args["max_depth"]))) ?>

      Nejjednodušší způsob je vzít tuto funkci a upravit si ji pro sebe a poté ji zavolat jako vlastní tak, že ji zapíšete do souboru comments.php nebo functions.php.

      Po zobrazení seznamu komentářů můžete změnit jejich vzhled pomocí stylů CSS. Některé parametry wp_list_comments() jsou duplikovány ve WP admin, záložka Možnosti → Diskuze, zejména přítomnost stromových komentářů, řazení podle data atd.

      Formulář pro odeslání komentáře

      Chcete-li přidat formulář komentáře, použijte funkci comment_form(). Přidejme to pod seznam komentářů:

      Zatím zde nejsou žádné komentáře, ale můžete být první

      Komentáře čtenářů k článku ""

      1. 64, "reply_text" => "Odpovědět", "zpětné volání" => "moje_komentáře"); wp_list_comments($args); ?>

      Diskuze pro tuto stránku jsou uzavřeny

      Když je zavoláno tímto způsobem, comment_form() načte standardní kód ze souboru WordPress comment-template.php. Funkce má dva parametry:

      Comment_form($args, $post_id);

      • $args — pole nastavení výstupu formuláře
      • $post_id — id příspěvku, na který bude funkce aplikována, standardně aktuální příspěvek

      Pojďme například ověřit pole formuláře v HTML5 a přidat textové nápovědy. Vytvořme pole $args pro zadání požadovaných nastavení:

      $args = pole(); comment_form($args);

      Musíte zaregistrovat klíče nastavení v poli:

      $args = array("fields" => apply_filters("comment_form_default_fields", $fields));

      Nyní musíme vyplnit proměnnou pole $fields, která obsahuje pole formuláře. Nejjednodušší způsob je vzít standardní WordPress kód z comment-template.php a trochu ho změnit:

      "

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

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

      " . "

      "); $args = array("fields" => apply_filters("comment_form_default_fields", $fields)); comment_form($args); ?>

      Zde jsou hodnotami parametrů autor , email a url html kód polí „Jméno“, „Pošta“ a „Stránka“. Tyto hodnoty je nutné upravit.

      Pro pole musíme přidat následující atributy:

      • povinné – pole jsou povinná, přidejte je do polí „Název“ a „Stránka“.
      • zástupný symbol – přidá do pole textovou nápovědu
      • pattern="(3,)" pro pole "Name" - uveďte název písmeny latinské nebo ruské abecedy a délku alespoň 3 znaků
      • type="email" pro pole "Mail" - přidá se ověření e-mailu HTML5
      • automatické doplňování – umožňuje automatické doplňování polí
      • type="url" do pole "Web".

      Pamatujte, že nové atributy HTML5 nebudou fungovat ve starších prohlížečích. Ty prohlížeče, které novým typům polí nerozumí, je jednoduše zobrazí jako text, tzn. .

      Kromě toho jsem pro svůj blog vyměnil tagy sem a tam, přidal třídy pro stylování a jako výsledek jsem získal následující kód pro pole $fields:

      "

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

      "); ?>

      Změnili jsme pole pro zadávání dat. Nyní upravíme samotný formulář komentáře

      " ?>

      Toto je standardní WordPress kód, jen jsem ho trochu upravil - přidal jsem textovou nápovědu a napsal další třídu pro styling.

      To je to, co jsem skončil s použitím stylů CSS:

      Formulář komentáře WordPress pomocí atributů HTML5

      Sečteno a podtrženo

      Nakonec zveřejním svůj výsledný kód comments.php:

      čtenáři článku""

      • Zanechte první komentář - autor se snažil
      1. id="li-comment-">
        "); ?> %s píše:"), get_comment_author_link()) ?>
        comment_approved == "0") : ?>
        $depth, "max_depth" => $args["max_depth"]))) ?>
        "Odpovědět", "zpětné volání" => "verstaka_comment"); wp_list_comments($args); ?>
      "

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

      "); $args = array("comment_notes_after" => "", "comment_field" => "

      ", "label_submit" => "Odeslat", "fields" => apply_filters("comment_form_default_fields", $fields)); comment_form($args); ?>

      Diskuze pro tuto stránku jsou uzavřeny

      Časté dotazy o komentářích

      Jak zvýraznit komentáře autora a uživatelů?

      Někdy je velmi vhodné nastavit samostatný vzhled pro komentáře autora, existují na to dokonce speciální pluginy. Můžete se však obejít bez jakýchkoli pluginů – jednoduše napsáním stylů pro třídu .bypostauthor do css souboru. Podobně můžete nastavit styly pro komentáře uživatelů - .bypostuser:

      Jak stylovat stromové komentáře?

      Chcete-li povolit stromové komentáře, musíte přejít do správce WP, Nastavení → Diskuze → Povolit stromové komentáře. Nyní budou mít podřízené komentáře stromovou strukturu, lze jim přidělit individuální styly, například odsazení. Vše, co musíte udělat, je nastavit pravidla v css pro seznam s class.children:

      Seznam komentářů .children ( odsazení: 0 0 0 40px; /* levé odsazení pro dětské komentáře */ )

      Styly pro sudé a liché komentáře

      WordPress ve výchozím nastavení dává lichým komentářům třídu .sudé a sudým komentářům třídu .liché . Pomocí těchto tříd je snadné nastavit vlastní styly:

      Commentlist .even ( /* styly pro liché komentáře */ ) .commentlist .liché ( /* styly pro sudé komentáře */ )

      Jak uzavřít komentáře u samostatného příspěvku?

      Je to velmi snadné – přejděte na stránku pro psaní příspěvku, Nastavení obrazovky → Diskuze, pod polem příspěvku se zobrazí blok Diskuze, zrušte zaškrtnutí položky Povolit komentáře.

      • Při vytváření vlastní šablony komentářů můžete použít soubory comments.php ze standardních a dalších placených i bezplatných WordPress témat
      • Alternativou ke standardním komentářům jsou pluginy pro formuláře komentářů třetích stran, například populární DISQUS
      • Je docela dobře možné upravovat kód přímo v samotném souboru comment-template.php, pokud je však WordPress aktualizován, veškerý kód se přepíše - budete muset upravit znovu
      • Pamatujte, že neexistuje žádná dokonalá šablona komentáře.

      Pomozte projektu

      65 hlasů, průměr: 4,46 z 5)

      Už je to nějaký čas, co jsem psal něco o WordPressu. Proto se s vámi dnes podělím o to, jak můžete ručně změnit formulář komentáře ve WordPressu. Myslím, že tyto znalosti se mohou hodit každému začínajícímu blogerovi, protože komentující formulář je někdy jediným prostředkem komunikace mezi návštěvníky a autorem. Nechoď kolem :)

      Než začneme s jakýmikoli manipulacemi s kódem, chci vás předem upozornit, že budeme upravovat soubory samotného WordPressu, nikoli soubory motivů. Ano, někomu to může připadat nebezpečné, jinému nesmyslné a jiným se to prostě líbit nebude :) Ale já to přesně tak udělal a neměl jsem žádný problém. Doporučuji vám, abyste si před zahájením vytvořili zálohu souboru, který upravujete.
      Varoval jsem vás před bezpečností, teď chci ukázat výsledek, ke kterému jsem dospěl.


      Jak vidíme, řádek „Váš e-mail nebude zveřejněn“ byl odstraněn. Povinná pole jsou označena *“. Návštěvníky není třeba považovat za tupce bez mozku. Už chápou, co je potřeba vyplnit a co ne. Názvy polí jsem také schoval do samotných polí. K čemu jsou tyto tučné poznámky? Většina návštěvníků, a to i bez názvů oborů, dokáže „od oka“ určit, které z nich k čemu patří. Ale vnitřní narážky musí být stále přítomny. No, popisek do pole komentáře ztratil zbytečnou smělost. Podle mě se to stalo mnohem lepší a svobodnější.

      Pojďme tedy vše rychle změnit! ;)
      Přejdeme do složky našeho webu a najdeme v ní soubor wp-includes/comment-template.php. Hledáme v něm linku 1522, ano, to je ono. Jak jsem to sám našel je celý příběh, o tom vám povím později :)
      Otevřete tedy soubor pro úpravy a přejděte na řádek 1522. Nyní a následující (až 1529) jsou přibližně takto:

      $fields = array("author" => "

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

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

      " . "

      ",);

      Jak je vše jednoduché a jasné. Stačí vyjmout veškerý přebytek a trochu přidat. Parametr bude přidán

      Placeholder="Text nápovědy" !}

      Tato možnost umožňuje zobrazit libovolný text uvnitř polí. Používáme jej k zobrazení nápověd:

      "

      " "

      " "

      "

      Smažeme řádky:

      "

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

      "

      Jsou zodpovědní za zobrazování titulků nad poli.
      V důsledku VŠECH těchto manipulací získáme následující:

      $fields = array("author" => "

      ", "e-mail" => "

      ", "url" => "

      ",);

      Nezbývá než odstranit stupidní narážku „Váš e-mail nebude zveřejněn. Povinná pole jsou označena *“. Chcete-li to provést, odstraňte řádek (přibližně 1537):

      "comment_notes_before" => "

      " . __("Vaše e-mailová adresa nebude zveřejněna.") . ($req ? $required_text: "") ."

      ",

      To se zdá být vše, nyní se naše forma stala o něco atraktivnější. Doufám, že tyto informace budou pro někoho užitečné :)

      Odebírejte, komentujte, budu rád za adekvátní komentáře. Možná sám něco nevím a jde to udělat jinak, podělte se o své myšlenky.

      Ahoj!

      Dnešní článek je věnován Výstup komentáře WordPress. Podíváme se, které soubory a funkce obsahují kód zodpovědný za zobrazování komentářů. Co je třeba udělat, abyste mohli provádět změny v tomto bloku blogu WordPress.

      Začnu tím, že každá WordPress šablona (téma) má soubor komentáře.phpÚplná cesta k němu z kořenového adresáře je: /wp-content/themes/template_folder/comments.php

      Přesně komentáře.php je obecně zodpovědný za blok komentářů v konkrétním tématu WordPress.

      Co je nejčastěji obsaženo v comments.php:

      – zkontrolujte ochranu komentářů heslem

      – kontrola, zda jsou u článku povoleny komentáře

      – kontrola komentářů a zobrazení odpovídajícího textu („Žádné komentáře...“ nebo „Zbývá N komentářů“)

      volání funkce výstupu komentáře – wp_list_comments()

      – výstup navigace (stránkování) při vkládání komentářů na více stránek

      – zobrazení formuláře pro zanechání komentáře k článku

      Zde je jasné, že můžete definovat své třídy nebo měnit vlastnosti v styl.css pro již existující třídy. Můžete tak změnit vzhled formuláře pro zanechání komentářů a textů před seznamem komentářů a za tímto seznamem nebo formulářem. Ale Výstupní styly samotných komentářů nelze v comments.php měnit.

      Když jsem vypsal obsah souboru komentáře.php, pak konkrétně zdůraznil, že v komentáře.php existuje pouze volání funkce pro zobrazení komentářů wp_list_comments(), ale ne samotný závěr. Tito. PROTI komentáře.php nenajdete (alespoň v nejnovějších verzích WordPressu a při správném přístupu k vývoji šablon): zobrazení jména autora zprávy a odkazu na jeho web, zobrazení avatara autora, zobrazení data a času komentář, samotný komentář a odkaz „odpovědět“.

      Jak změnit styly v seznamu komentářů?

      Nejprve musíte zjistit, zda vaše šablona používá vlastní funkci pro zobrazení komentářů.

      Funkci wp_list_comments() lze volat bez zpětného volání (zpětné volání je funkce zpětného volání) a se zpětným voláním.

      1. Zavolejte wp_list_comments bez zpětného volání:

      Tito. v parametrech funkce (to, co je v závorkách za názvem) není žádný parametr nazvaný „callback“.

      Pokud v komentář.php vaše šablona je taková situace to znamená, že toto téma nemá vlastní (uživatelskou) funkci pro zobrazování komentářů a k tomu se používá standardní šablona (šablona z jádra WordPressu). Nachází se v souboru. A od té doby V tomto případě nebudeme moci změnit styly zobrazení komentářů, dokud nepřejdeme na druhou možnost.

      2. Zavolejte wp_list_comments se zpětným voláním:

      "type=comment&avatar_size=48&callback=custom_comment") ; ?>

      callback=custom_comment to naznačuje pro zobrazení komentářů máme vlastní funkci custom_comment , jehož kód, zhruba řečeno, předáme jako parametr pro provedení standardní funkci wp_list_comments. Nás už ale nezajímá technická stránka této problematiky, ale přítomnost v šabloně vlastní funkce pro zobrazování komentářů. Kód pro tuto funkci se nachází v .

      Přesně v této vlastní funkci custom_comment a je umístěn kód zodpovědný za vzhled jednotlivého komentáře, a tedy všech komentářů jako celku.

      Vlastní kód funkce je intuitivní. Obvykle používá následující standardní funkce WordPress:

      get_comment_author_link()– obdrží html odkaz na webovou stránku autora aktuálního komentáře;

      get_comment_date()– získá datum komentáře;

      get_comment_time()– dostane čas na komentář;

      text_komentáře()– zobrazí text komentáře;

      V kódu můžete najít úryvky s těmito funkcemi a změnit vzhled určitých prvků jejich orámováním do div nebo spans a přiřazením konkrétních tříd stylu.

      Například v kódu vlastní funkce fragment výstupu avatara:

      < div class = "comment-author" >

      < / div >

      Nyní zůstává v styl.css nastavte požadované vlastnosti třídy komentář-autor. Na konkrétní příklady změny stylů se podívám podrobněji v některém z následujících článků.

      Možná se teď ptáte: „ Co když moje šablona nemá funkci vlastního komentáře?

      Odpověď: musíte ji vytvořit.

      Nejjednodušší možností je zkopírovat kód standardní funkce WordPress komentář().

      Pokyny pro vytvoření vlastní funkce pro zobrazení komentářů:

      1. Otevřete soubor /wp-includes/comment-template.php a najděte v něm funkci komentář().

      Zde je začátek jejího popisu

      /** * @since 3.6 * @access protected * * @param object $comment Komentář k zobrazení. * @param int $depth Hloubka komentáře. * @param pole $args Volitelné argumenty. */ komentář chráněné funkce ($comment, $depth, $args) (

      * @od 3.6

      * Chráněno @přístupem

      * @param objekt $comment Komentář k zobrazení.

      * @param int $depth Hloubka komentáře.

      * @param pole $args Volitelné argumenty.

      komentář chráněné funkce ($comment, $depth, $args) (

      2. Zkopírujte celé tělo funkce komentář().

      Musíte zkopírovat fragment kódu od začátku popisu zobrazeného v kroku 1 do uzavírací složené závorky } a následující podobný popis jiné funkce