数ヶ月前にbbPressのプラグインを使用して秘密コメントを付ける方法について説明したことがあります(ここ を参照)。 しかし、その方法は、そのプラグインが長い間更新していなくてテーマに沿ってはならない場合が多いでしょう。 だから、他の方法がないかと考えている途中 WordPress Comments Fieldsというプラグインを発見した。
※ アップデート:ここで言及されたプラグインは、長い間更新されず放置されたが、再び更新されているようです。
Private Commentというプラグインを修正して秘密コメントプラグインを作成しました。
WordPressに秘密コメントをタルジャII
このプラグインは、 WordPress コメントのユーザーフィールドを追加することができる機能を提供します。 たまにうまくいかないテーマがあるが、大体的によくなるようです。 (3つのテーマでテストしたところ、2つはされて一つは、よくないね。)そして、JetPackコメント機能は無効にする必要があります。
このプラグインを使用してユーザーフィールドを追加すると、次のようにユーザーのフィールドが追加されます。
上の図では、非公開文を指定するためのフィールドを追加したが、他の情報(例えば、:地域情報)を受信したい場合は、入力フィールドを追加することができます。
上記のように追加して、テストにコメントを入力してみると:
図のように追加されたフィールドの内容が下に表示されます。 (図ではボックスに表示された部分は、プラグインのソースを変更して、簡単に取り外しが可能であることです。)
これで問題は、秘密を指定するためにデータベースに追加された「カスタムフィールド」の値を取得することです。 データベースを調べると、次のように "commentmeta"テーブルに保存されていることがわかります。
このコメントメタテーブルの値を取得し、値が「公開」の場合は通常表示されるようにし、「秘密」の場合は、管理者とコメントの作成者だけが表示できるようにコードを作成します。 データベースの値を取得することについて少し迷いましたが、知っていると非常に簡単です。 この作業のために get comment meta関数を使用します。 この関数の使用法は次のとおりです:
そしてコメントのループに関連するファイルや関数を探して適切な条件付き書式を追加すると、必要な機能を実装することができます。 テーマの関数を探してみるとcomment書式を指定する関数があるでしょう。 その関数内の適切な位置に追加させています。 上の図のようにmeta_keyにsecretidを追加した場合は、次のような条件構造を使用して非公開文かどうかをチェックすることができます。
comment_ID; $ comment_meta_value = get_comment_meta($comment_ID_this, 'secretid', true); if($comment_meta_value == 'シークレット') { // シークレット指定時のコード } else { // 公開時のコード } ?>
非公開文指定コードを作成することは容易に可能と考えます。 (公開時のコードは、単に現在のコードを使用すると、取得するか?)以上で WordPressユーザー定義のコメントフィールドを追加して秘密文で指定する方法についてのアイデアを見てみました。
秘密のコメントですか?
次の記事で紹介するPrivate Commentプラグインをインストールしてテストしてください。
https://www.thewordcracker.com/intermediate/%EC%9B%8C%EB%93%9C%ED%94%84%EB%A0%88%EC%8A%A4-%EB%B9%84%EB%B0%80%EB%8C%93%EA%B8%80private-comment-%ED%94%8C%EB%9F%AC%EA%B7%B8%EC%9D%B8/
ちなみに、この機能を実装したコードを次の記事で確認することができます。
http://wpquestions.com/Comment_privacy/10468
正常に動作しているかどうかは分かりません。 期間が少し過ぎのために正常に動作しない場合があります。