Botvinya lägg till kommentar kommentar svar. Finjustera kommentarsformuläret. Hur man stilar trädkommentarer

Det är dags att göra allvar med styling av dina WordPress-kommentarer. I nästan alla teman konfigureras de av systemfiler, vilket i sin tur begränsar redigering av enskilda funktioner. Jag tror att många har stött på detta när de behövt göra ändringar i kommentarer, men inte hittat exakt var det var. Därför skulle det vara bättre att överföra all funktionalitet till det aktuella temat, vilket ger oss fullständig kontrollfrihet.

I den här artikeln har jag satt ihop några intressanta funktioner som hjälper dig att förbättra dina kommentarer. Ändå låter de dig föra dialoger både med webbplatsens administratör och mellan användare. Svara på frågor, starta olika diskussioner, i allmänhet införa fullfjädrad virtuell kommunikation. Så det är nödvändigt att uppmärksamma dem och föra dem i rätt form.

Så här gör vi:

  • Full anpassning
  • Utseende design
  • Numrering av kommentarer
  • Räknar meddelanden per användare
  • Tilldela en status till varje användare
  • Och andra småsaker

Vi kommer att analysera varje punkt separat, och i slutet av artikeln kommer alla funktioner att samlas helt i en färdig kod.

Anpassa kommentarer

I WordPress visas kommentarer genom funktionen wp_list_comments, vanligtvis i filen comments.php. Och bildandet av individuella funktioner, såväl som själva cykeln, används från systemfilmallen comment-template.php. Men i sällsynta fall händer det att inställningen kan finnas i WordPress-temat, functions.php eller comments.php-filen.

