web-dev-qa-db-ja.com

投稿者はなぜ投稿に対するコメントを承認することができますか。特権を取り消すには?

私は、管理者/編集者の役割だけがコメントを承認できるという印象を受けましたが、私たちの著者は自分の投稿でも同様に承認することができます。著者が自分の投稿に対するコメントを承認する機能を無効にしたいです。

ダッシュボードの設定>ディスカッション>コメントが表示される前 - 選択:コメントは手動で承認する必要があります
未選択:コメント投稿者は以前に承認されたコメントを持っている必要があります

1
Commandrea

コメントステータスを設定する機能は、 "edit_comment"機能と結び付けられています。これは、WordPressのメタ機能です。これは "edit_post"ケーパビリティに対応しています。これは、投稿が公開されているかどうかによって異なります。

結局、投稿が公開された場合、edit_commentはpost_authorの場合は "edit_published_posts"へ、マッピングの投稿者でない人の場合は "edit_others_posts"へのマッピングを終了します。つまり、Authorとマークされた人は自分の投稿に対するコメントをモデレートすることができますが、 "moderate_comments"機能を持つ人のように全面的にコメントすることはできません。

これは(すべてのメタキャップがそうであるように)ハードコードされているので、それをオフにするために追加のフィルタを追加する必要があるでしょう。ロールマネージャプラグインで調整できるものではありません。

もっと簡単な方法はそれらの人々を作者ではなく貢献者にすることでしょう。作成者はすでに自分自身で "publish_posts"を作成し、追加の承認なしにサイトにコンテンツを追加することができるため、コンテンツを追加してコメントを承認できるという意味で信頼できるユーザーになることが期待されます。

もう1つの方法は、作者から "edit_published_posts"を削除することですが、これはまた、一度公開されたコンテンツを編集することを禁止します。繰り返しますが、これは理にかなっています、彼らがコメントを示すことを信頼することができないならば、彼らはすでに公開されたコンテンツを変更することも信頼するべきではありません。

それはすべて本当に信頼とあなたが人々にできることを許したいことにかかっています。セキュリティの観点から見ると、システムは現在と同じように一貫性があります。

2
Otto

ロールから機能を完全に削除できます。 PUT_ROLE_HEREをあなたの役割に置き換えることができます。

$edit_role = get_role(PUT_ROLE_HERE);
$edit_role->remove_capability('moderate_comments');

@SierraTRが言うように、何らかの役割プラグインを持っていない限り、管理者と編集者だけが適度なコメントにアクセスできます。

0
Howdy_McGee

Codex:Roles_and_Capabilities によれば、管理者ロールと編集者ロールの両方がコメントを管理することができます。

そのCodexページの下部にあるResourcesの下には、(Administrator以外の)ユーザーロールの機能を簡単に変更するためのプラグインがいくつかリストされており、特定のロールの機能を変更するために使用できる関数への参照があります。

0
SierraTR