Na wielu forach często przewija się ten temat w kilku powtarzających się pytaniach. Użytkownicy WordPressa najczęściej szukają odpowiedzi na pytania typu „Jak wyłączyć możliwość komentowania”, albo „Jak zablokować komentarze”. Często też chcemy osiągnąć efekt, w którym możliwość komentowania pojawia się tylko i wyłącznie przy wybranych przez nas wpisach/stronach.

Jak prawie wszystko w WordPressie, tak również i tą prostą czynność możemy zrobić na kilka różnych sposobów – od całkowitego wyłączenia komentarzy na całym blogu, przez zamknięcie komentowania po jakimś czasie od publikacji wpisu, aż po instalację wtyczek zastępujących „standardowe komentowanie” i edytowanie plików motywu.

WordPress wyłączanie komentarzy na stronie – sposób 1

Zacznijmy od najprostszego i całkowicie odwracalnego rozwiązania – przejdźmy do Panelu Administracyjnego (Ustawienia → Dyskusja).

usuwanie-komentarzy-01

W Ustawienia dyskusji w sekcji Domyślne ustawienia nowych artykułów (na samej górze, pierwsze opcje) interesuje nas ostatnia opcja „Zezwól na komentowanie nowych artykułów”. Wystarczy ją odznaczyć, aby formularz komentarzy nie pojawiał się przy nowych wpisach (chodzi o nowo-opublikowane wpisy). Cóż… jeżeli nie ma formularza, to nie będzie komentarzy, więc ta opcja załatwia sprawę. Przynajmniej dla nowych wpisów.

Jednak teraz nasuwa się pewne pytanie, dlaczego opcja uwzględniana jest tylko przy nowych wpisach? Dlaczego po odznaczeniu tej opcji przy starych wpisach dalej widnieje formularz do wpisywania komentarzy i wszystkie dodane wcześniej komentarze?

Trzeba tutaj zwrócić uwagę na dopisek małymi literami „Te ustawienia mogą zostać nadpisane dla poszczególnych artykułów.” Co to oznacza w praktyce? Jak wskazuje nazwa sekcji Domyślne ustawienia nowych artykułów, chodzi tutaj o to, że wszystkie nowe wpisy publikowane są z zapisanymi w tej sekcji ustawieniami. Czyli, jeżeli teraz mamy ustawione, aby nie zezwalać na komentowanie nowych artykułów, i opublikujemy jakiś post na blogu, to formularz komentarzy się nie pokaże. Jeżeli przestawimy z powrotem opcję na zezwalanie na komentarze, to przy tym samym wpisie po odświeżeniu strony, formularza dalej tam nie będzie. Na opublikowane już wpisy ta opcja nie ma wpływu.

Teraz spokojnie, jak informuje wspomniany dopisek, opcję można nadpisać dla poszczególnych artykułów, czyli wystarczy wybrać artykuł i ustawić odpowiednie opcje. Aby to zrobić, wystarczy że:

W Panelu Administracyjnym, tym razem na stronie Wpisy, na liście opublikowanych postów szukamy takiej opcji:

usuwanie-komentarzy-02

Pod najnowszym wpisem, po najechaniu kursorem, wyświetlają się dodatkowe opcje. Wybieramy szybka edycja. Powinien pojawić się formularz z dodatkowymi opcjami, jak niżej:

usuwanie-komentarzy-03

Szukamy opcji Zezwól na komentarze, ustawiamy ją zgodnie z naszymi preferencjami. Tym sposobem możemy dla dowolnego wpisu ustawić, czy chcemy zezwolić na dodawanie komentarzy, czy też nie.

Oprócz tego, jeżeli mamy większą ilość wpisów, WordPress umożliwia masowe zablokowanie możliwości komentowania na co najmniej dwa sposoby.

W tym samym widoku Wpisów zaznaczamy kilka postów, z menu powyżej tabeli wybieramy opcję Edytuj, a następnie przycisk ’Zastosuj’. Poniżej pojawi się podobny do wcześniejszego formularza szybkiej edycji zestaw opcji, dzięki któremu możemy masowo edytować niektóre ustawienia wpisów. Tym razem szukamy rozwijanej listy podpisanej 'Komentarze’, z której wybieramy to, co nas interesuje, a następnie zatwierdzamy przyciskiem ’Zaktualizuj’ 🙂

usuwanie-komentarzy-04

Ten i poprzedni sposób działa również w przypadku stron. Na zakładce Strony wystarczy odszukać interesującą nas stronę, przejść do szybkiej edycji i określić, czy chcemy formularz czy nie.

Inny sposób na masowe zablokowanie formularza komentowania, to ustawienie opcji ’Automatycznego wyłączania możliwości komentowania…’ Opcja znajduje się na karcie Ustawienia → Dyskusja, zaznaczyłem ją na następnym obrazku:

usuwanie-komentarzy-05

