Nastavení komentářů ve WordPressu. Vlastní výstup komentáře Události přidat komentář komentář

Nedávno se jeden z našich čtenářů zeptal, zda je možné povolit anonymní komentáře ve WordPressu. Ve výchozím nastavení nemohou uživatelé přidávat komentáře do WordPress, aniž by ve formuláři komentáře uvedli jméno a e-mailovou adresu. V tomto článku vám ukážeme, jak umožnit uživatelům anonymně zanechávat komentáře ve WordPressu. Ukážeme vám také, jak skrýt pole jména a e-mailu z formuláře komentáře.

Přezdívka: Ideální řešení

Většina Nejlepší způsob Povolit anonymní komentáře ve WordPressu – Povzbuďte uživatele, aby místo svého skutečného jména používali pseudonymy nebo přezdívky.

To vám umožní vybudovat komunitu a zároveň uživatelům umožní zůstat v anonymitě. Komentující budou muset stále opustit své emailová adresa, nicméně většina lidí, kteří chtějí zůstat v anonymitě, bude používat další boxy.

Tyto možnosti můžete zadat v zásadách pro komentáře a nad formulářem pro komentáře na ně poskytnout křížový odkaz.

Zatímco toto řešení je ideální a jediné, které doporučujeme, existují i ​​jiná řešení pro anonymitu autorů. Pamatujte však, že čím větší anonymitu web má, tím více spamu bude obsahovat.

Pole Jméno a E-mail budou volitelná

Další vrstvou anonymity, kterou můžete přidat, je učinit pole Jméno a E-mail zcela nepovinnými. Pokud uživatel odešle pouze komentář, bez jména nebo e-mailu, projde. Podívejme se, jak nastavit pole Jméno a E-mail jako volitelná.

Nejprve musíte jít do sekce Nastavení » Diskuse administrativní panel webu a zrušte zaškrtnutí políčka „Autor komentáře musí uvést jméno a e-mail“. Nyní musíte uložit změny a váš web bude přijímat komentáře bez jména a e-mailu.

Pouhým odstraněním tohoto zaškrtávacího políčka nebudou uživatelé informováni o tom, že nyní mohou zanechat komentáře bez uvedení jména nebo e-mailu. Můžete je na to upozornit označením příslušných polí jako volitelných. Doporučujeme také odstranit pole Web, abyste snížili množství spamu. Chcete-li to provést, musíte upravit formulář komentáře. Stačí zkopírovat a vložit následující kód do souboru functions.php vašeho motivu nebo :

Funkce wpb_alter_comment_form_fields($fields) ( // Upravte pole Název a zobrazte jej jako volitelná $fields["author"] = "

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

"; // Upravte pole E-mail a zobrazte jej jako volitelná $fields["email"] = " "; // Tento řádek odstraní pole Web z formuláře komentáře. $fields["url"] = ""; return $fields; ) add_filter("comment_form_default_fields", "wpb_alter_comment_form_fields");

Tento kód jednoduše přidá (Není nezbytné) do polí Jméno a E-mail ve formuláři komentáře. Odebere z něj také pole Site. Pokud chcete opustit „Stránky“, jednoduše odstraňte odpovídající řádky kódu. Takto bude vypadat váš formulář komentáře:

Jak úplně odstranit pole Jméno a E-mail z formuláře komentáře

Pro uživatele, kteří chtějí zcela odstranit pole Jméno a E-mail z formuláře komentáře, je zde malý kousek kódu, který vložíte do souboru functions.php vašeho motivu nebo :

Funkce wpb_alter_comment_form_fields($fields) ( unset($fields["author"]); unset($fields["email"]); unset($fields["url"]); return $fields; ) add_filter("comment_form_default_fields" , "wpb_alter_comment_form_fields");

Pokud váš formulář zobrazuje text Vaše e-mailová adresa nebude zveřejněna(Váš e-mail nebude zveřejněn), poté jej můžete skrýt úpravou souboru comments.php tématu. Najděte značku a nahraďte ji následujícím kódem:

"

" . __("Jméno a e-mailová adresa nejsou povinné.") . ($req ? $required_text: "") ."

")); ?>

Pokud nemůžete najít komentář_form, pak můžete tento text jednoduše skrýt přidáním následujícího kódu CSS do vašeho motivu nebo do podřízeného souboru motivu styl.css:

Komentář-poznámky ( display:none; )

Takto bude váš formulář pro komentář vypadat bez polí pro jméno, e-mail a web:

Upozornění na anonymní komentáře

Vezměte prosím na vědomí, že bez povinných e-mailových polí bude váš formulář přitahovat spoustu spamu. I když Akismet a Sucuri mohou blokovat některé špatné IP adresy, důrazně doporučujeme přidat captcha, abyste snížili spam.

Doufáme, že vám tento článek pomohl umožnit uživatelům anonymně komentovat ve WordPressu. Ukázali jsme spoustu stylů pro formuláře komentářů, takže pokud se chcete o tomto tématu dozvědět více, podívejte se na náš článek

Je čas začít se zdobením vážně vzhled Komentáře WordPress. 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 jich shromáždil několik zajímavé funkce, což pomůže zlepšit 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 ze šablony se využívá tvoření jednotlivých funkcí, ale i samotného cyklu systémový soubor comment-template.php . Ale ve vzácných případech se stane, že nastavení může být in Téma WordPress, 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í: funkce, stejně jako ta předchozí, je spojena s emailem uživatel. 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é; zarovnání textu: na střed; zdobení textu: žádné; ) .com_per ( ohraničení: střední žádné; barva: #666; zobrazení: blok; velikost písma: 11px; zarovnání textu: na střed; ) .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 k tomuto poli je třeba 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 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řidat nová vlastnost, která změní 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. 🙂

    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.