Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
WPBカップ
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

WordPressでユーザー別にメディアアップローダーを簡単に整理する方法

複数著者のブログを長年運営してきた結果、ユーザーごとにメディアアップロードを整理することが重要になる状況があることに気づきました。私たちの経験では、投稿者のチームが大きくなればなるほど、メディア管理が混乱する可能性があります。

作者がお互いの画像を誤って修正または削除してしまい、投稿が壊れてしまうというシナリオに遭遇しました。ある例では、クリックのミスで重要なビジュアルが削除され、重要な記事の公開が遅れてしまいました。

これを防ぐには、WordPressでユーザーごとにメディアのアップロードを制限または整理することができます。この機能はデフォルトでは提供されていないため、私たちが推奨する方法をご紹介します。

How to organize media uploads by users in WordPress

メディアアップローダーへの投稿者のアクセスを制限する理由とは?

マルチオーサーのWordPressブログの場合、投稿者がさまざまな画像をアップロードする可能性があります。そのため、投稿者が正しい画像を見つけるのが難しくなったり、他の人のメディアファイルを誤って削除したり編集したりする可能性があります。

これは、生産性の低下、サイト管理者やエディターにとっての余分な作業の多さ、複雑な編集ワークフローなど、さまざまな問題を引き起こす可能性がある。

この無制限のアクセスは、プライバシーの問題にもなり得ます。例えば、あなたが新製品やブログ投稿のアイデアに取り組んでいる場合、あなたが公表する前に、他の投稿者がメディアライブラリの機密画像を見るかもしれません。

WordPressの会員制サイトをお持ちの場合、寄稿者はメディアライブラリからプレミアムメディアファイルにアクセスすることもできます。

ということで、WordPressの管理エリアでメディアアップロードを見ることができる人を制限する方法を見てみましょう。

WPCodeでユーザーごとにメディアアップロードを整理する方法

当時、編集権限のないユーザーがWordPressのメディアライブラリにある他のユーザーのファイルにアクセスできないようにするプラグインを見つけました。このプラグインは使いやすかったのですが、現在は更新されていません。

さらに、edit_others_postsパーミッションを持たないユーザー(サイト管理者と編集者)が他のユーザーのメディアファイルにアクセスするのを止めることができるだけなので、このプラグインはかなり制限されます。

あなたがサイト管理者である場合、(あなた自身を除く)すべてのユーザーが他人のメディアファイルにアクセスできないように制限したい場合があるかもしれません。

その場合、WordPressブログにカスタムコードを追加することができます。1つは非管理ユーザーのメディアファイルへのアクセスを制限するもので、もう1つはedit_others_posts権限を持たないユーザーのアクセスを制限するものです。

WordPressテーマにカスタマイザーのコードを追加するようガイドに書かれていることがよくあります。しかし、コードの単純なミスやタイプミスがWordPressの一般的なエラーを引き起こしたり、サイトを完全に壊してしまう可能性があるため、これはお勧めできません。

WPCodeをお勧めする理由はそこにある。

WPCodeは、100万以上のWordPressサイトで使用されている最高のコードスニペットプラグインです。functions.phpファイルを編集することなく、WordPressにカスタマイザーコードを簡単に追加することができます。

最初に行う必要があるのは、無料のWPCodeプラグインをインストールして有効化することです。詳しくは、WordPressプラグインのインストール方法のステップバイステップガイドをご覧ください。

有効化したら、Code Snippets ” Add Snippetにアクセスしてください。

How to add custom PHP snippets to your site using WPCode

ここでは、ウェブサイトに追加できるすべての既製のスニペットを見ることができます。これらのスニペットには、WordPressのコメントを完全に無効にしたり、画像添付ページを無効にしたりするスニペットなどがあります。

カスタムコードを追加」にマウスオーバーし、「スニペットを使用」を選択するだけです。

Adding a custom code snippet to WordPress

はじめに、カスタムコードスニペットのタイトルを入力します。これは、WordPressダッシュボードでスニペットを識別するのに役立つものであれば何でも構いません。

その後、「コードタイプ」のドロップダウンを開き、「PHPスニペット」を選択する。

Restricting access to the media library using WPCode

コード・プレビュー」エリアでは、以下のコード・スニペットのいずれかを貼り付けることができる:

設定1:WordPress非管理ユーザーのメディアファイルへのアクセスを制限する

add_filter( 'ajax_query_attachments_args', 'user_show_attachments' );

function user_show_attachments( $query ) {
    $user_id = get_current_user_id();
    // Check if the current user is not an administrator
    if ( $user_id && !current_user_can('administrator') ) {
        $query['author'] = $user_id;
    }
    return $query;
}

