[WordPress小ネタ] 漏れ串からのコメント投稿を一旦承認待ちにする機能
一律に拒否してしまうと会社等のプロキシからも書き込めなくなってしまうので、一旦承認待ちとなるようにしています。
先にAkismet等がspamとしたものは尊重するようにし、そうならなかったコメントを判定対象とします。
プロキシ特有の環境変数は HTTP_X_FORWARDED_FOR や HTTP_VIA を見れば良いっぽいですが、必要に応じて足してみてください。
※textbox.jpでは使っていません。
テーマの functions.php に追記する内容
add_action( 'comment_post', 'proxy_comment_unapproved', 15, 1 ); function proxy_comment_unapproved( $comment_ID ) { if ( !empty($_SERVER['HTTP_X_FORWARDED_FOR']) || !empty($_SERVER['HTTP_VIA']) ) { $comment = get_comment( $comment_ID ); $comment_arr = array(); $comment_arr['comment_ID'] = $comment_ID; if ( $comment->comment_approved !== 'spam' ) { $comment_arr['comment_approved'] = 0; } wp_update_comment( $comment_arr ); } }
参考:Function Reference/wp update comment
もうちょっと頑張るならば、例えばTorの出口ノードリストを定期的に取得して保存しておき、投稿者のIPアドレスがそれに含まれるか判定する条件分岐を追加しても良いかもしれません。