O co tutaj chodzi? Po opublikowaniu wpisu można do niego dodawać komentarze tylko przez taką ilość dni jaka została podana, później zamiast formularza pojawia się komunikat „Możliwość komentowania jest wyłączona.” (zależy od motywu).

WordPress wyłączanie komentarzy na stronie – sposób 2

Gdzie jeszcze można znaleźć tę opcję? Oczywiście, oprócz szybkiej edycji, opcja znajdzie się również w 'normalnej’ edycji wpisu, albo podczas dodawania nowego wpisu/strony. Niestety domyślnie ta opcja jest ukryta. Gdzie szukać?

Przejdź do zwykłej edycji, albo zacznij tworzyć nowy wpis. Na górze po prawej stronie, tuż pod twoim awatarem znajduje się zakładka ’Opcje ekranu’ skrywająca kilka dodatkowych opcji. Kliknij, aby ją otworzyć…

usuwanie-komentarzy-06

Teraz wystarczy zaznaczyć opcję ’Dyskusja’.

Pod edytorem tekstu dodany został nowy panel z opcjami dyskusji. Ustawiamy według upodobań i aktualizujemy wpis. 🙂

usuwanie-komentarzy-07

WordPress usuwanie komentarzy

Wiesz już jak zablokować możliwość komentowania, ale co zrobić z już dodanymi komentarzami? Komentarze można bardzo łatwo skasować z bazy danych a tym samym z bloga – wystarczy przejść do zakładki Komentarze, gdzie  mamy taką możliwość. Dodatkowo możemy komentarze filtrować i przykładowo usunąć tylko te, które zostały dodane przy wybranych wpisach.

Inny bardzo szybki sposób na pozbycie się (wszystkich) komentarzy to zapytanie SQL do bazy danych. Taką kwerendę najprościej wywołać z poziomu PhpMyAdmin. Jak wygląda zapytanie, które kasuje wszystkie komentarze znajdujące się w bazie WordPress? Na przykład tak:

TRUNCATE TABLE `wp_comments`;

Gdzie wp_comments, to nazwa tabeli w której przechowywane są komentarze. Zapytanie czyści całkowicie tabelę i jest nieodwracalne.

Zabawa z MySQL nie musi ograniczać się tylko do takiego zapytania, możemy dodać więcej warunków i usuwać komentarze w bardziej zaawansowany sposób, ale to nie dzisiaj. 🙂

WordPress usuwanie możliwości komentowania na stronie i ukrywanie opublikowanych komentarzy

Jeszcze inny sposób, to edytowanie plików motywu. Przejrzałem kilka pierwszych wyników z Google i  ten sposób zawsze zakładał skasowanie zawartości pliku comments.php, oraz przechowywanie jego kopii lokalnie na komputerze (albo i nawet nie, nie każdy autor pamięta, że czasem niektórzy zmieniają zdanie i jednak chcą przywrócić opcję dodawania komentarzy). No i co w przypadku, gdy plik zgubimy, zapomnimy gdzie zapisaliśmy, czy cokolwiek innego? Ja wymyśliłem coś podobnego ale elastyczniejszego i w każdej chwili odwracalnego, bez zapisywania kopii na lokalnym komputerze.

W Panelu Administracyjnym, przechodzimy do zakładki Wygląd → Edytor. Zakładam, że nie chcemy komentarzy na stronach statycznych i przy pojedynczych wpisach. Otwieram w edytorze plik single.php. W kodzie pliku szukamy funkcji, która za zadanie ma wczytać plik motywu odpowiedzialny za formularz i wyświetlanie komentarzy na stronie, czyli comments_template(), o której już pisałem na tym blogu.

W każdym razie idea jest taka, aby ją zwyczajnie 'wykomentować’ – żeby nie zadziałała i nie wczytała pliku comments.php. Prawda, że proste? Jak dla mnie również logiczniejsze rozwiązanie, bo po co usuwać coś, co później może nam być potrzebne, skoro wystarczy tylko taka nieznaczna ingerencja, która również jest łatwo odwracalna.

W kodzie pliku szablonu szukam linijki:

<?php comments_template(); ?>

zamieniam na

<?php /*comments_template();*/ ?>

I sprawa jest załatwiona, bez żadnego kopiowania pliku na dysk komputera! Podobnie możemy zrobić w przypadku stron statycznych – edytujemy plik page.php w podobny sposób.

Pamiętaj o umieszczeniu prawidłowych znaczników komentarza przed i po wywołaniu funkcji (tak jak w przykładzie), w przeciwnym wypadku pojawi się błąd PHP, który spowoduje wyświetlenie białej strony zamiast wpisu/strony bloga.

I na tym kończymy! Myślę że temat usuwania możliwości komentowania w WordPressie został całkiem nieźle zgłębiony. 🙂 Pozdrawiam i do następnego.

Aktualizacja 2017-07-10

Wpis został zaktualizowany!

Wpis otagowano:

Komentarze do wpisu 15 komentarzy

Pomogłem? Dodaj coś od siebie! Skomentuj ten wpis:

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *