Role機能とMeta機能の違いは何ですか。map_meta_cap()フィルターを使用する場合


8

次のことについて非常に混乱しています。

  1. ロール機能とメタ機能の違い
  2. メタ機能とプリミティブ機能の違い
  3. map_meta_cap()フィルターを使用するタイミング。

WPの既存の機能またはカスタムの機能をWPの既存の役割またはカスタムの役割に追加し、そのままで機能することを期待して、ほとんどの場合は機能しない場合を想定して、多くの状況がありました。

人々はmap_meta_cap()フィルターについて言及しているようですが、フィルターが実際に何をするのか、いつフィルターを使用しなければならないのか、機能がすぐに機能するのかについての良い説明はありません。

私はそれが理にかなっていると思います。

私はこれをよく説明する説明やリソースへのリンクに非常に感謝します。

ありがとう、ダーシャ



Justin Tadlockによるこの投稿は、最終的に私が最も恩恵を受けた情報源でした。
ジャスティンベル

私の回答は役に立ちましたか?!参考になりましたら、同意して
賛成投票し

回答:


3

ロール機能とメタ機能の違い

それは、だけでなく、と比較RoleするCapabilitiesだけMeta capabilitiesでなく、簡単な答えとして尋ねることをお勧めします。

Aは、Role役割を割り当てられたユーザーが実行を許可されている一連のタスクを定義します。

Capabilities に割り当てられています Roles

メタ機能とプリミティブ機能の違いは?

メタ機能

edit_postread_postとがdelete_postあると言われているMeta Capabilities、彼らは文脈に依存しているため、例えばポストが編集されている/読み出し/削除。edit_post誰かがあなたに尋ねるので、あなたが言うならばそれは意味がありません:誰かがあなたに尋ねます:彼女/彼はどの投稿を編集できますか?

プリミティブ機能

これらはedit_posts、コンテキストに依存しないような機能であり、ユーザーに固有のものです。edit_posts能力に余裕がある人は、投稿を編集できます。

いつmap_meta_cap()フィルターを使用するのですか?

を使用して新しい投稿タイプを登録register_post_type する場合、使用するオプションがあります。capability_typeこれには、どのような機能と似ていますか?そこでは単にと言うかもしれませんpost。つまり、あなたの機能はpost投稿タイプの機能に似ています。

Buより多くのカスタマイズが必要な場合は、bookまたはarray( 'book', 'books' )(同じ)たとえば、次の機能を使用できます。

capabilities' => array(
  'edit_post'          => 'edit_book', 
  'read_post'          => 'read_book', 
  'delete_post'        => 'delete_book', 
  'edit_posts'         => 'edit_books', 
  'edit_others_posts'  => 'edit_others_books', 
  'publish_posts'      => 'publish_books',       
  'read_private_posts' => 'read_private_books', 
  'create_posts'       => 'edit_books', 
)

capability_typearray( 'story'、 'stories')などの配列として使用する場合、最初の要素は単数機能に使用され、2番目の配列要素は複数機能に使用されます。

このmap_meta_cap()関数はWP_User->has_cap()、メタ機能を1つ以上のプリミティブ機能に変換するために呼び出されます。

にはpost_type登録時に同じことを行うmap_meta_capパラメータもありますregister_post_type


...If somebody has edit_posts capabality, she/he can edit posts...しかし、どの/誰の投稿ですか?
T.Todua
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.