スパムコメント撃退!WPでコメント表示を一括でオフにする方法

5月 29, 2017

spam
Photo:spam By undefined
どうも、こんにちは
スパム撃退に向けて画像認証を入れたりしましたがまた増えてきました。
そこで今度はコメント欄を非表示にしてやる!という最終手段に出ようと思います。
しかし、記事がたくさんあるとコメント欄非表示を手動で対応するのは大変なので
一括で非表示にする方法を書きたいと思います。
画像認証導入の記事

[WP]スパムコメント防止に画像認証を入れてみたら効果絶大だった | いいい8

DB-Managerプラグインを使おうと思うので事前にインストールしておいてください。
詳しくはこちらのブログがオススメです。
WordPressのデータベース用バックアッププラグイン「WP-DBManager」 | SaaSes Staff Blog

自動でコメント欄を閉じる設定をしてみる

WordPressの機能で設定▶ディスカッションから記事公開してから何日以前のコメントを自動的に閉じるという機能があります。
この機能を利用して最新のコメント以外はすべて自動で閉じてしまおうと思います。
チェックをオンにして日数を入れるだけでとても簡単です。
コメント日数の変更

SQLを利用してすべてのコメントをオフ

そもそもSQLって何?という方はWikipediaを参照してもらえればわかるのですが、WordPressでは、MySQLというデータベースを利用してすべてのコンテンツデータを管理しています。(ユーザ情報や色々な設定など含む、画像は含まない)そこでその管理データに直接命令文を実行することで過去の投稿についても一括で設定変更をしてしまおうという作戦です。

実行方法

今回は実行するにあたりDB-ManagerプラグインのRunSQL機能を利用したいと思います。
通常はサーバにログインして直接実行したり、PHPMyAdminのようなツールから実行しますが簡易的なSQLを実行する際に僕はDB-Managerを使うことが多いです。
▼RunSQL画面
RunSQLQuery
▼実行結果
RUNSQLQuery_Excute

実際に実行するSLQ文

では実際にコメント欄をオフにするためのいくつかのSQLを記載したいと思います。
コメント、ピンバック、トラックバックをすべて無効にしたい場合
[sourcecode]
update wp1_posts
set comment_status = ‘closed’, ping_status = ‘closed’
[/sourcecode]
投稿のコメントだけを無効にしたい場合、ピンバック、トラックバックは有効
[sourcecode]
update wp1_posts
set comment_status = ‘closed’
[/sourcecode]
SQLはコピーしてそのままDB-ManagerのRunSQL画面に貼り付けて実行すれば動きます。
過去記事も含めてコメントを非表示にしたい場合は利用してみてください。

※SQLの実行は直接データを修正してしまうため不測の事態が起きる可能性もあります。
 実行前にDB-Managerにてバックアップの取得を実施しておきましょう。


今回参考にしたサイトはこちらです
一撃必殺! WordPressで過去の投稿のコメントを一括で停止する方法 | kosukety blog

コメントを有効化・無効化する — サポート — WordPress.com

まとめてみると

コメント欄を閉じてしまうという最終手段に今回は出ましたがもしコメントしたいというからとの連絡を断ってしまったということになります。
Twitterから連絡できるようにする、Facebookから連絡できるようにするなど別の方法で読者とコミュニュケーションを図る方法を考えなければならないなと思っておりますが検索での流入く、コメントなどがつきにくいこのブログはしばらくコメント欄閉鎖で行きたいと思います。


こんな記事のリクエストからディズニーランドに一緒に遊びに行きませんか?というお誘い、写真を一緒に撮りに行きましょうというお誘い、誤字・脱字をはじめ全てのお問い合わせは、こちらへお願いします。
定期的な購読はRSSにご登録お願いします。
掲載している写真の個人的利用、保存はOKですが、複製、再利用、営利目的の利用は禁止です。


TOP