web-dev-qa-db-ja.com

ログインしているユーザーに基づいて管理投稿をカスタマイズする方法

10〜15人の写真家がコンテンツを投稿するサイトを構築しています。共通のブログがあるでしょう+各管理者は管理するために彼ら自身のポートフォリオを持っています。 「ポートフォリオギャラリー」と「ポートフォリオページ」は2つのカスタムタイプであり、それらはカスタム分類法である「アーティスト」を使用して分類されています。

すべての管理者にお願いします。

  1. すべてのブログ記事を閲覧できるようにする
  2. ブログに投稿できる
  3. 新しい "ポートフォリオギャラリー"と "ポートフォリオページ"を追加して、それらの名前と同じ値を持つ "アーティスト"分類法で自動的にタグ付けすることができます(つまり、John Smithはポートフォリオページとギャラリーで自動的に*タグ付きのみ作成できます)アーティスト= "John Smith" *)
  4. 自分のポートフォリオページとギャラリーのみを表示できます(つまり、John Smithは* Artist = "John Smith" *のマークが付いたポートフォリオページとギャラリーのみを表示します)。

最後に、サイト上のすべての投稿にアクセスできる「スーパー管理者」をいくつか用意したいと思います。

このようなものを構築する方法について何かアイデアはありますか?それでも可能ですか?


EDIT私は、役割と機能についてもう少し詳しく読み、Wordpressが既に制限なしで機能をサポートしていることに気付きました。他の人の投稿を編集できないようにします。私がしなければならなかったのは、すべてのユーザーをEditorsではなくAuthorsに変更することだけでした。

上記のリストの要約#1、#2、#4は解決されています。私はまだ#3をsave_postを使って動作させる必要があります。

短:はい、できます。

すべてのブログ記事を閲覧できるようにする

デフォルトの編集者ロールは、すべての投稿を見ることを管理できます。

ブログに投稿できる

この場合も、デフォルトの編集者ロールですべての投稿を確認できます。

新しい "ポートフォリオギャラリー"と "ポートフォリオページ"を追加して、それらの名前と同じ値を持つ "アーティスト"分類法で自動的にタグ付けすることができます(つまり、John Smith)。

そのためには、save_postフックを使用して、分類としてユーザー名を自動的に追加することができます。

自分に属するポートフォリオページとギャラリーのみを表示できます(つまり、John SmithはArtist = "John Smith"とマークされているポートフォリオページとギャラリーのみを表示します)。

投稿タイプを登録するときには、その投稿タイプに対して ケーパビリティ を定義することができます。また、edit_others_postsをfalseに定義する必要があります。

最後に、サイト上のすべての投稿にアクセスできる「スーパー管理者」をいくつか用意したいと思います。

この場合、デフォルトの管理者ロールがあなたの友人です。基本的にあなたの問題の大部分は 役割と能力 にあります

お役に立てれば

3
Bainternet

私がそのサイトを構築するのであれば、これは私が "彼らに属するポートフォリオページとギャラリーを見る"ためにすることです:

1.)新しいページテンプレートを作成します。あなたのthemesディレクトリの中にtemplate-portfolio.phpと言うと、これは次のようになります。

<?php
/*
Template Name: Portfolio
*/
if(is_user_logged_in() && current_user_can('manage_options'))  //ensure that it is an admin, as per requirements
{
   global $current_user;
   get_currentuserinfo(); //information shall be stored in $current_user
   // echo 'User ID: ' . $current_user->ID . "\n";

   query_posts(array('Artists' => $current_user->display_name));

    //do the loop here.

}
else
{
  wp_redirect(get_bloginfo('url')); //go to home page if not logged in or if not admin
}
?>

2.)Wordpressでページを作成し、Portfolioをページテンプレートとして割り当てます。

3.)ページプレビューを使用してページを表示します。それが機能する場合は、後ろに軽くたたきます。

あなたはあなたの他の懸念のためにここで流れの変形をすることができます。

2
Ardee Aram