Zachęcam do udziału w konferencji nt. WordPressa - WordCamp Lublin 2017

publikacja: 15 grudnia 2008, autor: , komentarzy 65 https://wpninja.pl/artykuly/wordpress-2-7-nowy-system-komentarzy/

WordPress 2.7: Nowy system komentarzy

WordPress 2.7: Nowy system komentarzy

Jedną z ciekawych nowości w WordPress 2.7 jest dosyć mocno przebudowany system wyświetlania komentarzy. Dzięki niemu mamy jeszcze większą kontrolę nad funkcjonowaniem tego jakże ważnego elementu naszego bloga.

Jeśli jesteś ciekawy co oferuje nowy system komentarzy oraz w jaki sposób go uruchomić to, trafiłeś we właściwe miejsce.

Parę słów na temat nowego systemu komentarzy

Nowy system zawiera w sobie sporo funkcjonalności, które do tej pory można było osiągnąć jedynie poprzez aktywację odpowiednich wtyczek. Zaliczają się do nich m.in:

  • grupowanie w wątki
    wraz z ustawieniem maksymalnego poziomu zagnieżdżenia
  • dzielenie na strony
    wraz z ustawieniem ilości, po której następuje paginacja
  • kolejność wyświetlania
    od najnowszego do najstarszego komentarza lub odwrotnie
  • automatyczne zamykanie
    wraz z ustawieniem ilości dni, po których nastąpi zamknięcie

Plusem jest fakt, że wszystkimi ustawieniami można swobodnie zarządzać z poziomu panela administratora (zakładka ustawienia / dyskusja):

wordpress-27-nowy-system-komentarzy-01

Zarządzanie systemem w panelu administracyjnym

Aby jednak móc z nowego systemu skorzystać trzeba nieco pogrzebać w bebechach skórki. Niestety stare skórki nie będą pozwalały na takie „bajery”.

Wdrażanie nowego systemu komentarzy

Proces wdrożenia polega na drobnej edycji pliku header.php i praktycznie całkowitej przebudowie pliku comments.php. Oba znajdują się w katalogu aktualnie używanej skórki (.../wp-content/themes/nazwa-skórki/). Wysoce zalecane jest wykonanie kopii bezpieczeństwa obu plików.

Sam proces wygląda następująco:

  1. Dodatkowy skrypt JavaScript

    W pliku header.php przed wierszem z wywołaniem funkcji wp_head() dodajemy następujący ciąg:

    <?php wp_enqueue_script( 'comment-reply' ); ?>

    Funkcja ta załaduje odpowiedni skrypt JavaScript, który odpowiedzialny jest za obsługę przemieszczania formularza pomiędzy komentarzami.

    Reszta kroków wykonywana jest na pliku comments.php.

  2. Nowa funkcja wyświetlająca komentarze

    Podmieniamy stary kod służący do wyświetlania komentarzy:

    <ol class="commentlist">
    <?php foreach ($comments as $comment) : ?>
    <li <?php echo $oddcomment; ?>id="comment-<?php comment_ID() ?>">
    // (...)
    </li>
    // (...)
    <?php endforeach;?>
    </ol>

    na następujący:

    <ol class="commentlist">
    <?php wp_list_comments(); ?>
    </ol>
    <?php previous_comments_link() ?>
    <?php next_comments_link() ?>

    Funkcja wp_list_comments() generuje cały kod komentarza a previous_comments_link()next_comments_link() tworzą nawigację pomiędzy kolejnymi stronami (o ile ustawiona zostanie paginacja).

  3. Dodatkowe ukryte pola w formularzu

    Pomiędzy znacznikami <form></form> zamieniamy linię:

    <input type="hidden" name="comment_post_ID" value="<?php echo $id; ?>" />

    na następującą:

    <?php comment_id_fields(); ?>

    Jest to nowa funkcja, która dodaje dwa ukryte pola formularza (m.in. to które zastąpiliśmy). Służą one do identyfikacji zagnieżdżenia.

  4. Dodatkowy blok o id=”respond”

    Cały formularz otaczamy blokiem o identyfikatorze „respond”:

    <div id="respond">
    <h3>Dodaj komentarz</h3>
    // (...) - tutaj m.in. formularz
    </div>

    Pozwala to JavaScriptowi na przemieszczanie formularza pomiędzy komentarzami.

  5. Odnośnik „anuluj odpowiedź”

    W dowolnym miejscu bloku „respond” dodajemy następującą funkcję:

    <?php cancel_comment_reply_link(); ?>

    Funkcja ta tworzy odnośnik „Anuluj odpowiedź w tym miejscu”, który przenosi cały formularz w pierwotne miejsce.

