Botvinya dodaj komentar komentar odgovor. Fino podešavanje obrasca za komentare. Kako stilizirati komentare stabla

Vrijeme je da se ozbiljno pozabavite stiliziranjem vaših WordPress komentara. U skoro svim temama, one su konfigurisane sistemskim datotekama, što zauzvrat ograničava uređivanje pojedinačnih funkcija. Mislim da su se mnogi ljudi susreli sa ovim kada su trebali promijeniti komentare, ali nisu mogli pronaći gdje se to tačno nalazi. Stoga bi bilo bolje prebaciti svu funkcionalnost na aktuelnu temu, što će nam dati potpunu slobodu kontrole.

U ovom članku sam sastavio neke zanimljive funkcije koje će vam pomoći da poboljšate svoje komentare. Ipak, oni vam omogućavaju da vodite dijaloge i sa administratorom sajta i između korisnika. Odgovarajte na pitanja, započnite razne rasprave, općenito, uvedite punopravnu virtualnu komunikaciju. Stoga je potrebno obratiti pažnju na njih i dovesti ih u pravi oblik.

Evo šta ćemo učiniti:

  • Potpuno prilagođavanje
  • Dizajn izgleda
  • Numeracija komentara
  • Brojanje poruka po korisniku
  • Dodijelite status svakom korisniku
  • I druge sitnice

Analizirat ćemo svaku točku posebno, a na kraju članka sve funkcije će biti potpuno sastavljene u jedan gotov kod.

Prilagođavanje komentara

U WordPress-u, komentari se prikazuju preko funkcije wp_list_comments, obično u datoteci comments.php. A formiranje pojedinačnih funkcija, kao i sam ciklus, koristi se iz šablona sistemske datoteke comment-template.php. Ali u rijetkim slučajevima, dešava se da se postavka može nalaziti u WordPress temi, functions.php ili comments.php datoteci.

Dakle, ako vaša tema ne spada u rijetke slučajeve i trebate napraviti vlastita podešavanja, otvorite datoteku functions.php i prije znaka ?> dodajte sljedeći kod:

If (! function_exists("my_comment")) : funkcija my_comments($comment, $args, $depth) ( globalni $commentnumber; $GLOBALS["comment"] = $comment; prekidač ($comment->comment_type) : slučaj " pingback" : case "trackback" : ?>

  • ", ""); ?>
  • id="li-komentar-">
    comment_parent) $avatar_size = 39; echo get_avatar($comment, $avatar_size); /* prevodioci: 1: autor komentara, 2: datum i vrijeme */ 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"), /* prevodioci: 1: datum, 2: vrijeme */ sprintf(__("%1$s %2$s", " my_press"), get_comment_date(), get_comment_time()))); ?>
    comment_approved == "0") : ?>
    __("Reply", "my_press"), "depth" => $depth, "max_depth" => $args["max_depth"]))); ?>
    ", ""); ?>

    Zatim u datoteku comments.php dodajte funkciju za pozivanje:

      "moji_komentari")); $commentnumber = 0; ?>

    Nakon ovih manipulacija, vaši komentari će biti generisani pomoću funkcije šablona iz datoteke functions.php trenutne teme.

    Brojanje komentara po korisniku

    Koristeći dolje prikazanu funkciju, možemo prikazati ukupan broj poruka koje su ostale pored komentatora. Tako možete vidjeti koliko je korisnik aktivan, a osim toga, statistika nikada nije suvišna, pogotovo u tom pogledu.

    Otvaramo fajl functions.php koji nam je već poznat i dodajemo sljedeći kod na kraju prije znaka ?>:

    // funkcija brojanja korisničkih poruka bac_comment_count_per_user() ( globalni $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" I comment_type NIJE IN ("pingback", "trackback")"); if ($comment_count == 1) ( echo " 1 poruka"; ) else ( echo " " . $comment_count . " Poruke . " Poruke "; ) )

    Sada ostaje samo da dodate funkciju poziva na lokaciju koja vam je potrebna:

    Poruke će se brojati na osnovu e-maila korisnika, bez obzira da li je registrovan ili ne. U obzir se uzimaju samo komentari koje je potvrdio administrator stranice, ali oni koji su u stanju pripravnosti i izbrisani nisu.

    Svakom korisniku dodjeljujemo status ovisno o broju komentara

    To je upravo slučaj kada statistika definitivno igra važnu ulogu. Budući da je funkcija izgrađena na osnovu broja poruka, a rezultirajući broj daje korisniku odgovarajući status. Ovo se, u teoriji, koristi na svakom forumu da se pokaže autoritet korisnika na datom resursu.

    Ponovo otvorite datoteku functions.php i prije znaka ?> dodajte sljedeći kod:

    //funkcija statusa korisnika get_author_class($comment_author_email,$user_id)( globalni $wpdb; $adminEmail = get_option("admin_email"); $author_count = count($wpdb->get_results("SELECT comment_ID kao autor_count-> iz $wpdb-a) "; 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";)

    I na željenom mjestu prikazujemo funkciju pozivanja:

    comment_author_email,$comment->user_id)?>

    Objašnjenje: ova funkcija, kao i prethodna, povezana je s korisnikovom e-poštom. Samo ovdje glavni zadatak nije samo brojanje poruka, već broj od i do u zavisnosti od postavljenog broja. I kada ga korisnik stigne, on dobija određenu poziciju. Ukupno ima 7 statusa, plus admin i oznake za registrovane učesnike.

    Potpuno gotov kod komentara

    Ovdje dolazimo do kraja ovog članka. Ovdje nisam bio lijen, skupljajući sve funkcije, uključujući postavljanje komentara, u jedan gotov kod. Dodao sam svoje stilove i rezultat je bio nešto poput mini-foruma.

    Otvorite datoteku functions.php i na kraju prije znaka ?> dodajte sljedeći kod:

    // funkcija brojanja korisničkih poruka bac_comment_count_per_user() ( globalni $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" I comment_type NIJE IN ("pingback", "trackback")"); if ($comment_count == 1) ( echo " 1 poruka"; ) else ( echo " " . $comment_count . " Poruke . " Poruke "; ) ) //funkcija statusa korisnika get_author_class($comment_author_email,$user_id)( globalni $wpdb; $adminEmail = get_option("admin_email"); $author_count = count($wpdb->get_results("SELECT FROM_ID kao autor_counta) wpdb->comments WHERE comment_author_email = "$comment_author_email" ")); if($comment_author_email ==$adminEmail) echo "Admin"; if($user_id!=0 && $comment_author_email !=$adminUse) e; ($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 "Profesore"; ) //prilagodite komentare if (! function_exists("wordsmall_comment")) : funkcija wordsmall_comment($comment, $args, $depth) ( globalni $commentnumber; $GLOBALS["comment"] = $comment; switch ($comment- > comment_type) : case "pingback" : case "trackback" : ?>

  • id="li-komentar-">
    %s", get_comment_author_link()); ?> comment_parent)( $comment_parent_href = htmlspecialchars(get_comment_link($comment->comment_parent)); $comment_parent = get_comment($comment->comment_parent); ?> @Odgovori za:autor_komentara;?>
    comment_parent) $avatar_size = 60; echo get_avatar($comment, $avatar_size); ?> comment_author_email,$comment->user_id)?>
    comment_approved == "0") : ?>
    ", ""); ?> __("Odgovori", "wallpress"), "depth" => $depth, "max_depth" => $args["max_depth"]))); ?>

    Sada otvorite datoteku comments.php, pronađite u njoj funkciju za pozivanje komentara. To izgleda otprilike ovako:

    Promijeni na ovo:

      "wordsmall_comment")); ?>

    Poslednji korak. Otvorite datoteku style.css i na kraju dodajte sljedeće stilove:

    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;/*ako vam je potrebno uvlačenje za okvire u obliku drveta, stavite 15px*/ ) .my_commentlist .comment .children .comment( margin:15px 0 0 0 ; granica: nema; padding: 0; ) #komentari (pozadina: #fff; ) #comments .my_commentlist ( margina: 10px 0; padding: 0; stil liste: nijedan; pozadina: #ebf0f3; padding: 5px; ) # komentari .my_commentlist .comment ( margin:0; padding: 0 0 10px; pozadina: #fff; ) #comments .my_commentlist .my_comment-author ( display: inline; border-right: 1px solid #e0e0e0; širina: 100px; float: lijevo; margina : 0px 15px 10px 0; ) #comments .my_commentlist .commentmetadata (float:left; ) #comments .my_commentlist p ( clear:none; boja: #555; font: 14px arial; line-height: 23px; ) # komentari .my_commentlist .comment-content ( margin-left: 116px; padding-right: 10px; ) #comments .my_commentlist .reply (text-align:right; ) #comments .my_commentlist .reply a( background: #f5f5f5; granica: 1px solid rgba(0, 0, 0, 0.06); border-radius: 2px; boja : #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: nema; ) .my_commentlist .avatar( granica: srednja bez; granica-radijus: 50%; float: nema; margina: 5px auto; padding: 0px; display: table; ) .my_commentlist .comment-header( visina: 30px; pozadina: #DEE5EB; margin-bottom: 15px; ) .my_commentlist cite.fn( boja: #444; font: bold 13px/30px arial; padding-left: 10px; ) .my_commentlist .com_date ( boja: # 8ca0b5; font: normalan 13px/30px arial; float: desno; padding-right: 15px; ) .my_commentlist .commentnumber (boja: #8ca0b5; float: desno; font: italic 13px/30px arial; padding-right): 15px; .my_commentlist .comment-body (prelijevanje: skriveno; pozicija: relativna; background:#fff; ) .my_commentlist .rep-authorcom (boja: #25394e; veličina fonta: 13px; visina linije: 30px; ) .my_commentlist .edit-link a (pozadina: nema !important; granica: nema !important; border-radius: 0 !važno; boja: #999!važno; prikaz: inline-blok; veličina fonta: 11px !važno; težina fonta: normalna; visina linije: 30px; margina desno: 5px !važno; minimalna visina: 30px ; padding: 0 !važno; text-align: center; text-decoration: none; ) .com_per ( granica: srednja bez; boja: #666; display: block; veličina fonta: 11px; text-align: centar; ) .vip1,.vip, .vp, .vip2, .vip3, .vip4, .vip5, .vip6, .vip7 ( granica: srednji bez; font: bold 13px arial; prikaz: blok; poravnanje teksta: centar; margina- dno: 5px; dekoracija teksta: nema; ) .vp (boja: #e82e24;).vip1 (boja: #348be8;).vip2 (boja: #BE005E;).vip3 (boja: #2e517e;).vip4 ( boja: #658a18;).vip5 (boja: #00A56D;).vip6 (boja: #e35d28;).vip7 (boja: #99A400;).vip (boja: #4c5176; veličina fonta: 11px; margina: 0 ;)

    Kod je u potpunosti funkcionalan i ne uzrokuje greške, ali će možda biti potrebne manje promjene u CSS stilovima.

    Ovo ime mnogima ne smeta, ali ponekad se postavlja pitanje kako promijeniti dodati komentar da ostavite recenziju ili slično. U ovom slučaju, ovaj članak će vam pomoći. Kao što sam gore napisao, pokazaću vam nekoliko načina.

    Metoda br. 1

    Za prvi način, morate pronaći datoteku u mapi s temom koja je instalirana na vašoj web stranici comments.php. Ako postoji, otvorite ga i potražite u njemu niz koji je odgovoran za postavljanje i prikaz sadržaja obrasca za komentare. To izgleda otprilike ovako:

    $args = array("comment_notes_before" => "

    ", "comment_field" => "

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

    Dakle, ovom nizu morate dodati novi parametar sa željenom vrijednošću i to je to. U našem slučaju, ovo je:

    "title_reply" => "Ostavite svoju recenziju",

    Kao što razumete - Ostavite svoju recenziju, ovo je novo ime umjesto - Dodajte komentar. Takav parametar možete dodati na kraj ili na početak niza. Ispašće nešto ovako:

    $args = array("title_reply" => "Ostavite svoju recenziju", "comment_notes_before" => "

    Popunite polja ispod. Vaš email neće biti objavljen. Obavezna polja su označena *

    ", "comment_field" => "

    ", "id_submit" => "comm_subm", "label_submit" => "Pošalji",); comment_form($args);

    Dodato na početak i sada će na stranicama postova biti prikazana linija - Ostavite svoju recenziju. Ova metoda nije komplicirana i zahtijeva minimalan napor, glavna stvar je ispravno definirati niz. Ali ponekad se desi da unutar teme nema datoteke comments.php ili u njoj nema niza i ne znate kako da je ispravno dodate, onda će vam drugi način pomoći.

    Metoda br. 2

    Suština druge metode je dodavanje nove funkcije, koja će zamijeniti ime. Da biste to učinili, u mapi s aktivnom temom morate pronaći datoteku function.php sa prilagođenim funkcijama i na prikladnom mjestu, ako ovo ne znate, onda na samom kraju prije završne PHP oznake - ?> , ako ne postoji takva stvar, samo dodajte sljedeći kod na samom kraju:

    Funkcija wph_change_submit_label($defaults) ( $defaults["title_reply"] = "Ostavite svoju recenziju"; vratite $defaults; ) add_filter("comment_form_defaults", "wph_change_submit_label");

    Bonus

    Ovo je u suštini isto što je urađeno u prvoj metodi, jednostavno, tamo smo to implementirali direktno u niz, a ovdje kroz filter. Nakon ovih koraka, vidjet ćete promjenu imena. Kao i kod prvog načina, možete promijeniti tekst - Ostavite recenziju onom koji vam se sviđa. Ovaj tekst je dat kao primjer.

    Također želim predložiti i skrenuti pažnju na deklinaciju riječi Komentari. Ako vaš obrazac prikazuje red - 1 objavljen komentar ili Komentari: 10. Možete koristiti funkciju iz članka. Ako ga već koristite, preporučujem u red s nizom:

    Niz("komentar","komentar","komentari")

    Promijenite nazive u pregled, pregled, recenzije ako ste koristili ovu riječ u gore navedenim metodama. ovako ćete imati sve isto, a ne razbacano, ima recenzija i ima komentara.

    Ovo je informacija koju sam želio da vam pružim danas. Možda će nekome biti od koristi.

    To je sve, hvala na pažnji. 🙂

    Nedavno sam ulazio u fajlove moje WordPress teme, odnosno pravila za šablon za prikaz komentara, istovremeno razumevajući njegovu strukturu i različite funkcije odgovorne za prikazivanje komentara na blog postovima. Kao rezultat toga, promijenio sam standardni izlaz, kreirao i uključio svoj comments.php fajl. Odlučio sam da dobijem rezultat predstavim u obliku članka, jer sam dobro razumio ovu temu, a materijala je bilo dosta.

    Nadam se da će članak biti koristan za vlasnike WordPress blogova koji su upoznati sa HTML-om, CSS-om i PHP-om.

    ***

    U WordPress-u, da povežete predložak komentara sa objavom ili stranicom, koristite funkciju comments_template() koja uzima dva parametra:

    • prvi je put do datoteke šablona, ​​po defaultu je comments.php u folderu sa trenutnom temom
    • drugi se koristi za razdvajanje komentara po tipu (običan, trackback i pingback), po defaultu je lažno

    Ubacimo comments_template() nakon što je unos prikazan u šablonu posta single.php ili page page.php.

    Za opis i prihvaćene argumente funkcije comments_template() i drugih spomenutih u članku, pogledajte WordPress Codex.

    Priprema šablona

    Pokušajmo razumjeti WP šablone komentara i napraviti vlastiti fajl za prikazivanje komentara na blog postovima i stranicama. Kao primjere za referencu, možete uzeti šablone iz standardnih WordPress tema. Kreirajmo novi dokument u bilo kojem uređivaču teksta, nazovimo ga comments.php i počnimo uređivati.

    • U principu, možete imenovati datoteku kako god želite, a zatim napisati putanju do ove datoteke u comments_template(), ali je bolje držati se standardnog naziva
    • Usput, možete urediti datoteku u WP admin panelu.
    • Najbolje je, naravno, napisati kod i odmah testirati njegov učinak na svom blogu ili na lokalnom serveru.

    U WordPress-u je moguće onemogućiti komentare za pojedinačne objave, tako da prije njihovog prikazivanja morate provjeriti da li je „otvorenost“:

    Ovo je omotni kod za naše daljnje radnje. Sada pripremimo kontejner za blok komentara

    sa semantički ispravnom klasom ili identifikatorom (klasa je naravno poželjnija):

    Unutra

    hajde da napišemo naslov da vaši čitaoci shvate da ovde ima komentara i ništa drugo, označite

    Ovo će biti baš za ovo:

    "

    Ovdje smo naznačili jednu od WordPress funkcija - the_title(), rezultat izvršavanja ove funkcije će biti izlaz naslova trenutnog posta ili stranice. Ako ne želite da prikažete naslov, možete jednostavno napisati „Komentari čitalaca“.

    Zatim, prije prikazivanja komentara, morate se uvjeriti da oni postoje, tj. provjerite, ako postoji, prikažite punu listu, ako ne, onda možete pokazati korisniku nešto poput “”. Tako će posjetiocu vaše objave/stranice biti jasno da još niko ništa nije napisao, a motivirajuća fraza “Možete biti prvi” povećat će vjerovatnoću da će vam nešto brže napisati.

    Dakle, nakon ove formulacije problema, postaje jasno da će nam za implementaciju trebati if/else konstrukcije i funkcija za prikaz broja komentara get_comments_number() . Ako funkcija vrati 0 (nula), tada prikazujemo “Još nema komentara...”, u suprotnom “Komentari čitaoca...”:

    Još nema komentara, ali možete biti prvi

    Komentari čitalaca na članak ""

    Diskusije su zatvorene za ovu stranicu

    Iznošenje komentara

    Odlično, prikazali smo naslove ovisno o prisutnosti ili odsustvu komentara, sada je logično prikazati i same komentare - za to je zaslužna funkcija wp_list_comments(). Zadana funkcija umotava sve komentare u oznake

  • , pa treba dodati omot
      sa listom zadatka razreda:

      wp_list_comments() uzima niz argumenata koji se mogu koristiti za fleksibilno prilagođavanje prikaza komentara. Na primjer, možete promijeniti veličinu avatara, tekst odgovora na komentar i druge postavke prosljeđivanjem ključne riječi i vrijednosti:

      $args = array("avatar_size" => 64, // veličina avatara 64*64px, default 32 "reply_text" => "Odgovor" // tekst odgovora na komentar "callback" => "my_comments" // funkcija za generiranje eksterne vrste komentara)

      Parametar povratnog poziva zaslužuje posebnu pažnju, koji uzima vrijednost imena prilagođene funkcije za prikaz komentara. Uz njegovu pomoć, možete fleksibilno prilagoditi izgled svakog komentara. Ovako izgleda standardna izlazna funkcija iz datoteke comment-template.php:

    1. id="li-komentar-">
      "); ?> %s kaže:"), get_comment_author_link()) ?>
      comment_approved == "0") : ?>
      $depth, "max_depth" => $args["max_depth"]))) ?>

      Najlakši način je da uzmete ovu funkciju i uredite je za sebe, a zatim je nazovete kao prilagođenu tako što ćete je upisati u datoteku comments.php ili functions.php.

      Nakon što prikažete listu komentara, možete promijeniti njihov izgled koristeći CSS stilove. Neki parametri wp_list_comments() su duplirani u WP admin, Options → Discussion tab, posebno prisustvo komentara stabla, sortiranje po datumu, itd.

      Obrazac za podnošenje komentara

      Da biste dodali obrazac za komentar, koristite funkciju comment_form(). Dodajmo ga ispod liste komentara:

      Još nema komentara, ali možete biti prvi

      Komentari čitalaca na članak ""

      1. 64, "reply_text" => "Odgovor", "callback" => "moji_komentari"); wp_list_comments($args); ?>

      Diskusije su zatvorene za ovu stranicu

      Kada se pozove na ovaj način, comment_form() će učitati standardni kod iz WordPress datoteke comment-template.php. Funkcija uzima dva parametra:

      Comment_form($args, $post_id);

      • $args — niz postavki izlaza forme
      • $post_id — id objave na koju će se funkcija primijeniti, po defaultu trenutni post

      Na primjer, provjerimo valjanost polja obrasca u HTML5 i dodajmo tekstualne savjete. Kreirajmo niz $args za unos potrebnih postavki:

      $args = niz(); comment_form($args);

      Morate registrirati ključeve postavki u nizu:

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

      Sada moramo popuniti varijablu niza $fields, koja uključuje polja obrasca. Najlakši način je da uzmete standardni WordPress kod sa comment-template.php i malo ga promijenite:

      "

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

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

      " . "

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

      Ovdje su vrijednosti parametara autora, e-pošte i url-a html kod polja “Name”, “Mail” i “Site”. Ove vrijednosti se moraju urediti.

      Za polja moramo dodati sljedeće atribute:

      • obavezno - čini polja obaveznim, dodajte ih za polja “Naziv” i “Site”.
      • čuvar mjesta - dodaje tekstualni opis u polje
      • pattern="(3,)" za polje "Ime" - navedite ime slovima latinice ili ruske abecede i dužine od najmanje 3 znaka
      • type="email" za polje "Mail" - ovo će dodati HTML5 validaciju e-pošte
      • autocomplete - omogućava automatsko dovršavanje za polja
      • type="url" za polje "Site".

      Zapamtite da novi HTML5 atributi neće raditi u starijim pretraživačima. Oni pretraživači koji ne razumiju nove tipove polja jednostavno će ih prikazati kao tekst, tj. .

      Osim toga, za svoj blog sam tu i tamo zamijenio oznake, dodao klase za stiliziranje, i kao rezultat dobio sam sljedeći kod za niz $fields:

      "

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

      "); ?>

      Promijenili smo polja za unos podataka. Sada uredimo sam obrazac za komentare

      " ?>

      Ovo je standardni WordPress kod, samo sam ga malo izmijenio - dodao sam tekstualni hint i napisao dodatnu klasu za stilizovanje.

      Ovo je ono što sam završio koristeći CSS stil:

      WordPress formular za komentare koristeći HTML5 atribute

      Zaključak

      Konačno, objavit ću svoj rezultirajući kod comments.php:

      čitaoci članka""

      • Ostavite prvi komentar - autor je pokušao
      1. id="li-komentar-">
        "); ?> %s piše:"), get_comment_author_link()) ?>
        comment_approved == "0") : ?>
        $depth, "max_depth" => $args["max_depth"]))) ?>
        "Odgovor", "callback" => "verstaka_comment"); wp_list_comments($args); ?>
      "

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

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

      ", "label_submit" => "Pošalji", "fields" => apply_filters("comment_form_default_fields", $fields)); comment_form($args); ?>

      Diskusije su zatvorene za ovu stranicu

      FAQ o komentarima

      Kako istaknuti komentare autora i korisnika?

      Ponekad je vrlo zgodno postaviti poseban izgled za komentare autora; za to postoje čak i posebni dodaci. Međutim, možete i bez dodataka - jednostavnim pisanjem stilova za .bypostauthor klasu u css datoteku. Slično, možete postaviti stilove za komentare korisnika - .bypostuser:

      Kako stilizirati komentare stabla?

      Da biste omogućili komentare na stablu, potrebno je da odete na WP admin, Podešavanja → Diskusija → Dozvoli komentare na stablu. Sada će podređeni komentari imati strukturu stabla; mogu im se dati pojedinačni stilovi, na primjer, uvlačenja. Sve što treba da uradite je da postavite pravila u css za listu sa class.children:

      Lista komentara .children (dodaci: 0 0 0 40px; /* lijevo dopuna za dječje komentare */ )

      Stilovi za parne i neparne komentare

      WordPress podrazumevano daje neparnim komentarima klasu .par, a parnim komentarima klasu .odd . Lako je postaviti vlastite stilove kroz ove klase:

      Commentlist .even ( /* stilovi za neparne komentare */ ) .commentlist .odd ( /* stilovi za parne komentare */ )

      Kako zatvoriti komentare na zasebnom postu?

      Vrlo je jednostavno - idite na stranicu za pisanje objave, Postavke ekrana → Diskusije, ispod polja za objavu pojavljuje se blok Diskusije, poništite oznaku Dozvoli komentare.

      • Prilikom kreiranja vlastitog predloška komentara, možete koristiti comments.php datoteke iz standardnih i drugih plaćenih i besplatnih WordPress tema
      • Alternativa standardnim komentarima su dodaci za formulare za komentare treće strane, na primjer popularni DISQUS
      • Sasvim je moguće urediti kod direktno u samom fajlu comment-template.php, međutim, ako se WordPress ažurira, sav kod će biti prepisan - morat ćete ponovo uređivati
      • Zapamtite, ne postoji savršen šablon za komentare.

      Pomozite projektu

      65 glasova, prosjek: 4,46 od 5)

      Prošlo je dosta vremena otkako sam išta pisao o WordPressu. Stoga ću danas podijeliti s vama kako možete ručno promijeniti obrazac za komentare u WordPress-u. Mislim da ovo znanje može biti korisno svakom blogeru početniku, jer je forma za komentar ponekad jedino sredstvo komunikacije između posjetitelja i autora. Ne prolazi :)

      Prije nego počnemo bilo kakve manipulacije s kodom, želim vas unaprijed upozoriti da ćemo uređivati ​​datoteke samog WordPress-a, a ne datoteke teme. Da, nekome može izgledati opasno, nekome besmisleno, a drugima se jednostavno neće dopasti :) Ali ja sam to uradila baš tako i nisam imala nikakvih problema. Savjetujem vam da prije početka napravite sigurnosnu kopiju datoteke koju uređujete.
      Upozorio sam vas na sigurnost, sada želim pokazati rezultat do kojeg sam došao.


      Kao što vidimo, red “Vaš e-mail neće biti objavljen” je uklonjen. Obavezna polja su označena *". Nema potrebe da posjetitelje smatrate idiotima bez mozga. Oni već razumiju šta treba popuniti, a šta ne. Takođe sam sakrio nazive polja unutar samih polja. Čemu služe ove podebljane napomene? Većina posjetilaca, čak i bez naziva polja, može "na oko" odrediti koje kome pripada. Ali interni nagovještaji i dalje moraju biti prisutni. Pa, natpis polja za komentar je izgubio svoju nepotrebnu smjelost. Po mom mišljenju, postalo je mnogo bolje i slobodnije.

      Zato promijenimo sve brzo! ;)
      Idemo u fasciklu naše stranice i u njoj pronalazimo datoteku wp-includes/comment-template.php. Tražimo liniju 1522 u njoj, da, to je to. Kako sam ga ja pronašao je cijela priča, ispričat ću vam malo kasnije :)
      Dakle, otvorite datoteku za uređivanje i idite na red 1522. Sada je to i sljedeće (do 1529) otprilike ovako:

      $fields = array("author" => "

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

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

      " . "

      ",);

      Kako je sve jednostavno i jasno. Dovoljno je samo izrezati sav višak i dodati malo. Parametar će biti dodan

      Placeholder="Tekst pomoći" !}

      Ova opcija vam omogućava da prikažete bilo koji tekst unutar polja. Koristimo ga za prikaz savjeta:

      "

      " "

      " "

      "

      Izbrisat ćemo redove:

      "

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

      "

      Oni su odgovorni za prikazivanje natpisa iznad polja.
      Kao rezultat SVIH ovih manipulacija, dobijamo sljedeće:

      $fields = array("author" => "

      ", "email" => "

      ", "url" => "

      ",);

      Ostaje samo da uklonite glupi nagoveštaj „Vaš e-mail neće biti objavljen. Obavezna polja su označena *". Da biste to učinili, izbrišite liniju (otprilike 1537):

      "comment_notes_before" => "

      " . __("Vaša adresa e-pošte neće biti objavljena.") . ($req ? $required_text: "") ."

      ",

      Čini se da je to sve, sada je naša forma postala malo privlačnija. Nadam se da su ove informacije nekome korisne :)

      Pretplatite se, komentirajte, bit će mi drago da dobijem svaki adekvatan komentar. Možda ni sama nešto ne znam i može se drugačije, podijelite svoje mišljenje.

      Zdravo!

      Današnji članak je posvećen Izlaz komentara WordPress. Pogledat ćemo koje datoteke i funkcije sadrže kod odgovoran za prikazivanje komentara. Šta je potrebno učiniti da biste mogli napraviti promjene u ovom bloku WordPress bloga.

      Dozvolite mi da počnem sa činjenicom da svaki WordPress šablon (tema) ima fajl comments.php Puni put do njega iz korijenskog direktorija je: /wp-content/themes/template_folder/comments.php

      Upravo comments.php općenito je odgovoran za blok komentara u određenoj WordPress temi.

      Šta se najčešće nalazi u comments.php:

      – provjerite zaštitu komentara lozinkom

      – provjeravanje da li su komentari dozvoljeni na članak

      – provjera komentara i prikaz odgovarajućeg teksta (“Nema komentara...” ili “N komentara preostalo”)

      pozivanje izlazne funkcije komentara – wp_list_comments()

      – izlaz navigacije (paging) prilikom objavljivanja komentara na više stranica

      – prikaz obrasca za ostavljanje komentara na članak

      Ovdje je jasno da možete definirati svoje klase ili promijeniti svojstva u style.css za već postojeće časove. Tako možete promijeniti izgled obrasca za ostavljanje komentara i tekstova prije liste komentara i nakon ove liste ili obrasca. Ali Izlazni stilovi samih komentara ne mogu se mijenjati u comments.php.

      Kada sam naveo sadržaj fajla comments.php, zatim je posebno naglasio da je u comments.php postoji samo poziv funkcije za prikaz komentara wp_list_comments(), ali ne i sam zaključak. One. V comments.php nećete pronaći (barem u najnovijim verzijama WordPress-a i sa pravim pristupom razvoju šablona): prikazivanje imena autora poruke i linka na njegovu web stranicu, prikazivanje avatara autora, prikazivanje datuma i vremena komentar, sam komentar i link “odgovori”.

      Kako promijeniti stilove na listi komentara?

      Prvo morate saznati da li vaš predložak koristi prilagođenu funkciju za prikaz komentara.

      Funkcija wp_list_comments() se može pozvati bez povratnog poziva (povratni poziv je funkcija povratnog poziva) i sa povratnim pozivom.

      1. Pozovite wp_list_comments bez povratnog poziva:

      One. u parametrima funkcije (ono što je u zagradama iza imena) ne postoji parametar koji se zove 'povratni poziv'.

      Ako u comment.php vaš šablon je onda takva situacija to znači da ova tema nema vlastitu (korisničku) funkciju za prikaz komentara i za to se koristi standardni šablon (template iz WordPress jezgra). Nalazi se u fajlu. I od tada U ovom slučaju, nećemo moći promijeniti stilove prikaza komentara dok ne prijeđemo na drugu opciju.

      2. Pozovite wp_list_comments sa povratnim pozivom:

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

      povratni poziv=prilagođeni_komentar ukazuje na to za prikaz komentara imamo prilagođenu funkciju custom_comment , čiji kod, grubo rečeno, prosljeđujemo kao parametar za izvršenje standardnoj funkciji wp_list_comments. Ali nas više ne zanima tehnička strana ovog pitanja, već prisutnost u predlošku vlastite funkcije za prikazivanje komentara. Kôd za ovu funkciju nalazi se u .

      Upravo u ovoj prilagođenoj funkciji custom_comment i nalazi se kod odgovoran za pojavu pojedinačnog komentara, a samim tim i svih komentara u cjelini.

      Kod prilagođene funkcije je intuitivan. Obično koristi sljedeće standardne WordPress funkcije:

      get_comment_author_link()– prima html link na web stranicu autora trenutnog komentara;

      get_comment_date()– dobija datum komentara;

      get_comment_time()– dobiva vrijeme za komentar;

      tekst_komentara()– prikazuje tekst komentara;

      Možete pronaći isječke s ovim funkcijama u kodu i promijeniti izgled određenih elemenata tako što ćete ih uokviriti u divove ili raspone i dodijeliti određene stilske klase.

      Na primjer, u kodu prilagođene funkcije, fragment izlaza avatara:

      < div class = "comment-author" >

      < / div >

      Sada ostaje unutra style.css postavite željena svojstva za klasu komentar-autor. Detaljnije ću pogledati konkretne primjere promjene stilova u jednom od sljedećih članaka.

      Sada se možda pitate: “ Što ako moj predložak nema prilagođenu funkciju komentara?

      Odgovor: morate ga kreirati.

      Najlakša opcija je kopiranje koda standardne WordPress funkcije komentar().

      Upute za kreiranje prilagođene funkcije za prikaz komentara:

      1. Otvorite fajl /wp-includes/comment-template.php i pronađite funkciju u njemu komentar().

      Evo početka njenog opisa

      /** * @od 3.6 * @pristup zaštićen * * @param objekat $comment Komentar za prikaz. * @param int $depth Dubina komentara. * @param niz $args Opcioni args. */ zaštićena funkcija komentar ($comment, $depth, $args) (

      * @od 3.6

      * @pristup zaštićen

      * @param objekt $comment Komentar za prikaz.

      * @param int $depth Dubina komentara.

      * @param niz $args Opcioni args.

      komentar zaštićene funkcije ($comment, $depth, $args) (

      2. Kopirajte cijelo tijelo funkcije komentar().

      Morate kopirati fragment koda s početka opisa prikazanog u koraku 1 do završne vitičaste zagrade } i sljedeći sličan opis druge funkcije