Pod wpisem dotyczącym sposobu na masowe kasowanie komentarzy w WordPressie (np. SPAMu) pojawiło się pytanie, czy znam jakiś sposób na skuteczne zablokowanie/wyłączenie dodawania komentarzy – wydawało mi się, że już kiedyś o tym pisałem, ale wygląda na to, że tylko mi się tak wydawało, bo wyszukiwarka nic takiego nie znalazła (być może temat poruszałem jakoś niedawno na jednym ze szkoleń, i stąd moje mylne wrażenie w tym temacie).

Wyłączanie komentarzy w WordPressie

Na Webinsider.pl komentarze oczywiście są włączone (ale są też całkiem skutecznie filtrowane pod względem SPAMu, którego często jest ponad setkę dziennie), to są sytuacje – a właściwie to strony, jak np. strona firmowa bez bloga/aktualności, gdzie nie zależy nam na komentarzach – że można śmiało je wyłączyć.

W tym celu najprościej zacząć od standardowych ustawień WordPressa, dotyczących dyskusji:

  • WP-Admin: Ustawienia -> Dyskusja: Zezwól na komentowanie nowych artykułów

Musicie mieć jednak świadomość tego, że jeśli wcześniej już jakieś strony lub wpisy utworzyliście, to musicie je przejrzeć i ręcznie wyłączyć komentarze dla nich (indywidualnie dla każdego wpisu, każdej strony), gdyż to ustawienie nie działa wstecz, zwłaszcza że nadal możecie dla poszczególnej strony (lub wpisu) włączyć bądź wyłączyć komentarze z poziomu edycji strony/wpisu:

Ew. by nikogo nie kusiło przez przypadek włączyć komentarzy pod jakąś stroną lub wpisem możecie za pomocą kilku linijek kodu wyłączyć opcje dyskusji dla nowych stron/wpisów:

function webinsider_wp_no_comment_support() {
    remove_post_type_support( 'post', 'comments' );
    remove_post_type_support( 'page', 'comments' );
}
add_action( 'init', 'webinsider_wp_no_comment_support' );

Z tym, że tak jak wyłączenie w ustawieniach, tak i ta metoda nie działa dla już opublikowanych stron/wpisów.

By to skorygować można by pewnie posłużyć się np. jakimś poleceniem w bazie danych, ale jest prostsza i szybsza metoda – gdy już wyłączycie komentarze dla nowych postów (w opcjach, bądź za pomocą podanego powyżej kodu) wystarczy w ustawieniach dyskusji zaznaczyć jedną opcję:

  • WP-Admin: Ustawienia -> Dyskusja: Automatycznie wyłączaj możliwość komentowania artykułów starszych niż [1] dni

Lub gdy na naszej stronie nie ma otwartej rejestracji:

  • WP-Admin: Ustawienia -> Dyskusja: Użytkownicy muszą być zarejestrowani i zalogowani, aby móc komentować

Warto przy tej okazji również przyjrzeć się opcją dotyczącym trackbacków i pingbacków, jak i XML-RPC, bo często też te elementy są wykorzystywane do SPAMowania – czasem nasz, czasem innych za pomocą naszej strony…

(!) Zgłoś błąd na stronie