このコードは、現在のユーザーが管理者でないかどうかをチェックします。管理者でない場合、メディアライブラリをフィルタリングして、ユーザーが自分でアップロードしたファイルのみを表示します。

つまり、一般ユーザーは自分のメディアファイルだけを見たり管理したりできますが、管理者はすべてのファイルを見たり管理したりできるのです。

設定2:投稿編集権限のないWordPressユーザーのメディアファイルへのアクセスを制限する

add_filter( 'ajax_query_attachments_args', 'user_show_attachments' );
 
function user_show_attachments( $query ) {
    $user_id = get_current_user_id();
    // Checks if the current user is logged in (i.e., $user_id is not 0) and does not have the capabilities to activate plugins or edit others' posts.
    if ( $user_id && !current_user_can('activate_plugins') && !current_user_can('edit_others_posts
') ) {
        $query['author'] = $user_id;
    }
    return $query;
} 

このコードはもう少し具体的です。このコードは、現在のユーザーがログインしていて、プラグインを有効化したり他の人の投稿を編集したりする権限を持っていないかどうかをチェックします。もしユーザーがこれらの条件を満たしていれば、自分のメディアファイルだけを見たり管理したりすることができます。

これにより、管理者と編集者はすべてのファイルを見ることができますが、著者と投稿者は自分のアップロードにしかアクセスできません。

次に、「インサーター」セクションまでスクロールしてください。WPCodeは、投稿日ごと、フロントエンドのみ、管理者のみなど、様々な場所にコードを追加することができます。

WordPressサイト全体でカスタムPHPコードを使用するには、「Auto Insert」がすでに選択されていない場合は、「Auto Insert」をクリックします。次に、「Location」ドロップダウンメニューを開き、「Run Everywhere」を選択します。

Running custom PHP code across your website using WPCode

その後、画面を一番上までスクロールし、「Inactive」トグルをクリックして「Active」に変更すれば準備完了です。

最後に「Save Snippet」をクリックして、PHPスニペットをライブにする。

How to restrict access to media files using code

これで、ユーザーはWordPressのメディアライブラリにアップロードしたファイルにのみアクセスできるようになります。

WordPressファイルの管理方法

WordPressでメディアのアップロードを制限する以外にも、以下のガイドをチェックして、ファイルをよりよく管理することもできます:

この記事が、WordPressサイトのユーザーによるメディアアップロードをよりよく整理するのにお役に立てば幸いです。次は、WordPressのスライダープラグインとWordPressで画像を簡単に遅延ロードする方法をご紹介します。

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

情報開示 私たちのコンテンツは読者支援型です。これは、あなたが私たちのリンクの一部をクリックした場合、私たちはコミッションを得ることができることを意味します。 WPBeginnerの資金源 をご覧ください。3$編集プロセスをご覧ください。

アバター

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

究極のWordPressツールキット

ツールキットへの無料アクセス - すべてのプロフェッショナルが持つべきWordPress関連製品とリソースのコレクション!

Reader Interactions

9件のコメント返信を残す

  1. Joshua Owolabi

    I really enjoy all your tutorials kudos to you.
    Although I am unable to use to build something due to lack of resources but you are WELDONE

    • WPBeginner Support

      Glad our tutorials are helpful :)

      管理者

  2. Teddu

    I would like users to be able to upload content, and once its approved go onto a new page. the user could then edit it once it is there.

    Think, similar how airbnb let users upload photos and descriptions of their holiday homes, and it appears in a page.

    do you know a plug in for this functionality?

  3. WPBeginner Staff

    It is certainly possible but can potentially open up your site to spam, malicious hack attempts. Please see out article on how to allow users to submit posts in WordPress. You can allow users to upload media without registration.

  4. fredtgorski

    The one thing I would really(!) love to see on media library would be the ability to search media per post and/or date of upload. Every time I need to reuse an image I uploaded for a very old post, it is painfull to find it again. Sometimes I simply give up and reupload it…

  5. agsm

    sir , i want to design a wordpress page where user will upload some documents with following feilds (name,e-mail,title,summary and file upload) after submit , it should appear in dashboard and when admin approve it should be show on page (all listing of upload details which has been approved by admin ) , its possible,

    thanks in advance!!!

  6. Tony Franco

    Very nice! Thank you!! :)

返信を残す

コメントありがとうございます。すべてのコメントは私たちのコメントポリシーに従ってモデレートされ、あなたのメールアドレスが公開されることはありませんのでご留意ください。名前欄にキーワードを使用しないでください。個人的で有意義な会話をしましょう。