今まで自動承認されていたコメントが、なぜか承認必須になったと問い合わせが来た。
何かをやった覚えは無いが、何もやってないと言い切れる程でも無かったので、ちょっと調べてみた。
設定で対応出来る場合
「wordpress コメント 自動承認」とか「wordpress comment automatic approval」とかで検索すると、管理画面の「設定」→「ディスカッション」にある「コメント表示条件」のチェックを全て外せばOKと書いてある記事が沢山見つかる。
しかし、今回のケースでは上のキャプチャのようにチェックは外れていた。
というか、ここを触った記憶も無し。
functions.phpで対応する
仕方ないので、何かフィルターが無いかと思ったら「pre_comment_approved」というフィルターがあった。
pre comment approved – WordPress Codex
function my__comment_filter($approved, $commentdata) {
if ($approved !== 'spam') {
return 1;
}
return $approved;
}
add_filter('pre_comment_approved', 'my_comment_filter', 1, 2);
こんな感じで、スパム判定されたコメント以外は全て1(承認)を返すようにしたら自動承認になった。
まとめ
wordpressは、ソースを眺めると大抵フィルターとかアクションが設定されていたりするので、困ったらググるか、ソースを眺めてみると良い事が見つかる気がする。
コメント