web-dev-qa-db-ja.com

編集者および管理者専用のプラグイン機能

私は実際にWordpressプラグインを実際に書いたことがないので、これが私の最初の亀裂です。

基本的に、このプラグインは投稿投稿者がレビューのために投稿を投稿しなければならないマルチ投稿者ブログのためのものです。編集者/管理者は、入ってきて投稿を承認し、公開/スケジュールする必要があります。これはすべてうまくいき、Wordpressに組み込まれています。

このプラグインを使用すると、投稿を改善するための提案ではなく、編集者/管理者が投稿のコンテンツにコメントを残すことができます。これは、編集者が将来の日時に公開するように投稿をスケジュールするときに特に便利です。

編集者はコメントを残すことができ、投稿が公開されると、編集者のコメントも自動的に公開されます。

私が理解することができない最後の事はどのように編集者と管理者役割のためにだけこのプラグインをアクティブにするかです。私は、投稿が公開される前に投稿投稿者がコメントを残すことができないようにしたいです。

基本的に、私はすでに投稿を読んでいる投稿編集者に、コメントを残すために後で戻ってくることを要求したくありません。

編集する

完全なコードのペーストビン - http://Pastebin.com/yG9uqJ7q

2
Travis Pflanz

正しい方向に私を送ってくれたericissocialに感謝します。

私は一緒に行くことにしました:

if(current_user_can( 'edit_others_posts' )) {
    //add meta box
}

このようにして、edit_others_postsを持つ任意のカスタムユーザーロールは関数を使用できます。

0
Travis Pflanz

メタボックスをロードするときにユーザーロールを確認できます。

//get user
$user_id = get_current_user_id();
$user = new WP_User($user_id);
//check user role
if($user->roles[0] == 'administrator' || $user->roles[0] == 'editor') {
     //add your metabox here
}

メタボックスは編集者とユーザーの投稿にのみ追加されるので、投稿が保存されるたびに実行されないように、保存機能を同じような条件でラップすることをお勧めします。

EDIT:他のサイトでこれを使用する、または他のユーザーが使用できるようにリリースする予定の場合は、オプションページを設定することをお勧めします。このプラグインを使用できるユーザーロールを現在のユーザーロールのリストから選択できるように、プラグイン用に設定します。

このようにして、カスタムユーザーロールも考慮に入れることができます。

2
Eric Allen