map_meta_cap
フィルターの使用とは何ですか?このフィルターはどこにも文書化されていません。私はそれが何であるかについて不明確な考えを持っています
ユーザーの権限を投稿の操作にマップするために使用されます。
正確には何を意味するのでしょうか?可能であれば、正しい使用法のサンプルコード例をいくつか示してください。
map_meta_cap
フィルターの使用とは何ですか?このフィルターはどこにも文書化されていません。私はそれが何であるかについて不明確な考えを持っています
ユーザーの権限を投稿の操作にマップするために使用されます。
正確には何を意味するのでしょうか?可能であれば、正しい使用法のサンプルコード例をいくつか示してください。
回答:
このフィルタを使用すると、map_meta_cap()
機能を拡張できます。この関数はWP_User->has_cap()
、メタ機能を1つ以上のプリミティブ機能に変換するために呼び出されます。
たとえば、現在のユーザーが現在の投稿であるedit_post
メタ機能を編集できるかどうかを知りたいとします。これはいくつかの要因に依存します:ユーザーは投稿の著者ですか?投稿は既に公開されていますか?投稿は非公開としてマークされていますか?原始的な機能がありedit_posts
、edit_published_posts
、edit_others_posts
そしてedit_private_posts
:あなたはこれらを割り当てることができ、ユーザの役割。map_meta_cap()
投稿の作成者とステータスをチェックし、このユーザーが投稿の編集を許可するために必要なプリミティブ機能の正しいセットを返します(投稿が他の誰かによって書かれて公開された場合、戻るarray('edit_others_posts', 'edit_published_posts')
ため、ユーザーは両方の機能を持っている必要があります持続する)。
このメタ機能とプリミティブ機能の考え方を追加すると、基本WP_User
クラスを投稿や投稿ステータスなどの知識から解放し、機能に集中することができます。実際の変換は外部関数で行われmap_meta_cap()
ます。
フィルターをmap_meta_cap
使用すると、カスタム投稿を使用する場合などに機能を拡張できます。のcapabilities
引数を設定すると基本的なサポートが提供されると思いますregister_post_type
が、Justin TadlockとProspressプラグインによる前述の記事は、この完全な例を提供します。ただし、必要に応じて、機能システムを完全に裏返すようにカスタマイズできます。
このフィルターを使用して、カスタム投稿タイプのメタ機能をマッピングできます。この記事には優れたコードサンプルがあります。
http://justintadlock.com/archives/2010/07/10/meta-capabilities-for-custom-post-types
これは関数のフィルターですmap_meta_cap()
。説明から、この関数は一般的な機能(can_do_stuff)をより具体的に(投稿の作者の場合can_do_this_stuffとcan_do_that_stuff_also)に渡し、必要に応じてさまざまな条件をチェックしているようです。
残念ながら、Codexには文書化されておらず、WP 3.0.1ソースではこの関数の単一の直接呼び出しを見つけることができません。
この機能の使用に遭遇したか、何かのために使用したいですか?使用されていないようだから、おそらくこの機能にはもっと新しくてより良い方法があると思う。