EmDashのblogテンプレートにはコメント機能が内蔵されています。
このコメント機能は以下のように管理画面で管理できます。
コメントは最初保留中となり、管理画面で承認して初めて表示されます。
しかし、承認を経ずにコメントを表示したい場合もあります。
これはDBに保存されている設定値を変更することで実現可能です。
今回確認した posts collection では、コメント関連の設定は _emdash_collections テーブルに保存されていました。
コメントに関連するカラムは以下の4つです。
comments_enabled
comments_moderation
comments_closed_after_days
comments_auto_approve_users 現在の posts collection の設定は次のようになっていました。
comments_enabled = 1
comments_moderation = first_time
comments_closed_after_days = 90
comments_auto_approve_users = 1 comments_moderation は、新しく投稿されたコメントをどのように承認するかを決める設定です。
EmDashでは、次の値が使えます。
- all: すべてのコメントを承認待ちにする
- first_time: 初回コメントのみ承認待ちにする
- none: モデレーションせず自動承認する
デフォルトでは first_time になっているため、初めてコメントするユーザーのコメントは pending になります。
モデレーションを無効化する
コメントを投稿後すぐに公開したい場合は、comments_moderation を none に変更します。
Cloudflare D1 を使っている場合は、Wrangler から次の SQL を実行します。
npx wrangler d1 execute <your-site> --remote --command "UPDATE _emdash_collections SET comments_moderation = 'none' WHERE slug = 'posts';" これで posts collection のコメントモデレーションが無効化されます。
すでに pending のコメントについて
この設定は、変更後に投稿されるコメントに適用されます。
すでに pending になっているコメントは、自動では approved になりません。既存の承認待ちコメントを公開したい場合は、管理画面から approve するか、DB上で status を変更する必要があります。
まとめ
EmDashでコメントモデレーションを無効化するには、対象 collection の comments_moderation を none に変更します。
first_time の場合は初回コメントが承認待ちになり、none にすると新規コメントが自動承認されます。
1 Comment