Deaktivieren Sie das Hochladen von Medien für Benutzer ohne Administratorrechte

7

Ich arbeite auf einer Client-Site. Eine der Funktionen, die sie möchten, besteht darin, dass seine Redakteure oder Autoren nur vorhandene Bilder auswählen können, die in Posts aus der Medienbibliothek eingefügt werden sollen.

Wenn Sie also den Medienmanager- / Upload-Bildschirm unten betrachten, ist es möglich, die Upload FilesRegisterkarte nur für sichtbar Admin Userszu machen und die Media LibraryStandardeinstellung zu aktivieren, wenn dieser Dialog angezeigt wird?

Geben Sie hier die Bildbeschreibung ein

JasonDavis
quelle
Vielleicht möchten Sie das Adminimize-Plugin ausprobieren . Es gibt verschiedene Optionen, die Ihren Anforderungen entsprechen können.
Charles
Dieses Plugin versteckt es nur mit CSS. Wenn ich die Entwicklertools oder FireBug (oder einen anderen von Ihnen verwendeten Browser) öffne, können Sie einfach display: none;alles entfernen und auf alles zugreifen.
Kaiser

Antworten:

14

Methode 1:

Entfernen Sie die upload_filesFunktion aus den jeweiligen Rollen.

zB vom Autor entfernen:

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

Dies wird in der Datenbank gespeichert, sodass es nur einmal vorkommen sollte, nicht bei jedem Laden der Seite. Das Entfernen aus der Editor-Rolle sollte identisch sein, allerdings mit der offensichtlichen Änderung. Das Entfernen der Funktion hat den gewünschten Effekt, kann jedoch zusätzliche Effekte haben, die Sie möglicherweise nicht so wünschenswert finden. Der einzige Weg, um sicher zu sein, ist das Testen

Methode 2

Betrachten Sie diesen Code, der den Upload-Fehler auslöst, wenn der Benutzer keine Administratorrechte besitzt.

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

Sie können diesen Filter verwenden, um spezifischer als upload_file zu sein, z. B. das Hochladen von Bildern und nur von Bildern zu verhindern, aber Audio usw. Zuzulassen

Tom J Nowell
quelle
Entfernt dies nicht die gesamte Medienbibliothek?
Onetrickpony
2
Daher Methode # 2
Tom J Nowell
Methode 2 funktioniert wie ein Zauber! Mein Setup: Einige Bilder werden vom Administrator hochgeladen, während andere Benutzer nur die Bilder des Administrators anzeigen und keine eigenen hochladen können. Prost!
Liviucmg
Mein Client lädt immer wieder die falschen Dateitypen hoch (png, bmp!). Kann ich sie mit diesen MIME-Typen übersteigen, aber mir trotzdem erlauben, PNGs hochzuladen?
v3nt
@ v3nt das ist eine neue Frage, sollten Sie es auf der Website nicht in einem Kommentar stellen
Tom J Nowell