Vô hiệu hóa Tải lên phương tiện cho người dùng không phải quản trị viên


7

Tôi đang làm việc trên một trang web của khách hàng, một trong những tính năng họ muốn là cho các Biên tập viên hoặc Tác giả của mình chỉ có thể chọn các hình ảnh hiện có để chèn vào Bài đăng từ Thư viện Phương tiện.

Vì vậy, nhìn vào màn hình tải lên / quản lý phương tiện bên dưới, có thể làm cho Upload Filestab chỉ hiển thị Admin Usersvà cũng để Media Libraryhiển thị theo Mặc định khi Hộp thoại này được hiển thị không?

nhập mô tả hình ảnh ở đây


Bạn có thể muốn kiểm tra plugin Adminizing , có nhiều tùy chọn khác nhau có thể phù hợp với nhu cầu của bạn.
Charles

Plugin này chỉ ẩn nó với CSS. Khi tôi mở các công cụ dành cho nhà phát triển hoặc FireBug (hoặc bất kỳ trình duyệt nào bạn sử dụng), bạn chỉ cần xóa display: none;và có thể truy cập mọi thứ.
kaiser

Câu trả lời:


14

Cách 1:

Loại bỏ upload_fileskhả năng khỏi các vai trò tương ứng.

ví dụ: xóa nó khỏi tác giả:

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

Điều này được lưu vào cơ sở dữ liệu để nó chỉ xảy ra một lần, không phải trên mỗi lần tải trang. Loại bỏ nó khỏi vai trò biên tập nên giống như mặc dù với sửa đổi rõ ràng. Loại bỏ khả năng sẽ có hiệu ứng mong muốn, nhưng nó có thể có các hiệu ứng bổ sung mà bạn có thể không thấy mong muốn, cách duy nhất để chắc chắn là kiểm tra

Cách 2

Xem xét mã này, sẽ làm cho lỗi tải lên nếu người dùng không có đặc quyền quản trị viên.

<?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' );

Bạn có thể sử dụng bộ lọc này cụ thể hơn upload_file, ví dụ: ngăn chặn việc tải lên hình ảnh và chỉ hình ảnh, nhưng cho phép âm thanh, v.v.


Điều này không loại bỏ toàn bộ thư viện phương tiện?
onetrickpony

2
Do đó phương pháp # 2
Tom J Nowell

Phương pháp # 2 hoạt động như một cơ duyên! Thiết lập của tôi: một số hình ảnh được quản trị viên tải lên, trong khi những người dùng khác chỉ có thể xem hình ảnh của quản trị viên và không thể tải lên hình ảnh của chính họ. Chúc mừng!
liviucmg 17/1/2015

khách hàng của tôi tiếp tục tải lên các loại tệp sai (png, bmp!). Có thể đứng đầu chúng bằng cách sử dụng các loại mime này nhưng vẫn cho phép bản thân tôi tải lên .PNG không?
v3nt

@ v3nt đó là một câu hỏi mới, bạn nên hỏi nó trên trang web không trong một bình luận
Tom J Nowell
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.