ブログBlog

WordPressのコメントの重複規制をカスタマイズ

所沢でWebサイト制作や欧州輸入品販売を行っているRishunTradingです。
Wordpressで、ヤフオクのような「オークションサイト」を制作するに辺り、Wordpressの【コメント】機能を流用して、入札機能を実装しました。
ただ、Wordpressの【コメント】機能は、標準でスパム対策として「重複規制」がかかっております。そのため、連続で入札すると(同じコメントを投稿すると)、「重複しているコメントが見つかりました。同じコメントをすでに投稿しているようです。」と表示されてしまいます。

オークションサイト」を制作するにあたっては、コメント機能(入札)の「重複規制」を許容する必要があり、一方でスパムも防ぎたいため、連続した「重複コメント」は許可しないが、しばらく経ってからの「重複コメント」は許容する。という形での実装が必要でした。
また、「重複コメント」を検出した場合の文言も、標準の文言ではなく、「連続の入札は禁止されています。しばらく経ってから入札して下さい。」という文言に変更する必要がありました。

そのため、今回は、連続した「重複コメント」は許可しないが、しばらく経って(今回は10分)からの「重複コメント」は許容するといったオリジナルの「重複規制」の実装方法と、「重複コメント」検出時の文言変更方法についてご紹介させて頂こうかと思います。

 

 

1.オリジナルの重複規制作成に利用できる「duplicate_comment_id」フィルター

入力されたコメントが重複しているかどうかは、「duplicate_comment_id」フィルターを利用することができます。
Wordpressの「comment.php」の中を見るとわかりますが、「duplicate_comment_id」フィルターの返り値($dupe_id)に「コメントID」が入っていると、重複コメントの確認処理に入っていきますので、直前の「duplicate_comment_id」フィルターにフックをかけて、必要な確認処理を実装し、問題なければ、「$dupe_id」をNLLにして返却してあげれば、重複コメントの確認処理に入っていきません。

 

comment.php in WordPress 6.0(688行目~718行目)

 

そこで、この「duplicate_comment_id」フィルターフックをかけて、オリジナルの重複規制を作成すれば良いわけです。
また、重複コメント検出時のエラーメッセージの内容も、本ソースを見るとわかりますが、20行目辺りの「comment_duplicate_message」フィルターフックをかければ、変更できる事がわかります。

2.「duplicate_comment_id」にフィルターフックをかけて、オリジナルの重複規制を作成

今回は、1度入札した場合には、10分は待たせる仕組みを設けるために、重複規制間隔は10分間としました。
今回制作したオリジナルの重複規制では、入札した時間から10分経過していない場合には、$dupe_idを返却し、10分以上経過している場合には、NULLを返却する事で、1度入札してから10分間は重複規制をかけ、10分経過後は、重複規制を外す事ができます。

functions.php

 

3.「重複コメント」検出時の文言変更

1.で記載した通り、「comment_duplicate_message」フィルターフックをかけてエラーメッセージを返却してあげれば完了です。

 

以上、皆さまのお役に立てれば幸いです。

WEB DESIGN

RishunTradingでは、日本にはないコンセプトや高いデザイン性をもったヨーロッパ製品の輸入販売、及び、Webサイト制作事業などをおこなっております。

「全てお任せ!ホームページ制作」は、ドメイン取得からサーバー設定、レスポンシブルデザイン(スマホ、タブレット対応)、SEO対策がすべて含まれたお得なホームページを制作するサービス商品です。

運用開始後に「Webサイト運用管理サービス(保守)」と組み合わせて購入しますと、メンテナンス、更新も含めてすべて弊社で実施しますので、お客様は安心して本業に集中する事ができます。

しかもなんと、「全てお任せ!ホームページ制作」は、¥100,000!で提供しております。

本業が忙しい中小企業様に大変ご好評を頂いている商品です。

  • 独自ドメイン取得

    独自ドメイン取得

  • サーバー開設&設定

    サーバー開設&設定

  • レイアウト設計

    レイアウト設計

  • レスポンシブルデザイン

    レスポンシブルデザイン
    (*1)

  • 検索エンジン最適化(SEO対策)

    検索エンジン最適化
    (SEO対策)

  • 場所Maps

    場所Maps

  • お問い合わせフォーム

    お問い合わせフォーム

  • SSL化

    SSL化

  • 各種SNS連携

    各種SNS連携

  • 運用マニュアル

    運用マニュアル

≫詳細はこちら

MENU