Wystarczy teraz zalogować się do panelu administratora i w zakładce ustawienia / dyskusja skonfigurować system według naszych potrzeb.

Stylowanie nowego systemu komentarzy

Po wdrozeniu nowego systemu okazać się może, że aspekt wizualny uległ znaczącemu pogorszeniu. Niestety, nowy system oznacza nowe stylowanie za pomocą CSS. Zainteresowanych tematem odsyłam do artykułu Damiana Sochackiego.

Komentarze

  1. Ravicious 9 lat temu:

    Dzięki, może kiedyś u siebie to wprowadzę, o ile nie zmienię wcześniej skórki ;)

    odpowiedz
  2. Gremlin 9 lat temu:

    Bardzo ciekawy wpis, dzięki za informacje ;)

    odpowiedz
  3. Paweł Zinkiewicz 9 lat temu:

    Jak wprowadzę to tylko dla paginacji komentów, chociaż to też na razie się nie przydaję zbytnio ;) Dzięki za tutka.

    odpowiedz
  4. Livio 9 lat temu:

    Tarski 2.4 już to ma, K2 dopiero w SVN. Użytkownicy gotowców nie muszą się martwić ;D .

    odpowiedz
  5. TopBlogger 9 lat temu:

    Dzięki Ci dobry człowieku za tutka, zaoszczędziłeś mi godzinę wertowania opisów. Mogłeś jeszcze dopisać jak zrobić, by system był kompatybilny z dowolną wersją wordpressa, ale to już by kompletnie rozleniwiło ;).

    A tak całkowicie bezinteresownie: Ikonki social bookmarking już są :). Może boks autora pojawiłby się pod wpisem zamiast w sidebar, chodzi o rozpoznawalność autora wpisu (ja przynajmniej już się raz złapałem na przypisywanie autorstwa komuś innemu) i o działanie tuż po przeczytaniu wpisu. Dodatkowo przydałaby się opcja podejrzenia wszystkich artykułów jednego autora (link). Możnaby wtedy jeszcze dodać listę „inne wpisy autora”, ale to już luksus. :D

    odpowiedz
  6. Julian 9 lat temu:

    U siebie muszę w ogóle wprowadzić system komentarzy więc ten „tutorial” mi się przyda ;)))
    Dobra robota!

    odpowiedz
  7. amag 9 lat temu:

    Dzięki za dobry tutorial! Nie wiem jak bez niego miałbym przebudować swoją skórkę :-)

    odpowiedz
  8. SpeX 9 lat temu:

    A można jakieś przykłady (np video) jak działa ten nowy system komentarzy?
    Jak rozpoznać czy gotowiec spełnia wymagania WP2.7 jeśli chodzi o komentarze?

    odpowiedz
  9. Banny 9 lat temu:

    Próbowałam, ale mi nie wyszło, więc na razie powróciłam do „staroci”… Może to nie mój czas… :P

    odpowiedz
  10. Paweł Zinkiewicz 9 lat temu:

    Mały błedzik (:
    „W pliku header.php przed wierszem z wywołaniem funkcji wp_header()”
    funkcji wp_head()

    odpowiedz
  11. Szymon Skulimowski 9 lat temu:

    Dzięki, już poprawiłem.

    odpowiedz
  12. haRacz 9 lat temu:

    Jak na razie sie nie waliduje, wiec pewnie masa ludzi bedzie czekac z wprowadzeniem tego.
    http://css-tricks.com/thoughts-on-intensedebate-so-far/

    odpowiedz
  13. Paweł Zinkiewicz 9 lat temu:

    W zasadzie to po co upraszczali to wszystko do wp_list_comments skoro trzeba się teraz jeszcze bardziej namęczyć niż wcześniej żeby ostylować komentarze. Niech spadają :P

    dla zainteresowanych http://codex.wordpress.org/Template_Tags/wp_list_comments

    odpowiedz
  14. Piotr Sajnog 9 lat temu:

    Właśnie. Proponuję następny artykuł poświęcić na przykład ostylowania komentarzy w css. Z technicznego punktu widzenia działa mi wszystko ok, ale zrobił się straszny bałagan jeśli chodzi o wygląd.

    odpowiedz
  15. glabek94 9 lat temu:

    Po aktualizacji właśnie czegoś takiego szukałem. Muszę to zrobić, bo po to przerabiali system, żebym go używał. Dzięki.

    odpowiedz
  16. SpeX 9 lat temu:

    To jest system już z tym przejętym sposobem komentarzy?

    odpowiedz
  17. Szymon Skulimowski 9 lat temu:

    @Paweł,

    W zasadzie to po co upraszczali to wszystko do wp_list_comments skoro trzeba się teraz jeszcze bardziej namęczyć niż wcześniej żeby ostylować komentarze …

    Zgadzam się. I właśnie dlatego nie jestem zbytnim zwolennikiem tego nowego rozwiązania. Przynajmniej do póki nie zrobią porządnej dokumentacji i dodatkowych parametrów :-).

    odpowiedz
  18. Szymon Skulimowski 9 lat temu:

    @Spex,

    To jest system już z tym przejętym sposobem komentarzy?

    Nie, to nie jest IntenseDebate.

    odpowiedz
  19. Grzesiek 9 lat temu:

    hmmm… nowy system ma wieksze mozliwosci ale trudniej jest dostosowac go do niestandardowego markup-u, ktory wiele ludzi ma w szablonie komentarzy – np ja u siebie mam co prawda liste ale wewnatrz kazdego elementu sa jeszcze dodatkowe divy i inne pierdoly :)

    ale z tego co czytam wystarczy napisac funkcje, wrzucic w nia nasz html/css i podpiac ja jako parametr callback do wp_list_comments

    odpowiedz
  20. Custom 9 lat temu:

    Jak zawsze – poradnik szczegółowy i jakże pomocny. Dlatego przypomnę i siebie :P

    Proszę o artykuł, jak zrobić, aby avatary które wyświetlają się komentarzach w panelu admina były wyświetlane także na stronie z komentarzami pod wpisem w skórce, która takiej funkcji nie posiada…

    odpowiedz
  21. kmh 9 lat temu:

    Dzięki, zrobiłeś to czytelniej niż wcześniejsze poradniki jakie czytałem, więc jak tylko znajdę chwilę czasu posiedzę nad tym i w razie czego przybiegnę z płaczem po pomoc :)

    odpowiedz
  22. Szymon Skulimowski 9 lat temu:

    Dzięki i proszę bardzo :-).

    odpowiedz
  23. Szymon Skulimowski 9 lat temu:

    @Grzesiek,

    ale z tego co czytam wystarczy napisac funkcje, wrzucic w nia nasz html/css i podpiac ja jako parametr callback do wp_list_comments

    Zgadza się. Można cały kod przerzucić przez functions.php zgodnie z tym co piszą na wiki WordPressa. Jest to jednak sposób wysoce niezalecany ze względu na możliwą niekompatybilność z późniejszymi wydaniami.

    odpowiedz
  24. Piotr Sajnog 9 lat temu:

    Polecam świetny wpis na temat ostylowania komentarzy:

    http://damek.eu/wordpress-27-system-komentarzy/

    Skorzystałem z niego u siebie i działa pięknie :)

    odpowiedz
  25. kmita 9 lat temu:

    Pytanie, czy nowy system jest na tyle przydatny, że opłaca się grzebać w plikach ;-)

    odpowiedz
  26. Łukasz Więcek 9 lat temu:

    Walczyłem ładnych kilka godzin z wdrożeniem tego systemu u siebie. Cały czas miałem problem z odpowiadaniem na komentarze – po kliknięciu „odpowiedz” strona się przeładowywała, a formularz i tak pozostawał na swoim miejscu (ale odpowiedzi dodawały się prawidłowo). I nie zgadniecie w czym był problem ;) Nie miałem po prostu w kodzie wrzuconego linku „anuluj odpowiedź” – i przez to wysypywał się JS ;)

    Tak piszę to dla potomnych, jak by ktoś miał podobny problem.
    Pozdrawiam!

    odpowiedz
  27. Szymon Skulimowski 9 lat temu:

    Dokładnie. Z tej listy trzeba zrobić dosłownie wszystko (no, oprócz odnośników do paginacji komentarzy). :-)

    odpowiedz
  28. Szymon Skulimowski 9 lat temu:

    @kmita,

    Pytanie, czy nowy system jest na tyle przydatny, że opłaca się grzebać w plikach ;-)

    Na to pytanie musisz już sobie sam odpowiedzieć – czy to są potrzebne te wszystkie nowe bajery (krótką listę znaleźć można na początku tego artykułu)?

    odpowiedz
  29. Damian 9 lat temu:

    @kmita
    wg mnie jest ;)

    odpowiedz
  30. kmh 9 lat temu:

    Dobra, wydawało mi się, że jednak zrobiłem wszystko tak jak trzeba, jednakże wychodzi na to, że nie – strona się nie rozsypała (to plus), jednakże nie widać nigdzie linka do „reply” (to minus). Podjąłem się szalonego zadania zrobienia skórki na podstawie Sandboxa:
    http://www.plaintxt.org/themes/sandbox/#download
    Bo chcę mieć potem kontrole nad wszystkim.

    Niemniej mój header.php wygląda tak:

    „php wp_enqueue_script( ‚comment-reply’ ); ”
    „php wp_head() // For plugins ”

    z nawiasami oczywiście odpowiednio trójkątnymi zamiast cudzysłowów

    comments.php nie będę wklejał, bo to już za dużo atrakcji:)

    odpowiedz
  31. kmh 9 lat temu:

    Dobra! Działa!

    Wstyd się przyznać, ale z tego rozentuzjazmowania zapomniałem w opcjach WP włączyć opcję wątkowania komentarzy.

    plask

    :)

    odpowiedz
  32. Damian 9 lat temu:

    często jest tak, że zapomina się zrobić rzeczy najbardziej oczywistych ;)

    odpowiedz
  33. Szymon Skulimowski 9 lat temu:

    Na wszelki wypadek dodałem dodatkową informację o tym żeby uaktywnić jeszcze opcje w panelu administracyjnym. Dodałem także odnośnik do artykułu Damiana dotyczącego stylowania.

    odpowiedz
  34. kavillock 8 lat temu:

    a ja niewiem jakim cudem ale mam problem a propos punktu 4-go – to bierzemy tylko znaczniki czy cały plik w to

    odpowiedz
  35. Damian 8 lat temu:

    @kavillock
    wszystko co jest między … zawierasz w to
    np. http://www.wklejto.pl/20901

    odpowiedz
  36. kavillock 8 lat temu:

    tak jak tu ??
    http://wklejto.pl/20937

    odpowiedz
  37. kavillock 8 lat temu:

    ok niewarzne działa wielkie dzięki

    odpowiedz
  38. Yahó 8 lat temu:

    Ja miałem taki problem (pracuje na WP2.7.1stary szablon)chciałem mieć na swojej stronce koniecznie avatory do tego wgrałem plugin z tej stronki http://www.marcocimmino.net/cimy-wordpress-plugins/cimy-user-extra-fields/,zdj lecz to nie rozwiązało mojego problemu avatory nadal nie były widoczne na mojej stronie dlatego z zapytaniem ruszyłem do WPNinja :)
    w pliku comments.php (w moim szablonie) wgrałem taki kodzik jaki mi polecił a mianowicie
    lecz trochę go zmodyfikowałem pod swój szablon i odrazu myślę że większość będzie wiedziała gdzie znajduję już się ta pętla bo wchodząc w plik comments.php nie odrazu wiedziałem gdzie ona się znajduje!:)
    <?php echo ”.get_avatar( $comment, $size = ’50’, $default = ” ).”; ?>By on <a href=”#comment-” title=””>

    p.s
    polecam ten plugin Cimy User Extra Fields bardzo przydatny jeżeli chodzi o wgrywanie własnych plików .jpg link do niego w mojej wypowiedzi pozdrawiam Yahó

    odpowiedz
  39. Nomex 8 lat temu:

    Cały dzień walczyłem z tym kodem aby zadziałał na moim portalu. Praktycznie wszystko udało się zrobić jednak z moimi wcześniejszymi modyfikacjami w kodzie strony nie spełniał moich oczekiwań.
    Zacząłem szukać jakieś wtyczki która byłaby alternatywą dla dzielenia komentarzy aż w końcu po 6 próbach trafiłem.

    Temat jest dość stary ale może komuś się przyda ta informacja i wtyczka: http://wordpress.org/plugins/wp-paged-comments/

    odpowiedz
  40. Zacol 8 lat temu:

    @Nomex: Póki co nie mam aż tylu komentarzy by dzielić je na strony, ale wtyczka ciekawa. Można by rzec, że to wp-pagenavi tylko dla komentarzy. BTW, jak ty to znalazłeś jak tam opis po „chińsku” ;p

    odpowiedz
  41. SpeX 8 lat temu:

    Pewnie po tagach i rzutach obrazu. Ja tak przynajmniej szukam wtyczek.

    odpowiedz
  42. Zacol 8 lat temu:

    @SpeX: Mimo wszystko „chiński” utrudnia sprawę… zresztą ważne, że znalazł i się podzielił ciekawą wtyczką :)

    odpowiedz
  43. Nomex 8 lat temu:

    W wyszukiwarce Pluginów wpisałem słowa Page i Comments później przejrzałem chyba ze 100 wtyczek z czego wybrałem 6 wspomnianych w tytule których pojawiały się te wyrazy.
    Tak jak pisze SpeX pomogło Screenshots i translate google ;)
    Przetestowałem wszystkie wtyczki na portalu i tylko ta nie spowodowała błędów.

    odpowiedz
  44. Jakub Milczarek 8 lat temu:

    Bardzo dobra porada! Właśnie wprowadziłem również u siebie to nowe formatowanie komentarzy.
    Mam tylko jedną uwagę:
    W linijce: brakuje ‚;’ po nawiasach… Właśnie spędziłem dobrych kilka minut w sprawdzaniu dlaczego po dodaniu komentarza ładuje mi się blank page „wp-comments-post.php”. A to brak tylko jednego małego średnika :)

    odpowiedz
  45. wp-fun 7 lat temu:

    fajna sprawa z tymi komentzarzami

    odpowiedz
  46. seba 7 lat temu:

    a w jakim pliku zamieścić punkt 3 i 4

    odpowiedz
  47. Jakub Milczarek 7 lat temu:

    @seba – W pliku comments.php

    odpowiedz
  48. Michuu^^ 6 lat temu:

    Też mam problem z pkt 4, trochę nie za bardzo rozumiem autora i nie wiem gdzie zrobić ten blok.
    http://wklej.org/hash/4d528f9f40e/

    skrypt chyba dobrze zainicjowałem?
    http://wklej.org/hash/60cf381e04d/

    Z góry dzięki za pomoc!

    odpowiedz
  49. Michuu^^ 6 lat temu:

    ok, znalazłem komentarz który mi pomógł rozwiązać problem, autor mógłby zamieścić tą informację w artykule, pozdrawiam!

    odpowiedz
  50. Szymon Skulimowski 6 lat temu:

    Dzięki za informację. Będę tutja niedługo aktualizował system komentarzu więc jeszcze raz przelecę opisany tu proces i dodam brakujące rzeczy.

    odpowiedz
  51. zegarki 6 lat temu:

    Dzięki za podpowiedzi. Pozdrawiam

    odpowiedz
  52. Tu wdrożyłem 5 lat temu:

    Dzięki !! – wreszcie udało mi się wdrożyć to klientowi, bo kilkaset bezładnych komentarzy mu zdrowo psuło stronę.
    Teraz każdy z każdym może sobie podyskutować :)

    odpowiedz
  53. Kamil 5 lat temu:

    Też zamierzam z tym powalczyć u siebie, ale brak czasu znowu robi swoje :|

    odpowiedz
    1. Kamil 5 lat temu:

      No niestety na razie same problemy ;o(

      odpowiedz
    2. Szymon Skulimowski 5 lat temu:

      Z czym konkretnie? Może damy radę jakoś pomóc?

      odpowiedz
    3. Kamil 5 lat temu:

      Opisałem szerzej problem na Emailu, jak znajdziesz chwilę czasu to luknij w kod opatrzony komentarzami w miejscach zmian ;o)

      odpowiedz
    4. Szymon Skulimowski 5 lat temu:

      Myślę, że najlepiej będzie jeśli opiszesz tutaj swój problem (kod możesz dodać do takich serwisów jak http://wklej.org/).

      odpowiedz
  54. pytam 5 lat temu:

    Artykuł świetny. Właśnie dostosowałem swoją starą skórkę w WP do nowego systemu komentarzy. Wcześniej stosowałem wtyczkę paged comments.
    Niestety jest jedna rzecz, która teraz nie działa jak powinna. Przykład: pod wpisem jest 100 komentarzy, podział jest ustawiony na 50 sztuk. Skonfigurowane tak aby wyświetlała się ostatnia podstrona, na górze najstarsze komentarze. Problem jest taki, że na każdej podstronie z komentarzami ich numeracja zaczyna się od jedynki, a przecież powinna być kontynuacja. Jak temu zaradzić? Skórka ma złą komendę od podania numeru komentarza? (Wcześniej, ze wspomnianą wtyczką, wszystko było ok).

    odpowiedz
    1. Szymon Skulimowski 4 lata temu:

      Czy mógłbyś podać adres strony?

      odpowiedz
    2. pytam 4 lata temu:

      Już doszedłem do tego jak to rozwiązać. Teraz jest jeszcze coś. Blog na WordPressie. Dużo wpisów i w jednym strona ładuje się tylko do poziomu wywołania comments.php. Dale nie ma nic, stopki itp. Header się wyświetla, post i później koniec. Akurat pod tym postem jest bardzo dużo komentarzy, ale miałem już takie sytuacje gdy maszyna nie dawała rady to wtedy po prostu strona się nie wyświetlała z przeciążenia. Włączenie błędów nic nie pokazuje.

      odpowiedz

Dodaj własny komentarz

Odnośniki z innych stron

Lista innych stron, które w jakiś sposób odnoszą się do opublikowanej tutaj treści:

  1. damek.eu » WordPress 2.7 - System komentarzy

    […] Oczywiście pierwszą rzeczą jaką musimy zrobić to osadzić nowy system komentarzy w naszej skórce do wordpressa. Jak to zrobić dowiecie się na blogu WPNinja. Zapraszam.  […]

  2. Krótkie podsumowanie: grudzień 2008

    […] WordPress 2.7: Nowy system komentarzy Krótkie przedstawienie zalet nowego systemu komentarzy, który pojawił się wraz z WordPressem 2.7 oraz rzeczowa instrukcja wdrożenia. […]

  3. Co najbardziej podoba Ci się w nowym WordPressie (2.7)?

    […] system wyświetlania komentarzy, […]

  4. Grupowanie komentarzy w wątki w WordPress | Jakub Milczarek

    […] pierwsze kroki zostały bardzo dobrze opisane na stronie WPNinja we wpisie: WordPress 2.7: Nowy system komentarzy. Dodam tylko, że w punkcie  5. Odnośnik „anuluj odpowiedź” powinno być: <?php […]

  5. WordPress – dodawanie własnego, domyślnego awatara | WPNinja

    […] działa bez względu na to, czy wyświetlamy komentarze w tradycyjny sposób, czy za pomocą „nowego” systemu komentarzy. Podobał się artykuł? Dodaj kanał RSS / Atom do swojego czytnika lub zapisz się na bezpłatny […]