問題描述

我在一個客户端工作,他們想要的功能之一就是他的編輯或作者只能選擇現有的圖像插入到媒體庫的帖子中。

所以看下面的媒體管理器/上傳屏幕,是否可以使 Upload Files 選項卡只對 Admin Users 可見,還可以在顯示此對話框時使默認顯示 Media Library

最佳解決方案

方法 1:

從相應的角色中刪除 upload_files 功能。

例如從作者中刪除它:

$role = get_role( 'author' );
$role->remove_cap( 'upload_files' );

這被保存到數據庫,所以它應該只發生一次,而不是在每個頁面加載。從編輯器角色刪除它應該是一樣的,雖然有明顯的修改。刪除功能將具有所需的效果,但它可能會產生額外的效果,您可能找不到所需的,唯一的方法是確定是測試

方法 2

考慮這個代碼,如果用户沒有管理員權限,這將導致上傳錯誤。

<?php
/**
 * Plugin Name: Admin Only Uploads
 * Description: Prevents Uploads from non-Admins
 * Author: TJNowell
 * Author URI: http://tomjn.com
 * Version: 1.0
 */

function tomjn_only_upload_for_admin( $file ) {
    if ( ! current_user_can( 'manage_options' ) ) {
        $file['error'] = 'You can't upload images without admin privileges!';
    }
    return $file;
}
add_filter( 'wp_handle_upload_prefilter', 'tomjn_only_upload_for_admin' );

您可以使用此過濾器比 upload_file 更具體,例如防止圖像的上傳,只有圖像,但允許音頻等

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。