Suchen Sie nach einer Möglichkeit, Benutzer darauf zu beschränken, nur Mediathek-Elemente anzuzeigen, die sie selbst hochgeladen haben? Obwohl es wahrscheinlich ein Plugin dafür gibt, haben wir einen schnellen Code-Schnipsel erstellt, den Sie zum Beschränken von Benutzern auf das Anzeigen von nur von ihnen hochgeladenen Mediathek-Elementen in WordPress verwenden können.
Anweisungen:
Sie müssen diesen Code nur zur functions.php-Datei Ihres Themes oder in ein websitespezifisches Plugin einfügen:
function my_files_only( $wp_query ) {
if ( strpos( $_SERVER[ 'REQUEST_URI' ], '/wp-admin/upload.php' ) !== false ) {
if ( !current_user_can( 'level_5' ) ) {
global $current_user;
$wp_query->set( 'author', $current_user->id );
}
}
}
add_filter('parse_query', 'my_files_only' );
Hinweis: Wenn Sie zum ersten Mal Code-Schnipsel in WordPress hinzufügen, lesen Sie bitte unseren Leitfaden, wie Sie Code-Schnipsel richtig in WordPress hinzufügen, damit Sie Ihre Website nicht versehentlich beschädigen.
Wenn Ihnen dieser Code-Schnipsel gefallen hat, ziehen Sie bitte in Betracht, unsere anderen Artikel auf der Website zu lesen, wie z. B.: 7 beste VPN-Dienste für WordPress-Benutzer und wie man ein WordPress-Spendenformular erstellt.
wir haben gerade festgestellt, dass dieses Skript zwar in der Web-WordPress-Version funktioniert, die Android/Mobile-Version der Mediathek jedoch immer noch für alle sichtbar ist.
eine kleine Änderung, die ich am Code vorgenommen habe, um ihn im Frontend auf meiner Profilseite funktionsfähig zu machen
//if ( false !== strpos( $_SERVER[ ‘REQUEST_URI’ ], ‘/wp-admin/upload.php’ ) ) { if ($wp_query->query_vars[‘post_type’]==”attachment”){
auf diese Weise funktioniert es richtig.
Danke Prasanna, ich habe ein Disqus-Konto registriert, nur um dir zu danken.
Ich auch
[...] einige Googeleien ergaben viele Referenzen (hier und hier zum Beispiel) zu diesem [...]
Es hat funktioniert! (WP 3.8.1) Danke!
Hallo, danke für den Code. Sehr hilfreich!
andere Benutzer können die Anhänge jedoch immer noch anzeigen, wenn sie einen direkten Link haben. Gibt es eine Möglichkeit, dies zu verhindern? Also, dass nur der Besitzer der Medien (und der Administrator) die Anhänge sehen kann. Andere Benutzer oder die Öffentlichkeit können sie nicht sehen.
Danke.
Ich habe diesen Code eingefügt... aber der Zähler für Medienbeiträge ist falsch...
Der aktuelle Benutzer hat keine Medienbeiträge... warum hat er Alle (15) | Bilder (15) | Nicht zugeordnet (2)
Ich möchte die Anzahl für den aktuellen Benutzer anzeigen lassen... nicht für alle....
Ich habe gerade alle Zählungen per CSS ausgeblendet: subsubsub .count {display: none; }
Vielen Dank – Thank you
Vielen Dank dafür…. Role Scoper hat mit einem anderen Plugin Probleme gemacht und das war das einzige Feature, das ich wollte, nämlich die Begrenzung der Bilder… Danke für das Update, damit es mit der neuen Mediathek funktioniert, es funktioniert einwandfrei.
Weiß jemand, wie man Benutzer auch dann einschränkt, wenn sie Dateien über Einfügen oder Beitrag bearbeiten hochladen? Tatsächlich, wenn ich auf die Schaltfläche "Medium hinzufügen" klicke, zeigt mir das Popup den Tab "Mediathek" mit allen von allen Benutzern hochgeladenen Medien. Ich benutze WP 3.5.1.
Danke!
Schauen Sie sich meine Antwort an designlabCPH oben an. Fügen Sie diese Funktion in Ihre Funktionen-Datei ein, und die Mediathek wird nur auf die eigenen Dateien der Benutzer beschränkt.
Es funktioniert bei mir nicht 🙁 Ich möchte, dass Benutzer, die keine Administratoren sind, nur ihre eigenen Dateien sehen können, auch wenn sie Beiträge erstellen, nur ihre eigenen Bilder sehen, wenn sie Beitragsbilder hinzufügen usw.
Es funktioniert bei mir nicht 🙁 Ich möchte, dass Benutzer, die keine Administratoren sind, nur ihre eigenen Dateien sehen können, auch wenn sie Beiträge erstellen, nur ihre eigenen Bilder sehen, wenn sie Beitragsbilder hinzufügen usw.
Es funktioniert bei mir nicht 🙁 Ich möchte, dass Benutzer, die keine Administratoren sind, nur ihre eigenen Dateien sehen können, auch wenn sie Beiträge erstellen, nur ihre eigenen Bilder sehen, wenn sie Beitragsbilder hinzufügen usw.
Es funktioniert bei mir nicht 🙁 Ich möchte, dass Benutzer, die keine Administratoren sind, nur ihre eigenen Dateien sehen können, auch wenn sie Beiträge erstellen, nur ihre eigenen Bilder sehen, wenn sie Beitragsbilder hinzufügen usw.
Es funktioniert jetzt! Vielen Dank!
Ich habe das Role Scoper Plugin verwendet. Ich habe den ganzen Tag nach einer Lösung gesucht. Role Scoper erlaubt standardmäßig nur dem angemeldeten Benutzer, seine eigenen Inhalte und eigenen Beiträge zu sehen. Sie können dies auch ändern, wenn Sie möchten. Private Mediathek für Autoren 😉
Gibt es eine Möglichkeit, diese Codezeile so einzurichten, dass die Mediathek nur für Mitwirkende eingeschränkt wird? Auf diese Weise können Mitwirkende nur die von ihnen hochgeladenen Medien sehen, und Administratoren können alles sehen.
Gibt es eine Möglichkeit, diese Codezeile so zu programmieren, dass sie nur für bestimmte Mitgliedschaftsstufen gilt? (d. h. Mitwirkende können nur ihre eigenen Medien-Uploads sehen, aber Administratoren können alles sehen)
Verwende WP 3.3.1 und das funktioniert nicht. Gibt es ein Update für den Code? Danke.
Schau dir meine Antwort oben an. Ich habe eine Funktion gepostet, die mit dem neuen Medienmanager (WP 3.5+) funktioniert.
Ich habe eine Frage, Kevin: Wie kann man Contributor vom Hochladen von Medien ausschließen?
Hallo Rian,
In Zeile 3 siehst du „level_5“ auf dieser WordPress-Seite gibt es Details darüber, was die Benutzerlevel sind, du kannst dieses Level einfach ändern. http://codex.wordpress.org/User_Levels#User_Level_5_2
Ich habe nicht bemerkt, dass die Standardrolle für Contributor keine Medien hochladen kann. Ich habe es gestern Abend gerade ausprobiert... haha.
Vielen Dank, Kevin! 🙂
Kein Problem, jederzeit,
Danke Kevin, es ist sehr nützlich, aber wie behebt man die „Gesamtzahl der Dateien“?
Freut mich zu hören, dass dir der Snippet gefällt! Nun, die Gesamtzahl ist immer noch korrekt, da die Dateien existieren, obwohl ich deinen Punkt verstehe. Ich werde mir das in naher Zukunft ansehen, ob ich einen Snippet posten kann.
Danke für den Beitrag. Genau das, was ich gesucht habe.
Ich habe eine kleine Änderung vorgenommen >> füge auch die Datei media-upload.php zu dieser Codezeile hinzu. Dies filtert auch die Bilder / Medien-Dateien über dem wysiwyg-Editor.
presta
Hallo Sheila,
Wo/Was hast du code-mäßig in die Datei media-upload.php gepostet? Ich bekomme einen Fehler, wenn ich den Code einfüge. Danke im Voraus!
Problem gefunden, die Medienbibliothek zeigt im Popup-Fenster zum Einfügen von Medien immer noch den gesamten Inhalt an. (Gilt auch für andere Seiten-Templates)
Ich habe jedoch get global $post hinzugefügt und eine weitere Bedingung für Beiträge.
‘/wp-admin/media-upload.php?post_id=’.$post->ID.’&type=image&tab=library’
aber es hat nicht funktioniert..
Ich habe dies behoben, indem ich eine zweite Klausel hinzugefügt habe
„|| strpos( $_SERVER[ ‘REQUEST_URI’ ], ‘/wp-admin/media-upload.php’ ) !== false“
Wie zum Teufel bekommt man das in WP 3.5 zum Laufen?
Ich habe alles versucht (glaube ich, obwohl ich kein PHP-Programmierer bin), einschließlich des Hinzufügens Ihrer obigen Lösung – und ich bekomme es einfach nicht zum Laufen.
Ich brauche, dass nur Admins alle Medien im Popup der Mediathek sehen können und alle anderen (einschließlich Redakteure) nur ihre jeweiligen Bilder sehen können... Würden Sie es mir bitte erklären? 🙂
Verwenden Sie Role Scoper, wenn Sie es noch nicht herausgefunden haben, Mann. Es löst genau dieses Problem. Es ist standardmäßig so, wenn Sie das Plugin installieren. Sowohl die Mediathek als auch Beiträge. FYI
Ich habe heute Stunden damit verbracht, nur um dieses Upload-Problem für Benutzer zu beheben, und festgestellt, dass dies der einzige Code ist, der funktioniert. Danke!
Sie müssen einige Parameter ändern, damit dies mit dem neuen Medienmanager funktioniert.
Sie können diese Funktion verwenden (beachten Sie, dass ich eine „manage_media_library“-Berechtigung erstellt habe. Nur wenn der Benutzer diese hat, sieht er andere Dateien als seine eigenen):
add_action(‘pre_get_posts’,’ml_restrict_media_library’); function ml_restrict_media_library( $wp_query_obj ) {
global $current_user, $pagenow;
if( !is_a( $current_user, ‘WP_User’) )
return;
if( ‘admin-ajax.php’ != $pagenow || $_REQUEST[‘action’] != ‘query-attachments’ )
return;
if( !current_user_can(‘manage_media_library’) )
$wp_query_obj->set(‘author’, $current_user->ID );
return;
}
Ich habe genau danach gesucht: ‚admin-ajax.php‘ != $pagenow || $_REQUEST[‚action‘] != ‚query-attachments‘
vielen Dank!
Wo hast du das hingetan?
als neues Plugin! Gut, das funktioniert für mich!
Tolle Code-Lösung Patrick – hat mein Problem sofort behoben – Ich wünschte, ich hätte das schon im Dezember gefunden. : ) Danke!
Ich habe deinen Code in einem Plugin ausprobiert, direkt in der function.php, aber es funktioniert nicht. Ich habe WordPress 3.5.1 und möchte ihn im Frontend mit dem "Add Media"-Button der wp_editor-Funktion verwenden.
Ich habe es im wp-admin versucht, aber es funktioniert auch dort nicht.
Hast du eine Idee, warum es nicht funktioniert???
Habe das benutzt, viel Lob an dich!
Diese Snippets sind so hilfreich für meine Multi-Blogger-Seite. Du solltest daraus ein WP-Plugin machen! Danke =)
Cool, freut mich, dass dir das Snippet gefällt. Ich bin mir nicht sicher, ob es sich lohnt, es als Plugin hinzuzufügen, obwohl es als eines eingerichtet werden könnte.
Das solltest du tun, ich habe Schwierigkeiten im Plugin-Pool, das zu finden und habe schließlich aufgegeben und nach externen Ressourcen gesucht, was mich hierher geführt hat. Ich liebe deinen Blog, direkte und zweckmäßige Snippets. Ich lerne hier viel!
Du hast mir den Tag versüßt, Danke Chard! =)
Kein Problem, freut mich, dass dir die Website gefällt – besuche uns regelmäßig, wir posten täglich!