Så om ditt tema inte faller i ett sällsynt fall och du behöver göra dina egna inställningar, öppna filen functions.php och före ?>-tecknet lägg till följande kod:

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

  • ", ""); ?>
  • id="li-kommentar-">
    comment_parent) $avatar_size = 39; echo get_avatar($comment, $avatar_size); /* översättare: 1: kommentarsförfattare, 2: datum och tid */ 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"), /* översättare: 1: datum, 2: tid */ sprintf(__("%1$s %2$s", " min_press"), get_comment_date(), get_comment_time()))); ?>
    comment_approved == "0") : ?>
    __("Svara", "min_press"), "djup" => $djup, "max_djup" => $args["maxdjup"]))); ?>
    ", ""); ?>

    Lägg sedan till en anropsfunktion i filen comments.php:

      "mina kommentarer")); $kommentarnummer = 0; ?>

    Efter dessa manipulationer kommer dina kommentarer att genereras med hjälp av en mallfunktion från functions.php-filen för det aktuella temat.

    Räknar kommentarer per användare

    Med hjälp av funktionen som presenteras nedan kan vi visa det totala antalet meddelanden som lämnats bredvid kommentatorn. Således kan du observera hur aktiv användaren är, och dessutom är statistik aldrig överflödig, särskilt i detta avseende.

    Vi öppnar functions.php-filen som vi redan är bekanta med och lägger till följande kod i slutet före ?>-tecknet:

    //counting user messages function bac_comment_count_per_user() ( global $wpdb; $comment_count = $wpdb->get_var("VÄLJ 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 meddelande"; ) else ( echo " " . $comment_count . " Meddelanden ";))

    Nu återstår bara att lägga till samtalsfunktionen till den plats du behöver:

    Meddelanden kommer att räknas baserat på användarens e-post, oavsett om de är registrerade eller inte. Endast kommentarer som bekräftats av webbplatsens administratör tas med i beräkningen, men de som är i standby-läge och raderade gör det inte.

    Vi tilldelar en status till varje användare beroende på antalet kommentarer

    Detta är just fallet där statistik definitivt spelar en viktig roll. Eftersom funktionen bygger på antalet meddelanden, och det resulterande numret ger användaren rätt status. Detta används i teorin på varje forum för att visa användarens auktoritet på en given resurs.

    Öppna functions.php-filen igen och före ?>-tecknet lägg till följande kod:

    //user status function get_author_class($comment_author_email,$user_id)( global $wpdb; $adminEmail = get_option("admin_email"); $author_count = count($wpdb->get_results("VÄLJ kommentar_ID som författare_antal FRÅN $wpdb->Ad "; 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>Professor" ;)

    Och på önskad plats visar vi anropsfunktionen:

    comment_author_email,$comment->user_id)?>

    Förklaring: denna funktion, liksom den föregående, är kopplad till användarens e-post. Endast här är huvuduppgiften inte bara att räkna meddelanden, utan antalet från och till beroende på det inställda numret. Och när användaren väl når det får han en viss position. Det finns totalt 7 statusar plus admin och insignier för registrerade deltagare.

    Helt färdig kommentarskod

    Här kommer vi till slutet av denna artikel. Här var jag inte lat och samlade alla funktioner, inklusive att sätta upp kommentarer, i en färdig kod. Jag lade till mina egna stylingstilar och resultatet blev något som ett miniforum.

    Öppna filen functions.php och lägg till följande kod i slutet före ?>-tecknet:

    //counting user messages function bac_comment_count_per_user() ( global $wpdb; $comment_count = $wpdb->get_var("VÄLJ 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 meddelande"; ) else ( echo " " . $comment_count . " Meddelanden "; ) ) //user status function get_author_class($comment_author_email,$user_id)( global $wpdb; $adminEmail = get_option("admin_email"); $author_count = count($wpdb->get_results("VÄLJ kommentar_ID som författare_count 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 if "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 "Professor"; ) //customize comments 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-kommentar-">
    %s", get_comment_author_link()); ?> comment_parent)( $comment_parent_href = htmlspecialchars(get_comment_link($comment->comment_parent)); $comment_parent = get_comment($comment->comment_parent); ?> @Svara för:comment_author;?>
    comment_parent) $avatar_size = 60; echo get_avatar($comment, $avatar_size); ?> comment_author_email,$comment->user_id)?>
    comment_approved == "0") : ?>
    ", ""); ?> __("Svara", "wallpress"), "depth" => $djup, "max_djup" => $args["max_djup"]))); ?>

    Öppna nu comments.php-filen, hitta i den funktionen för att anropa kommentarer. Det ser ut ungefär så här:

    Ändra till detta:

      "wordsmall_comment")); ?>

    Det sista steget. Öppna filen style.css och lägg till följande stilar i slutet:

    My_commentlist( border-top:none; ) .my_commentlist .comment( padding:0 0 15px 0; border:ingen; ) .my_commentlist .pingback( padding:0 0 15px 0; border:ingen; ) .min_kommentarlista .comment . list-style-type: none; padding:0px; margin-left:0px;/*om du behöver indrag för trädformade rutor, sätt 15px*/ ) .my_commentlist .comment .children .comment( margin:15px 0 0 0 ; kantlinje: ingen; utfyllnad: 0; ) #kommentarer (bakgrund: #fff; ) #kommentarer .min_kommentarlista (marginal: 10px 0; utfyllnad: 0; liststil: ingen; bakgrund: #ebf0f3; utfyllnad: 5px; ) # kommentarer .my_commentlist .comment ( margin:0; utfyllnad: 0 0 10px; bakgrund: #fff; ) #comments .my_commentlist .my_comment-author ( display: inline; border-right: 1px solid #e0e0e0; width: 100px; float: vänster; marginal : 0px 15px 10px 0; ) #comments .my_commentlist .commentmetadata ( float:left; ) #comments .my_commentlist p ( clear:none; color: #555; font: 14px arial; line-height: 23px; kommentarer .my_commentlist .comment-content (marginal-vänster: 116px; utfyllnad-höger: 10px; ) #comments .my_commentlist .reply ( text-align:right; ) #comments .my_commentlist .reply a( bakgrund: #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; utfyllnad: 0 12px; text-align: center ; text-dekoration: ingen; ) .my_commentlist .avatar( border: medium ingen; border-radius: 50%; float: ingen; marginal: 5px auto; utfyllnad: 0px; display: table; ) .my_commentlist .comment-header( höjd: 30px; bakgrund: #DEE5EB; margin-bottom: 15px; ) .my_commentlist cite.fn( color: #444; font: bold 13px/30px arial; padding-left: 10px; ) .my_commentlist .com_date (färg 8ca0b5; typsnitt: normal 13px/30px arial; float: höger; padding-right: 15px; ) .my_commentlist .commentnumber (färg: #8ca0b5; float: höger; teckensnitt: kursiv 13px/30px arial; padding-höger: )15px .my_commentlist .comment-body ( overflow: hidden; position: relativ; bakgrund:#fff; ) .my_commentlist .rep-authorcom ( färg: #25394e; font-size: 13px; line-height: 30px; ) .my_commentlist .edit-link a ( bakgrund: ingen !viktig; kantlinje: ingen !viktig; kantradius: 0 !viktigt; färg: #999!viktigt; display: inline-block; font-size: 11px !important; font-weight: normal; line-height: 30px; margin-right: 5px !important; min-höjd: 30px ; padding: 0 !important; text-align: center; text-decoration: none; ) .com_per ( kantlinje: medium ingen; färg: #666; display: block; font-size: 11px; text-align: center; ) .vip1,.vip, .vp, .vip2, .vip3, .vip4, .vip5, .vip6, .vip7 (kant: medium ingen; teckensnitt: fet 13px arial; display: block; textjustera: mitten; marginal- botten: 5px; text-dekoration: ingen; ) .vp (färg: #e82e24;).vip1 (färg: #348be8;).vip2 (färg: #BE005E;).vip3 (färg: #2e517e;).vip4 ( färg: #658a18;).vip5 (färg: #00A56D;).vip6 (färg: #e35d28;).vip7 (färg: #99A400;).vip (färg: #4c5176;font-size: 11px;marginal: 0 ;)

    Koden fungerar fullt ut och orsakar inga fel, men mindre ändringar av CSS-stilarna kan behövas.

    Detta namn stör inte många, men ibland uppstår frågan om hur man ändrar lägg till en kommentar för att lämna en recension eller liknande. I det här fallet kommer den här artikeln att hjälpa dig. Som jag skrev ovan ska jag visa dig ett par sätt.

    Metod nr 1

    För den första metoden måste du hitta filen i mappen med temat som är installerat på din webbplats kommentarer.php. Om det finns en, öppna den och leta efter arrayen i den som är ansvarig för att ställa in och visa innehållet i kommentarsformuläret. Det ser ut ungefär så här:

    $args = array("comment_notes_before" => "

    ", "comment_field" => "

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

    Så till den här arrayen måste du lägga till en ny parameter med önskat värde och det är det. I vårt fall är detta:

    "title_reply" => "Lämna din recension",

    Som du förstår - Lämna din recension, detta är det nya namnet istället för - Lägg till en kommentar. Du kan lägga till en sådan parameter i slutet eller i början av arrayen. Det kommer att visa sig ungefär så här:

    $args = array("title_reply" => "Lämna din recension", "comment_notes_before" => "

    Fyll i fälten nedan. Din e-post kommer inte att publiceras. Behövliga fält är markerade *

    ", "comment_field" => "

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

    Lagt till i början och nu, på inläggssidorna kommer raden att visas - Lämna din recension. Denna metod är inte komplicerad och kräver minimal ansträngning, det viktigaste är att korrekt definiera arrayen. Men ibland händer det att det inte finns någon comments.php-fil i temat eller att det inte finns någon array i den och du vet inte hur du lägger till den där korrekt, då kommer den andra metoden att hjälpa dig.

    Metod nr 2

    Kärnan i den andra metoden är att lägga till en ny funktion, som kommer att ersätta namnet. För att göra detta, i mappen med det aktiva temat, måste du hitta filen function.php med anpassade funktioner och på ett bekvämt ställe, om du inte vet detta, så i slutet före den avslutande PHP-taggen - ?> , om det inte finns något sådant, lägg bara till följande kod i slutet:

    Funktion wph_change_submit_label($defaults) ( $defaults["title_reply"] = "Lämna din recension"; returnera $defaults; ) add_filter("comment_form_defaults", "wph_change_submit_label");

    Bonus

    Detta är i huvudsak detsamma som det som gjordes i den första metoden, helt enkelt, där implementerade vi det direkt i arrayen och här genom ett filter. Efter dessa steg kommer du att se en förändring i namnet. Som i den första metoden kan du ändra texten - Lämna din recension till den du gillar. Denna text ges som ett exempel.

    Jag vill också föreslå och uppmärksamma deklinationen av ordet Kommentarer. Om ditt formulär visar raden - 1 kommentar publicerad eller Kommentarer: 10. Du kan använda funktionen från artikeln. Om du redan använder det rekommenderar jag i en rad med en array:

    Array("kommentar","kommentar","kommentarer")

    Ändra namnen för att granska, granska, recensioner om du använde detta ord i metoderna ovan. på detta sätt kommer du att ha allt likadant, och inte utspridda, det finns recensioner och det finns kommentarer.

    Det här är informationen jag ville ge dig idag. Kanske kommer det att vara användbart för någon.

    Det var allt, tack för din uppmärksamhet. 🙂

    Nyligen fördjupade jag mig i filerna för mitt WordPress-tema, nämligen reglerna för visningsmallen för kommentarer, samtidigt som jag förstår dess struktur och olika funktioner som ansvarar för att visa kommentarer på blogginlägg. Som ett resultat ändrade jag standardutgången, skapade och inkluderade min egen comments.php-fil. Jag bestämde mig för att presentera resultatet som erhållits i form av en artikel, eftersom jag förstod detta ämne väl, och det fanns ganska mycket material.

    Jag hoppas att artikeln kommer att vara användbar för WordPress-bloggägare som är bekanta med HTML, CSS och PHP.

    ***

    I WordPress, för att koppla en kommentarmall till ett inlägg eller sida, använd funktionen comments_template(), som tar två parametrar:

    • den första är sökvägen till mallfilen, som standard är det comments.php i mappen med aktuellt tema
    • den andra används för att separera kommentarer efter typ (vanliga, trackbacks och pingbacks), false som standard

    Låt oss infoga comments_template() efter att posten har visats i inläggsmallen single.php eller page page.php .

    För en beskrivning och accepterade argument för funktionen comments_template() och andra som nämns i artikeln, titta i WordPress Codex.

    Förbereder mallen

    Låt oss försöka förstå WP-kommentarmallar och skapa vår egen fil för att visa kommentarer på blogginlägg och sidor. Som exempel för referens kan du ta mallar från vanliga WordPress-teman. Låt oss skapa ett nytt dokument i valfri textredigerare, kalla det comments.php och börja redigera.

    • I princip kan du namnge filen vad du vill och sedan skriva sökvägen till den här filen i comments_template(), men det är bättre att hålla sig till standardnamnet
    • Du kan också redigera filen i WP-adminpanelen, förresten.
    • Det är naturligtvis bäst att skriva kod och omedelbart testa dess effekt på din blogg eller på en lokal server.

    I WordPress är det möjligt att inaktivera kommentarer för enskilda inlägg, så innan du visar dem måste du kontrollera om det finns "öppenhet":

    Detta är en omslagskod för våra fortsatta åtgärder. Låt oss nu förbereda en behållare för kommentarsblocket

    med en semantiskt korrekt klass eller identifierare (klass är naturligtvis att föredra):

    Inuti

    låt oss skriva en rubrik så att dina läsare förstår att det finns kommentarer här och inget annat, tagga

    Detta kommer att vara helt rätt för detta:

    "

    Här har vi angett en av WordPress-funktionerna - the_title(), resultatet av att köra denna funktion kommer att vara resultatet av titeln på det aktuella inlägget eller sidan. Om du inte vill visa titeln kan du helt enkelt skriva "Läsarkommentarer".

    Därefter måste du innan du visar kommentarer se till att de finns, d.v.s. kontrollera, om det finns, visa hela listan, om inte, kan du visa användaren något i stil med "". På så sätt blir det tydligt för besökaren på ditt inlägg/sida att ingen har skrivit något ännu, och den motiverande frasen "Du kan vara den första" ökar sannolikheten att de skriver något till dig snabbare.

    Så efter den här formuleringen av problemet blir det klart att för implementering kommer vi att behöva if/else-konstruktioner och en funktion för att visa antalet kommentarer get_comments_number() . Om funktionen returnerar 0 (noll), visar vi "Inga kommentarer ännu...", annars "Läsarkommentarer...":

    Det finns inga kommentarer än, men du kan vara den första

    Läsaren kommenterar artikeln ""

    Diskussionerna är stängda för denna sida

    Skriver ut kommentarer

    Bra, vi har visat rubrikerna beroende på närvaron eller frånvaron av kommentarer, nu är det logiskt att visa själva kommentarerna - funktionen wp_list_comments() är ansvarig för detta. Standardfunktionen omsluter alla kommentarer i taggar

  • , så ett omslag bör läggas till
      med class assignment.commentlist:

      wp_list_comments() tar en rad argument som kan användas för att flexibelt anpassa visningen av kommentarer. Du kan till exempel ändra avatarstorlek, kommentarsvarstext och andra inställningar genom att skicka ett nyckelord och ett värde:

      $args = array("avatar_size" => 64, // avatarstorlek 64*64px, standard 32 "reply_text" => "Svara" // texten i svaret på kommentaren "callback" => "mina_kommentarer" // funktion för att generera en extern typ av kommentar)

      Callback-parametern förtjänar särskild hänsyn, som tar värdet av namnet på en anpassad funktion för att visa en kommentar. Med dess hjälp kan du flexibelt anpassa utseendet på varje kommentar. Så här ser standardutdatafunktionen ut från filen comment-template.php:

    1. id="li-kommentar-">
      "); ?> %s säger:"), get_comment_author_link()) ?>
      comment_approved == "0") : ?>
      $depth, "max_depth" => $args["max_depth"]))) ?>

      Det enklaste sättet är att ta den här funktionen och redigera den själv, och sedan kalla den som en anpassad genom att skriva den i filen comments.php eller functions.php.

      Efter att ha visat en lista med kommentarer kan du ändra deras utseende med CSS-stilar. Vissa parametrar för wp_list_comments() dupliceras i WP-admin, Alternativ → Diskussionsfliken, särskilt närvaron av trädkommentarer, sortering efter datum, etc.

      Blankett för inlämning av kommentarer

      Använd funktionen comment_form() för att lägga till ett kommentarsformulär. Låt oss lägga till det under listan med kommentarer:

      Det finns inga kommentarer än, men du kan vara den första

      Läsaren kommenterar artikeln ""

      1. 64, "reply_text" => "Svara", "återuppringning" => "mina_kommentarer"); wp_list_comments($args); ?>

      Diskussionerna är stängda för denna sida

      När den anropas på detta sätt kommer comment_form() att ladda standardkoden från WordPress comment-template.php-filen. Funktionen tar två parametrar:

      Comment_form($args, $post_id);

      • $args — en rad inställningar för formulärutdata
      • $post_id — id för inlägget som funktionen kommer att tillämpas på, som standard det aktuella inlägget

      Låt oss till exempel validera formulärfält i HTML5 och lägga till texttips. Låt oss skapa en array $args för att ange de nödvändiga inställningarna:

      $args = array(); comment_form($args);

      Du måste registrera inställningsnycklarna i arrayen:

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

      Nu måste vi fylla i arrayvariabeln $fields, som inkluderar formulärfälten. Det enklaste sättet är att ta standard WordPress-koden från comment-template.php och ändra den lite:

      "

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

      ", "e-post" => " ", "url" => "

      " . "

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

      Här är värdena för författaren , e-post och url-parametrar html-koden för fälten "Namn", "Mail" och "Site". Dessa värden måste redigeras.

      För fälten måste vi lägga till följande attribut:

      • krävs - gör fälten obligatoriska, lägg till det för fälten "Namn" och "Webbplats".
      • platshållare - lägger till ett textverktygstips i fältet
      • pattern="(3,)" för fältet "Namn" - ange namnet med bokstäver i det latinska eller ryska alfabetet och en längd på minst 3 tecken
      • type="email" för "Mail"-fältet - detta kommer att lägga till HTML5-e-postvalidering
      • autoslutförande - aktiverar autoslutförande för fält
      • type="url" för fältet "Site".

      Kom ihåg att de nya HTML5-attributen inte fungerar i äldre webbläsare. De webbläsare som inte förstår de nya fälttyperna kommer helt enkelt att visa dem som text, dvs. .

      Dessutom, för min blogg bytte jag taggar här och där, la till klasser för styling, och som ett resultat fick jag följande kod för $fields-arrayen:

      "

      ", "e-post" => " ", "url" => "

      "); ?>

      Vi har ändrat datainmatningsfälten. Låt oss nu redigera själva kommentarsformuläret

      " ?>

      Detta är standard WordPress-kod, jag modifierade den bara lite - jag lade till en texttips och skrev en extra klass för styling.

      Det här är vad jag slutade med att använda CSS-styling:

      WordPress-kommentarformulär med HTML5-attribut

      Slutsats

      Slutligen kommer jag att lägga upp min resulterande comments.php-kod:

      läsare av artikeln""

      • Lämna den första kommentaren - författaren försökte
      1. id="li-kommentar-">
        "); ?> %s skriver:"), get_comment_author_link()) ?>
        comment_approved == "0") : ?>
        $depth, "max_depth" => $args["max_depth"]))) ?>
        "Svara", "callback" => "verstaka_comment"); wp_list_comments($args); ?>
      "

      ", "e-post" => " ", "url" => "

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

      ", "label_submit" => "Skicka", "fields" => application_filters("comment_form_default_fields", $fields)); comment_form($args); ?>

      Diskussionerna är stängda för denna sida

      Vanliga frågor om kommentarer

      Hur lyfter man fram författarens och användarens kommentarer?

      Ibland är det väldigt bekvämt att ställa in ett separat utseende för författarens kommentarer; det finns till och med speciella plugins för detta. Du kan dock klara dig utan några plugins - helt enkelt genom att skriva stilar för klassen .bypostauthor i en css-fil. På samma sätt kan du ställa in stilar för användarkommentarer - .bypostuser:

      Hur stilar man trädkommentarer?

      För att aktivera trädkommentarer måste du gå till WP-admin, Inställningar → Diskussion → Tillåt trädkommentarer. Nu kommer underordnade kommentarer att ha en trädstruktur, de kan ges individuella stilar, till exempel indrag. Allt du behöver göra är att ställa in reglerna i css för listan med class.children:

      Kommentarlista .children ( utfyllnad: 0 0 0 40px; /* vänster utfyllnad för barnkommentarer */ )

      Stilar för jämna och udda kommentarer

      WordPress ger som standard udda kommentarer en klass av .even och även kommentarer en klass av .odd . Det är lätt att ställa in dina egna stilar genom dessa klasser:

      Commentlist .even ( /* stilar för udda kommentarer */ ) .commentlist .odd ( /* stilar för jämna kommentarer */ )

      Hur stänger jag kommentarer på ett separat inlägg?

      Det är väldigt enkelt - gå till sidan för att skriva ett inlägg, Skärminställningar → Diskussioner, ett diskussionsblock visas under inläggsfältet, avmarkera alternativet Tillåt kommentarer.

      • När du skapar din egen kommentarsmall kan du använda comments.php-filer från vanliga och andra betalda och gratis WordPress-teman
      • Ett alternativ till standardkommentarer är tredjeparts plugins för kommentarformulär, till exempel den populära DISQUS
      • Det är fullt möjligt att redigera koden direkt i själva comment-template.php-filen, men om WordPress uppdateras kommer all kod att skrivas över - du måste redigera igen
      • Kom ihåg att det inte finns någon perfekt kommentarsmall.

      Hjälp projektet

      65 röster, snitt: 4,46 av 5)

      Det var ett tag sedan jag skrev något om WordPress. Därför kommer jag idag att dela med dig av hur du manuellt kan ändra kommentarsformuläret i WordPress. Jag tror att denna kunskap kan vara användbar för alla nybörjare bloggare, eftersom kommentarsformuläret ibland är det enda kommunikationsmedlet mellan besökare och författare. Gå inte förbi :)

      Innan vi påbörjar några manipulationer med koden vill jag varna dig i förväg om att vi kommer att redigera själva WordPress-filerna och inte temafilerna. Ja, det kan verka farligt för vissa, meningslöst för andra, och kommer helt enkelt inte att gillas av andra :) Men jag gjorde det precis så och jag hade inga problem. Jag råder dig att göra en säkerhetskopia av filen du redigerar innan du börjar.
      Jag varnade för säkerheten, nu vill jag visa resultatet jag kommit fram till.


      Som vi kan se har raden "Din e-post kommer inte att publiceras" tagits bort. Behövliga fält är markerade *". Det finns ingen anledning att betrakta besökare som hjärnlösa idioter. De förstår redan vad som behöver fyllas i och inte. Jag gömde också namnen på fälten i själva fälten. Vad är dessa djärva anteckningar till för? De flesta besökare, även utan fältnamn, kan "med ögonen" avgöra vilken som tillhör vad. Men interna antydningar måste fortfarande finnas. Nåväl, bildtexten till kommentarsfältet har tappat sin onödiga djärvhet. Enligt mig har det blivit mycket bättre och friare.

      Så låt oss ändra allt snabbt! ;)
      Vi går till mappen på vår webbplats och hittar filen wp-includes/comment-template.php i den. Vi letar efter linje 1522 i den, ja, det är det. Hur jag hittade det själv är en hel historia, jag ska berätta om det lite senare :)
      Så öppna filen för redigering och gå till rad 1522. Nu är den och följande (upp till 1529) ungefär så här:

      $fields = array("author" => "

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

      ", "e-post" => " ", "url" => "

      " . "

      ",);

      Hur enkelt och tydligt allt är. Det räcker bara att skära bort allt överskott och lägga till lite. Parametern kommer att läggas till

      Placeholder="Hjälptext" !}

      Detta alternativ låter dig visa vilken text som helst i fält. Vi använder det för att visa tips:

      "

      " "

      " "

      "

      Vi tar bort raderna:

      "

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

      "

      De är ansvariga för att visa bildtexter ovanför fälten.
      Som ett resultat av ALLA dessa manipulationer får vi följande:

      $fields = array("author" => "

      ", "e-post" => "

      ", "url" => "

      ",);

      Allt som återstår är att ta bort den dumma tipsen "Din e-post kommer inte att publiceras. Behövliga fält är markerade *". För att göra detta, ta bort raden (ungefär 1537):

      "comment_notes_before" => "

      " . __("Din e-postadress kommer inte att publiceras.") . ($req ? $required_text: "") . "

      ",

      Det verkar vara allt, nu har vår form blivit lite mer attraktiv. Jag hoppas att denna information är användbar för någon :)

      Prenumerera, kommentera, jag tar gärna emot adekvata kommentarer. Jag kanske inte vet något själv och det kan göras annorlunda, dela dina tankar.

      Hallå!

      Dagens artikel är tillägnad WordPress-kommentarutdata. Vi kommer att titta på vilka filer och funktioner som innehåller koden som ansvarar för att visa kommentarer. Vad behöver göras för att kunna göra ändringar i detta WordPress-bloggblock.

      Låt mig börja med det faktum att varje WordPress-mall (tema) har en fil kommentarer.php Den fullständiga sökvägen till den från rotkatalogen är: /wp-content/themes/template_folder/comments.php

      Exakt kommentarer.phpär i allmänhet ansvarig för kommentarblocket i ett specifikt WordPress-tema.

      Vad som oftast finns i comments.php:

      – kontrollera lösenordsskydd för kommentarer

      – kontrollera om kommentarer är tillåtna på artikeln

      – leta efter kommentarer och visa motsvarande text ("Inga kommentarer..." eller "N kommentarer kvar")

      anropa kommentarsutgångsfunktionen – wp_list_comments()

      – utdata för navigering (personsökning) när du lägger upp kommentarer på flera sidor

      – visa ett formulär för att lämna kommentarer till artikeln

      Här är det tydligt att du kan definiera dina klasser eller ändra egenskaper i style.css för redan befintliga klasser. Således kan du ändra utseendet på formuläret för att lämna kommentarer och texter före listan med kommentarer och efter denna lista eller formuläret. Men Utdatastilarna för själva kommentarerna kan inte ändras i comments.php.

      När jag listade innehållet i filen kommentarer.php, då betonade han specifikt att i kommentarer.php det finns bara ett anrop till funktionen för att visa kommentarer wp_list_comments(), men inte själva slutsatsen. De där. V kommentarer.php du kommer inte att hitta (åtminstone i de senaste versionerna av WordPress och med rätt tillvägagångssätt för mallutveckling): visa namnet på författaren av meddelandet och en länk till hans webbplats, visa författarens avatar, visa datum och tid för kommentaren, själva kommentaren och länken "svara".

      Hur ändrar man stilar i kommentarslistan?

      Först måste du ta reda på om din mall använder en anpassad funktion för att visa kommentarer.

      Funktionen wp_list_comments() kan anropas utan återuppringning (återuppringning är en återuppringningsfunktion) och med återuppringning.

      1. Ring wp_list_comments utan återuppringning:

      De där. i funktionsparametrarna (det som står inom parentes efter namnet) finns det ingen parameter som heter 'återuppringning'.

      Om i comment.php din mall är en sådan situation, alltså detta betyder att detta tema inte har en egen (användar)funktion för att visa kommentarer och för detta används en standardmall (mall från WordPress core). Den finns i filen. Och sedan dess I det här fallet kommer vi inte att kunna ändra visningsstilarna för kommentarer förrän vi går vidare till det andra alternativet.

      2. Ring wp_list_comments med en återuppringning:

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

      callback=custom_comment indikerar att för att visa kommentarer har vi en anpassad funktion custom_comment , vars kod, grovt sett, vi skickar som en parameter för exekvering till standardfunktionen wp_list_comments. Men vi är inte längre intresserade av den tekniska sidan av denna fråga, utan av närvaron i mallen för sin egen funktion för att visa kommentarer. Koden för denna funktion finns i .

      Exakt i den här anpassade funktionen custom_comment och koden som ansvarar för utseendet på en enskild kommentar, och därför alla kommentarer som helhet, finns.

      Den anpassade funktionskoden är intuitiv. Den använder vanligtvis följande vanliga WordPress-funktioner:

      get_comment_author_link()– får en html-länk till webbplatsen för författaren till den aktuella kommentaren;

      get_comment_date()– får datumet för kommentaren;

      get_comment_time()– får kommentarstiden;

      comment_text()– visar texten i kommentaren;

      Du kan hitta utdrag med dessa funktioner i koden och ändra utseendet på vissa element genom att rama in dem i div eller span och tilldela specifika stilklasser.

      Till exempel, i den anpassade funktionskoden, ett fragment av avatarens utdata:

      < div class = "comment-author" >

      < / div >

      Nu ligger den kvar style.css ställ in önskade egenskaper för klassen kommentar-författare. Jag kommer att titta på specifika exempel på att ändra stilar mer i detalj i en av följande artiklar.

      Nu kanske du undrar: " Vad händer om min mall inte har en anpassad kommentarfunktion?

      Svar: du måste skapa den.

      Det enklaste alternativet är att kopiera koden för en vanlig WordPress-funktion kommentar().

      Instruktioner för att skapa en anpassad funktion för att visa kommentarer:

      1. Öppna filen /wp-includes/comment-template.php och hitta funktionen i den kommentar().

      Här är början på hennes beskrivning

      /** * @sedan 3.6 * @åtkomstskyddad * * @param-objekt $comment Kommentar att visa. * @param int $depth Kommentarsdjup. * @param array $args Valfria args. */ skyddad funktion kommentar ($comment, $depth, $args) (

      * @sedan 3.6

      * @åtkomstskyddad

      * @param objekt $comment Kommentar att visa.

      * @param int $depth Kommentarsdjup.

      * @param array $args Valfria args.

      skyddad funktionskommentar ($comment, $depth, $args) (

      2. Kopiera hela funktionskroppen kommentar().

      Du måste kopiera kodfragmentet från början av beskrivningen som visas i steg 1 till den avslutande krulliga klammern } och följande liknande beskrivning av en annan funktion