Bezhraničný komentár php. Formátovanie oblasti komentárov vo WordPress. Implementácia vnorených komentárov

  • 20.06.2020

Dostať sa do kódu alebo nie? Už predtým sme si povedali, že komentárový formulár je trochu komplikovaný, a preto tvorcovia všetko maximálne zjednodušili.

Funkcia vyvolania komentára je jednoduchá a nemá žiadne parametre

Vyzerá jednoducho, ale dokáže veľa. V skutočnosti vytvára obrovské množstvo html kódu a používa veľa php kódu. Pretože Táto funkcia vygeneruje všetok hotový HTML kód, potom sa s tým budeme musieť vysporiadať bez možnosti nejako upravovať alebo upravovať pomocou parametrov. Môže to byť problém, keďže tento html kód nemôžeme skutočne zmeniť. Nemáte radi hodiny div? Nechcete používať gravatary? Chcete zmeniť poradie, v ktorom sú riadky zobrazené?

S tým všetkým sa budete musieť zmieriť a nepotrebné veci skryť pomocou css. Z tohto hľadiska sa budete musieť rozhodnúť, ktorou preferovanou cestou sa vyberiete:

wp_list_comments

  • jednoduché použitie
  • vstavaná funkcia komentovania
  • vstavaná funkcia stránkovania
  • vstavaná funkcia stromového zobrazenia
  • predvolené triedy css pre základné úlohy

funkcia vlastného komentára

  • absolútna absolútna kontrola nad všetkým
  • štandardné a vlastné triedy css
  • dostupnosť pluginov na pridanie potrebnej funkcionality

Výber spôsobu generovania komentárov závisí od mnohých faktorov. Vo všeobecnosti odporúčame používať wp_list_comments a neklamať sa. Ak potrebujete urobiť niečo vlastné, špeciálne a špecifické, s požadovanou funkcionalitou a schopnosťami a táto túžba je podporená vedomosťami, potom použitie vlastných cyklov umožní to všetko implementovať.

Okrem toho existuje stará dobrá metóda zobrazovania komentárov pomocou slučky foreach, takže stále musíme veľa vymýšľať.

wp_list_comments() alebo vlastná slučka?

Pred verziou 2.7 bola výstupná slučka komentárov založená na databázových dotazoch a zobrazovala sa trochu kľukatou, ale dobre zrozumiteľnou cestou.

Potom boli komentáre obohatené o ďalšiu funkcionalitu – navigáciu po stránke a vnorenie stromov. Tieto funkcie boli aktivované cez admin panel a slučka foreach bola nahradená už zobrazenou funkciou wp_list_comments. Tento cyklus však stále zostáva funkčný, aj keď zo zrejmých dôvodov nepodporuje ďalšie funkcie.

Hoci wp_list_comments nevyzerá ako slučka, robí všetko rovnako, opakuje dotazy a vydáva komentáre znova a znova, až kým neskončia, pričom ich označí príslušnými značkami.

Zvyčajne hotový HTML kód pre jeden komentár vyzerá asi takto:

  1. Meno komentátora hovorí:

    Ďakujem, máte skvelú stránku!

Ako vidíte, výstupná slučka komentára obsahuje obrázok gravatar, niekoľko divov, veľa rôznych tried CSS, odkaz na autora a skutočný text komentára. Ak vám to vyhovuje, potom je to dobré, nemusíte robiť nič iné.

