如何在WordPress中限制對用戶自己上載的媒體庫訪問


默認情況下,WordPress允許作者查看您網站媒體庫中的所有圖像。 如果邀請許多來賓作者,這可能會出現問題。 在本文中,我們將向您展示如何限制WordPress媒體庫對用戶自己的上傳內容的訪問。

限制WordPress媒體庫訪問用戶自己的上傳內容

為什麼限制媒體庫訪問用戶自己的上載?

WordPress允許作者查看媒體庫中的所有文件。 他們還可以查看由管理員,編輯或其他作者上傳的圖像。

要了解更多信息,請參閱關於WordPress用戶角色和權限的文章。

假設您正在創建新帖子以宣布即將推出的產品或交易。 您網站上的作者和來賓作者將能夠在媒體庫中看到上傳到該文章的圖像。

您上載的內容也會顯示在“添加媒體”彈出窗口中,用戶在將圖像添加到自己的文章中時會看到。

對於許多網站而言,這可能並不重要。 但是,如果您運行一個多作者網站,則可能需要更改它。

讓我們看一下如何輕鬆地將媒體庫訪問限制為用戶自己的上傳。

方法1:使用插件限制媒體庫訪問

此方法更簡單,建議所有用戶使用。

您需要做的第一件事是安裝並激活“限制媒體庫訪問”插件。 有關更多詳細信息,請參閱有關如何安裝WordPress插件的分步指南。

該插件可以直接使用,沒有可供您配置的設置。

激活後,它將過濾媒體庫查詢,以查看當前用戶是管理員還是編輯者。 如果用戶角色與兩個角色都不匹配,那麼它將僅顯示用戶自己的上傳內容。

具有管理員或編輯者用戶角色的用戶將能夠照常查看所有媒體上載。

方法2:手動限制媒體庫訪問

第一種方法適用於大多數網站,因為它限制了媒體庫的訪問,並且僅允許管理員和編輯者查看所有媒體上載。

但是,如果您想添加自定義用戶角色,或者只是不想使用插件,則可以嘗試使用此方法。 它使用與插件相同的代碼,但是您可以對其進行修改以滿足您的需求。

此方法要求您將代碼添加到WordPress文件中。 如果您以前沒有做過,請查看我們的指南,了解如何在WordPress中復制和粘貼代碼。

您需要將以下代碼添加到WordPress functions.php文件或特定於站點的插件中。

// Limit media library access
 
add_filter( 'ajax_query_attachments_args', 'wpb_show_current_user_attachments' );

function wpb_show_current_user_attachments( $query ) {
    $user_id = get_current_user_id();
    if ( $user_id && !current_user_can('activate_plugins') && !current_user_can('edit_others_posts
') ) {
        $query['author'] = $user_id;
    }
    return $query;
} 

此代碼使用current_user_can函數檢查用戶是否具有激活插件或編輯其他用戶的帖子的能力。 如果沒有,那麼它將更改用於顯示媒體文件的查詢並將其限制為用戶的ID。

我們希望本文能幫助您學習如何限制WordPress媒體庫對用戶自己的上傳內容的訪問。 您可能還希望將作者限制為他們在WordPress管理區域中的帖子。

如果您喜歡這篇文章,請訂閱我們的YouTube頻道WordPress視頻教程。 您也可以在找到我們 推特 和Facebook。