Formatowanie obszaru komentarzy w WordPress. Formatowanie obszaru komentarzy w WordPressie Wyłączenie wyświetlania pingów z panelu administracyjnego
Tło napisania tego artykułu jest typowe: postanowiłem wyróżnić swoje komentarze osobnym stylem... Na szczęście od kilku dni niszczę style.php i znam podstawowe zasady składni CSS. I oczywiście ten niewinny pomysł przerodził się w lekkie zakłopotanie, poszukiwanie rozwiązania... Ostatecznie wszystko się udało. A teraz chcę Wam opowiedzieć, jakich magicznych pasków użyłam do ozdabiania własnych komentarzy.
Celem wszystkich opisanych poniżej manipulacji jest podkreślenie czytelnikom swoich komentarzy i odpowiedzi. Jeśli nie przesadzisz ze stylami, wyjdzie całkiem elegancko. Oczywiście nie jest to niezbędna konieczność. Każdy, kto zdecyduje się wyświetlić Twoje komentarze, będzie mógł to zrobić pod pseudonimem. Ale idea piękna jest również ważna dla wielu blogerek.
Dodatkowo, jeśli zwrócimy uwagę na to, jak odpowiedzi autora są sformatowane na wielu dużych i przemyślanych serwisach (np. Smashingmagazine), zobaczymy dla nich odrębny styl. Oczywiście pomoże to poprawić użyteczność.
Szczególnie ważne jest zastosowanie osobnego stylu dla komentarzy autorskich na blogach, gdzie dozwolone są komentarze w kształcie drzewa o dość głębokim stopniu zagnieżdżenia. Mówiąc najprościej, gdzie użytkownik może odpowiadać na komentarze, odpowiadać na odpowiedzi i tak dalej.
Przyjrzyjmy się stylom komentarzy, które są już w użyciu
Nie dziwcie się, że sugeruję jakby zacząć od końca. Ale dla użytkowników, którzy nie czują się całkowicie komfortowo, edytując motywy WordPress, jest to najbardziej wizualny i oczywisty sposób.
Wybierz więc post na swoim blogu, który zawiera komentarze. Oczywiście potrzebujemy również Waszych odpowiedzi, aby się tu znaleźć. Po otwarciu takiej strony kliknij ją prawym przyciskiem myszy i wybierz „Wyświetl kod strony” (w przeglądarkach Google Chrome i Firefox na pewno jest taka opcja).
Nie bój się, gdy zobaczysz arkusz kodu. Tak naprawdę nie ma tu nic skomplikowanego ani tajemniczego. Przewiń stronę w dół, a zauważysz, że najpierw wyświetlane są ogólne informacje o poście, a następnie tekst z formatowaniem. Poniżej znajduje się wreszcie kod związany z komentarzami. Możesz po prostu wpisać Ctrl+F i wejść w wyświetlonym oknie lista komentarzy i naciśnij Enter - natychmiast zostaniesz „przerzucony” do żądanej linii, gdzie wyszukiwane słowo zostanie jasno podświetlone.
Przyjrzyjmy się teraz, jak oznaczane są nasze style komentarzy. Dla jasności kod pochodzi z mojego motywu. Oczywiście Twój może wyglądać i mieć nieco inną strukturę, ale główne znaczenie poszczególnych części kodu powinno być jasne:
TEKST KOMENTARZA
- id="li-komentarz-">
$głębia,"max_głębokość" => $args["max_głębokość"]))); ?>
- , ponieważ WordPress automatycznie utworzy tagi zamykające na podstawie znaczników zagnieżdżonych komentarzy.
Po opublikowaniu ta funkcja zostanie wywołana po wygenerowaniu komentarzy i umożliwi dokonanie niezbędnych zmian. Rzecz w tym, że zrobiliśmy wszystko, czego potrzebowaliśmy, korzystając ze standardowych i dość ograniczonych ustawień wp_list_comments()
Wróćmy teraz do starych sposobów - razem z wp_list_comments umieścimy pętlę foreach
Dzięki takiemu zastosowaniu szablon będzie wstecznie kompatybilny ze starszymi wersjami WordPressa.
Skoro już wiemy, jak skonfigurować pętlę komentarzy, zmodyfikujmy ją tak, aby odpowiadała naszym potrzebom i zastosujmy kilka fajnych trików.
Implementowanie komentarzy strona po stronie
Nikt nie wie z góry, że treść witryny może przyciągnąć setki komentarzy. Chodzi mi o to, że wszyscy jesteśmy supergwiazdami i sukces może nadejść niespodziewanie. Oglądanie i przewijanie wpisu z setkami komentarzy może zająć niesamowicie dużo czasu. Generalnie na pewno nie boimy się przewijania w pionie (w przeciwieństwie do przewijania w poziomie), ale wszystko powinno mieć obramowanie. Typowy post z 60 komentarzami może mieć wysokość do 20 tys. pikseli!
Świetnym sposobem na utrzymanie porządku jest paginacja kanału komentarzy i wyświetlanie ich strona po stronie.
Po włączeniu paginacji nie zapomnij dodać funkcji do pliku komentarze.php, aby wyświetlać linki „Przed” i „Później”.
Linki te będą automatycznie wyświetlane i przerywają arkusz komentarzy, gdy zostanie przekroczona określona liczba komentarzy na stronie. Jeśli liczba komentarzy będzie mniejsza niż ta liczba, linki nie zostaną wyświetlone.
I jest tu jeden haczyk. Pojawia się dobrze znany problem SEO polegający na powielaniu treści z komentarzami strona po stronie. Dzieje się tak, ponieważ dla każdej strony z komentarzami tworzone są te same 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/
Oczywiste jest, że tylko komentarze na tych stronach będą inne. Ogólny obraz jest jeszcze gorszy, ponieważ każdy komentarz ma swoje własne, unikalne powiązanie z czasem publikacji, co również powoduje powstawanie duplikatów. Dlatego bot wyszukiwania znajdzie tę samą treść pod ogromną liczbą różnych linków.
Aby uniknąć powielania, istnieje kilka rozwiązań:
- Nie używaj komentarzy na stronie
- Użyj metatagów, aby utworzyć kanoniczne adresy URL dla każdego postu
- Użyj wtyczki
Jeśli Twoja witryna jest bardzo popularna lub stanie się taka, to oczywiście lepiej jest używać kanonicznych adresów URL. Jeśli nie planuje się gorących dyskusji, łatwiej jest skorzystać z tradycyjnych arkuszy komentarzy bez paginacji.
SEO dla Paged Comments przyjmuje jeszcze bardziej radykalne podejście – usunięcie treści postu ze stron komentarzy i zastąpienie jej cytatem lub skróconą wersją postu.
Implementacja zagnieżdżonych komentarzy
Zagnieżdżone komentarze w drzewie umożliwiają odwiedzającym napisanie odpowiedzi na wybrany istniejący komentarz, tworząc bogaty dialog dyskusyjny. Po włączeniu tej funkcji w ustawieniach, przy każdym komentarzu pojawi się link „Odpowiedz”, dzięki któremu będziesz mógł wypowiedzieć się na temat konkretnego komentarza.
Zanim pojawiła się taka możliwość, istniał styl odpowiadania wybranemu autorowi, używając jego nazwiska i znaku @ w tekście komentarza, np. „@Vasya, mylisz się!” Po pewnej transformacji metoda ta zakorzeniła się w wielu aplikacjach w Internecie i nadal żyje, na przykład na Twitterze. A we współczesnych wersjach WordPressa taka wzmianka nie musi być używana.
Teraz wystarczy kliknąć odpowiedni link „Odpowiedz” i zabrać głos. Po zatwierdzeniu tekstu komentarza pojawi się on bezpośrednio pod komentarzem, którego dotyczył.
Jeśli Twój szablon nie obsługuje tego typu komentowania, możesz go dodać w prosty sposób:
- Wykonujemy kopie zapasowe plików, co teoretycznie powinno już wejść w nawyk
- Włącz zagnieżdżone komentarze w ustawieniach Opcje → Ustawienia dyskusji → Zezwalaj na komentarze w drzewie
- Dodaj następujący kod do header.php bezpośrednio przed funkcją wp_head()
- Dodaj do komentarze.php tuż przed tagiem zamykającym
- Sprawdźmy to
- Sprawdzamy, czy formularz komentarza jest załączony z atrybutem id="respond".
- Dodaj link anulowania komentarza tuż przed formularzem komentarza
- W komentarzach.php zastępujemy starą pętlę zaktualizowaną
Cóż, to wszystko :) Tradycyjnie istnieje bilion różnych sposobów dostosowywania i przerabiania go tak, aby odpowiadał Twoim potrzebom, ale myślę, że rozumiesz, o co chodzi. Jedyne, co musisz zrobić, to pamiętać o ustawieniu stylów dla zagnieżdżonych komentarzy
Lista komentarzy li.głębia-1() .lista komentarzy li.głębia-2() .lista komentarzy li.głębia-3()
Rozdzielamy komentarze, pingbacki i trackbacki
Skutecznym sposobem na zmniejszenie bałaganu podczas wyświetlania odpowiedzi na post jest oddzielne wyświetlanie komentarzy i sygnałów pingujących. Nie tylko nie zakłóci to sekwencji dyskusji, ale także pozwoli skupić większą uwagę na komentarzach.
Jest to jedna z najstarszych sztuczek i istnieje wiele sposobów jej wdrożenia. Oto przykład prostego podziału przy użyciu parametrów wp_list_comments():
Uwagi
Pingbacki/Trackbacki
Jednak ten kod ma wadę - nagłówki będą wyświetlane nawet jeśli nie ma komentarzy ani pingów. Lepiej byłoby użyć nieco ulepszonej wersji:
Uwagi
Trackbacki/Pingbacki
Podczas wyświetlania pingbacków wyświetlany jest link z fragmentem tekstu pobranego z witryny zawierającej łącze. Ten fragment może mieć różne rozmiary i jest trudny do kontrolowania, ponieważ... Nie wiadomo z góry, co się tam pojawi. Na szczęście możesz wyczyścić wyświetlanie tego tekstu, wyświetlając tylko schludną listę linków. Aby to zrobić, musisz dodać do Functions.php
Funkcja cleanPings($komentarz, $args, $głębokość) ( $GLOBALS["komentarz"] = $komentarz; echo "
- „.comment_author_link().”
";}Następnie dodaj wymagany parametr wywołania zwrotnego do wywołania funkcji komentarza
Niszczenie pingbacków i trackbacków
Nie możesz zabronić ludziom linkowania do Twojej witryny, ale możesz zdecydować, że nie będą wyświetlać na nich trackbacków i pingbacków. Początkowo, jak wiele innych rzeczy w Internecie, pingbacki wymyślono w dobrym celu - poinformowaniu, że ktoś połączył się z Tobą. A teraz niektórzy ludzie nadal ich używają i wycofują. Jednak technologia trackback całkowicie się zdyskredytowała z powodu masowego spamu, więc lepiej byłoby je wyłączyć.
Wyłącz wyświetlanie pingów z panelu administracyjnego
W tym celu w ustawieniach Dyskusji odznacz opcję Zezwalaj na powiadomienia z innych blogów. To całkowicie wyłącza funkcjonalność pingbacków i trackbacków, jednak dla osobno wybranego wpisu możesz włączyć tę funkcję w ustawieniach.
Wykluczanie pingów z komentarzy
Używamy parametru dla funkcji wp_list_comments(), pozwalając na wyświetlanie tylko komentarzy
Usuń wp-trackback.php
To bardzo prosty i skuteczny sposób – fizyczne usunięcie pliku wp-trackback.php z katalogu głównego WordPressa. Jest to całkowicie bezpieczna metoda, ale plik zostanie przywrócony po aktualizacji WordPressa i będzie musiał zostać ponownie usunięty.
Wyłącz korzystanie z wtyczek
Można to zrobić za pomocą wtyczki
Sama wtyczka jest bardzo prosta i składa się z jednego pliku, więc jej zawartość wystarczy skopiować i wkleić do plikufunction.php
Klasa DisableTrackbacks ( funkcja DisableTrackbacks() (add_action("pings_open", tablica(&$this, "pings_open"));) funkcja pings_open($open) (return („1" == get_query_var("tb")) ? FALSE : $open;) ) add_action("plugins_loaded", create_function("", "global $DisableTrackbacks; $DisableTrackbacks = new DisableTrackbacks();"));
Po umieszczeniu funkcja DisableTrackbacks niszczy wszystkie trackbacki. Ale pingbacki pozostają.
Kontrolujemy komentarze bezpośrednio w bazie danych
WordPress oferuje kilka sposobów kontrolowania, czy post jest otwarty do komentowania, czy nie. W panelu administracyjnym możesz całkowicie zabronić pozostawiania komentarzy pod przyszłymi wpisami na całym serwisie. Ponadto w pojedynczym wpisie w edytorze możesz wybrać w bloku Dyskusja, czy komentarze będą dla niego otwarte, czy nie.
Ale tuż nad tymi metodami znajduje się wtyczka, która pozwala ukryć wszystkie stare komentarze po określonym czasie i wysłać je do moderacji. Bez żadnych wtyczek możesz włączać i wyłączać komentowanie za pomocą prostych zapytań do bazy danych.
Globalnie zezwalaj na pingi dla wszystkich użytkowników
AKTUALIZACJA wp_posts SET ping_status = "otwarte";
Globalnie zablokuj pingi dla wszystkich użytkowników
AKTUALIZACJA wp_posts SET ping_status = "zamknięte";
Globalnie zablokuj pingi do określonej daty publikacji
AKTUALIZACJA wp_posts SET ping_status = "zamknięte" GDZIE post_data< "2009-09-09" AND post_status = "publish";
Takie prośby pozwalają na okresowe sprzątanie. A oto przykład próśb o globalne pozwolenie lub zakaz komentowania
AKTUALIZACJA wp_posts SET komentarz_status = "otwarty", ping_status = "otwarty" GDZIE komentarz_status = "zamknięty" ORAZ post_status = "publikuj";
Właściwie wystarczy, że znajdziemy komentarze z Twoim nickiem (przykładowo na tym blogu piszę i odpowiadam pod pseudonimem Katyaru). I tuż nad wymaganą linią, która zaczyna się w ten sposób:
Dziękuję, masz świetną stronę!