OKこれを攻撃するための最善の方法を探しています。
私はPHPとWordPressのカスタムメタフィールドを使ってカスタム投稿タイプを作ることにとても満足しています。
これが私がやっているところです。
私は以下について助けが必要です。
理想的には、これはすべてwp-adminから行われることを望みますが、私は自分がしている有限の制御を得るためにこれのためのフロントエンドを構築する必要があるかもしれないと思います。
どんな入力でも大歓迎です。
敬具
Justin Tadlockのプラグイン " Members "を使用してください。カスタムロールを追加するだけでなく、新しいロールを作成したり既存のロールを編集したりすることもできます。あなたがしなければならないだろうすべての仕事は数回のクリックに降ろすことができます。
ZaMooseの回答に対するあなたのコメントで、あなたは「自分自身で機能を書くことを望んでいるので、私はすべてを完全に制御できる」と言ったことを私は知っています。それはオープンソースソフトウェアのすべての点を見逃しています。 Justin Tadlockが彼のプラグインをリリースしたので、あなたはそれを正確に使うことができるのであなたはすべてを完全にコントロールすることができます。
もしあなたが本当に 本当に 自分自身の時間の何百時間もの時間を無駄にしてホイールを再発明したいのであれば、私はあなたを止めることはできません。あなたが欲しいもの。
あなたが望むことをするプラグインを手に入れたら、それが 'post'、 'page'、または他の何か以外を言うようにあなたの投稿タイプ登録関数の'map_meta_cap'
フラグをtrue
と'capability_type'
フラグに変える必要があるでしょう「予約済み」タイプ。次に、投稿の代わりに自分の機能タイプを使用して、投稿に関連するすべての機能(edit_posts
、edit_others_posts
、publish_posts
など)を複製します。必ずこれらすべての権限を管理者に割り当て(これを行うまで投稿の種類を確認することはできません)、自分の投稿の種類に対する '投稿者'の役割の機能を真似て自分の役割を作成します。
例えば、あなたの能力タイプがfoobars
であったとしたら、 '店主'にedit_foobars
、delete_foobars
、そしてread
の能力を与えたいと思うでしょう。そのようにして彼らは彼ら自身のドラフトfoobarsを作成し、それらのドラフトを削除することができますが、彼らはpublish_foobars
能力を持っていないので、彼らは承認のためにそれらを提出しなければなりません。彼らはedit_published_foobars
を持っていないので、承認されたfoobarへのすべての修正は承認されなければなりません。
登録投稿タイプには「capabilities」という名前のパラメーターがあるので、例えば
'capability' => 'organize_shop',
http://codex.wordpress.org/Function_Reference/register_post_type
新しいユーザー/ロール/機能を作成するには、簡単な例としてadd_role、add_capを使用します。
// Add the role to WordPress list of roles
// Then add the capability 'organize_shop' to the 'shop_owner' role
$role = add_role( 'shop_owner', 'Shop Owner', ['edit_posts' => true]));
$role->add_cap( 'organize_shop' );
// If 'shop_owner' already exists make `$wp_roles` visible then
// add the capability 'organize_shop' to the 'Show Owner' role
public $wp_roles;
$wp_roles->add_cap( 'shop_owner', 'organize_shop' );
実際のコンテンツ送信を処理するために、 Gravity Forms または TDO Mini Forms を検討することを検討しましたか。それらはそれぞれ、ユーザーが投稿したコンテンツを巧みに処理するための道を切り開くための機能を持っています。
"Advance Access Manager"と呼ばれるプラグインをインストールすることによってこれを達成することができる方法をより簡単で効率的な方法で、あなたは機能を書く必要はありませんあなたが望むもののほとんどはこのプラグインによって達成することができます。