V tomto prípade môžete osloviť iba nasledujúce možnosti wp_list_comments:

  • predvolená veľkosť avatara je 32 pixelov
  • css štýly - pomocou ich názvov môžete meniť parametre na požadované
  • štýl pre zobrazenie štýlu zoznamu komentárov. V predvolenom nastavení sa komentáre zobrazujú ako značky neusporiadaného zoznamu
      ale ak chcete namiesto toho použiť usporiadaný zoznam
        , potom použite tento parameter "ol")); ?>
      1. typ typ je reťazcový parameter zodpovedný za zobrazené komentáre. Dostupné parametre sú all, comment, trackback, pingback, pings. Ping znamená, že Trackbacky aj pingbacky budú na výstupe spoločne. Štandardne je parameter all, t.j. zobrazia sa všetky komentáre.
      2. text odpovede reply_text – určuje, čo sa napíše na odkaz na odpoveď na komentár, zvyčajne „Odpovedať“
      3. autorizačný text login_text – zobrazí sa, ak sa potrebujete prihlásiť na stránku, aby ste mohli odpovedať, zvyčajne „Prihlásiť sa a komentovať“
      4. callback je názov vlastnej funkcie na zobrazovanie komentárov.
      5. K dispozícii sú ďalšie možnosti

    To nie je veľa, no vo väčšine prípadov to na minimálne potrebné úpravy stačí. Ak potrebujete viac, budete musieť použiť vlastnú slučku alebo zasahovať do PHP kódu napísaného v comments.php, prípadne pridať potrebnú funkcionalitu do functions.php.

    Šamanizmus vo funkciách.php

    Najprv naznačme v comments.php, že budeme používať našu vlastnú funkciu

    Teraz si vytvoríme našu vlastnú funkciu vo functions.php

  • id="li-comment-">
    ");?> %s hovorí:"), get_comment_author_link()); ?>
    comment_approved == "0") : ?>
    $depth,"max_depth" => $args["max_depth"]))); ?>
    Upozorňujeme, že štítok neuzatvárame
  • , pretože WordPress automaticky vytvorí uzatváracie značky na základe označenia vnorených komentárov.

    Po odoslaní sa táto funkcia spustí pri generovaní komentárov a umožní vám vykonať potrebné úpravy. Trik je v tom, že sme urobili všetko, čo sme potrebovali, pomocou štandardných a pomerne obmedzených nastavení wp_list_comments()

    Teraz sa vráťme k starým spôsobom – spolu s wp_list_comments vložíme slučku foreach

    Toto použitie umožní, aby bola šablóna spätne kompatibilná so staršími verziami WordPress.

    Teraz, keď vieme, ako nastaviť slučku komentárov, upravme ju tak, aby vyhovovala našim potrebám, a použite niekoľko skvelých trikov.

    Implementácia komentárov po jednotlivých stránkach

    Nikto vopred nevie, že obsah na stránke môže prilákať stovky komentárov. Narážam na to, že všetci sme superhviezdy a úspech môže prísť nečakane. Pozeranie a pretáčanie príspevku so stovkami komentárov môže byť šialene dlhé. Vo všeobecnosti sa určite nebojíme vertikálneho rolovania (na rozdiel od horizontálneho rolovania), ale všetko by malo mať hranice. Typický príspevok so 60 komentármi môže mať výšku až 20 000 pixelov!

    Skvelý spôsob, ako udržať veci usporiadané, je stránkovať svoj informačný kanál komentárov a zobrazovať ich stránku po stránke.

    Keď povolíte stránkovanie, nezabudnite do svojho súboru comments.php pridať funkcie na zobrazenie odkazov „Pred“ a „Neskôr“.

    Tieto odkazy sa automaticky objavia a rozbijú hárok komentárov, keď sa prekročí určený počet komentárov na stránku. Ak je komentárov menej ako tento počet, odkazy sa nezobrazia.

    A je tu jeden háčik. Vzniká známy problém SEO duplikovania obsahu s komentármi po stránke. Stáva sa to preto, že pre každú stránku komentára sú vytvorené rovnaké adresy URL.

    • https://yoursite.com/ghost-dad-rocked/
    • https://yoursite.com/ghost-dad-rocked/comments-page-1/
    • https://yoursite.com/ghost-dad-rocked/comments-page-2/
    • https://yoursite.com/ghost-dad-rocked/comments-page-3/

    Je jasné, že iba komentáre na týchto stránkach budú iné. Celkový obraz je ešte horší, že každý komentár má svoje jedinečné prepojenie s časom zverejnenia, čo tiež pridáva kopu duplikátov. Preto vyhľadávací robot nájde rovnaký obsah pod obrovským množstvom rôznych odkazov.

    Aby sa predišlo duplicite, existuje niekoľko riešení:

    1. Nepoužívajte komentáre na stránke
    2. Pomocou metaznačiek vytvorte kanonické adresy URL pre každý príspevok
    3. Použite plugin

    Ak je vaša stránka veľmi populárna alebo sa ňou stane, je samozrejme lepšie použiť kanonické adresy URL. Ak nie sú plánované horúce diskusie, potom je jednoduchšie použiť tradičné komentáre bez stránkovania.

    SEO pre stránkované komentáre používa ešte radikálnejší prístup – odstraňuje obsah príspevku zo stránok s komentármi a nahrádza ho citátom alebo skrátenou verziou príspevku.

    Implementácia vnorených komentárov

    Vnorené stromové komentáre umožňujú návštevníkom napísať odpoveď na vybraný existujúci komentár, čím sa vytvorí bohatý diskusný dialóg. Po aktivácii tejto funkcie v nastaveniach sa vedľa každého komentára zobrazí odkaz „Odpovedať“, ktorý vám umožní vyjadriť sa ku konkrétnemu komentáru.

    Predtým, ako sa objavila táto možnosť, existoval štýl odpovede vybranému autorovi pomocou jeho mena a znaku @ v texte komentára, napríklad „@Vasya mýliš sa!“ S určitou transformáciou sa táto metóda udomácnila v mnohých aplikáciách na internete a dodnes žije napríklad na Twitteri. A v moderných verziách WordPress sa takáto zmienka nemusí používať.

    Teraz stačí kliknúť na príslušný odkaz „Odpovedať“ a vyjadriť sa. Keď je text komentára schválený, objaví sa hneď pod komentárom, o ktorom bol napísaný.

    Ak vaša šablóna nepodporuje tento typ komentárov, existuje jednoduchý spôsob, ako ho pridať:

    1. Vytvárame záložné kópie súborov, čo by sa už teoreticky malo stať zvykom
    2. Povoliť vnorené komentáre v nastaveniach Možnosti→ Nastavenia diskusie→ Povoliť komentáre stromu
    3. Pridajte nasledujúci kód do header.php bezprostredne pred wp_head()
    4. Pridajte do comments.php tesne pred uzatváraciu značku
    5. Skontrolujme to