WordPress Mitarbeiter erlauben, Bilder hochzuladen

Warum die WordPress Rolle Mitarbeiter keine Bilder hochladen darf, verstehe ich nicht und werde ich wahrscheinlich auch nie verstehen.

Nun brauchte ich aber einen Benutzer der Artikel erstellen kann, diese dann zur Revision vorlegen kann und der auch noch Bilder hinzufügen kann.
Denn Artikel ohne Bilder sind irgendwie langweilig und eintönig.

Ich sah es aber nicht ein für eine dermaßen winzige Änderung, direkt große, mächtige Plugins wie zu installieren, mit dem ich die Rollen der WordPress Benutzer komplett ändern kann.

Daher suchte ich nach einem Codesnippet für die functions.php der diese kleine Änderung hinzufügte. Nach längerer Suche fand ich einen solchen:

if ( current_user_can('contributor') && !current_user_can('upload_files') )
	add_action('admin_init', 'allow_contributor_uploads');
 
function allow_contributor_uploads() {
	$contributor = get_role('contributor');
	$contributor->add_cap('upload_files');
}

Nachdem man diesen Code in die functions.php eingefügt hat, kann nun jeder Mitarbeiter Bilder hochladen und seinem Artikel hinzufügen. Um schon vorhandene Bilder zu schützen, kann ein Mitarbeiter bereits hochgeladene Bilder nicht löschen, was die Sicherheit deutlich erhöht.

Ich bin Kevin, und schreibe hier über Themen die sich von CSS über Designs bis zur testgetriebenen Entwicklung mit PHP erstrecken. Ich arbeite in einer kleinen Firma als PHP-Entwickler und entwickle dort PHP Backends für verschiedene Projekte vorallem mit Laravel. Privat betreibe ich noch diesen Blog und notesafe.

14 Kommentare Schreibe einen Kommentar

  1. Hallo,
    kannst du mir kurz erklären, wie ich die Funktions.php aufrufe und wie ich den Code einfüge?

    Ich wäre dir sehr dankbar.

    Liebe Grüße,
    Cara

    • Hey,

      es gibt zwei Wege die functions.php zu bearbeiten.
      Weg 1: FTP
      Du loggst dich mit deinem FTP Client auf deinen Server ein und navigierst zum Verzeichnis deines Themes (wp-content/themes/DEINTHEME). Dann lädst du die function.php herunter und bearbeitest diese und lädst sie danach wieder hoch. Nun sollte alles funktionieren.

      Weg 2: Dashboard
      Oder du benutzt den eingebauten Editor im WordPress Dashboard, dazu einfach Design > Editor und rechts an der Seite die Datei „Theme-Funktionen“ auswählen. Dann im Textfeld ans Ende scrollen, den Code einfügen und abspeichern.

      Da ich gerade gesehen hab, das du einen WordPress.com Blog hast..
      Bei einem WordPress.com Blog klappt das alles leider nicht. WordPress.com erlaubt keinen Zugriff auf direkte Theme Dateien. Dafür braucht man eine selbstgehostete WordPress Instalation.

      Falls du daran interessiert bist, deinen Blog durch eigenes Hosting und eine eigene Domain aufzuwerten. Kontaktiere mich doch über info@fundstücke-im-netz.de .

  2. Super! Vielen Dank,
    genau das habe ich gebraucht. Ich kann mir aber nach einigen schlechten Erfahrungen sehr gut denken warum ein Editor keine Bilder standardmäßig hochladen soll. Artikel von ihm werden nur als Entwurf gespeichert, damit er keinen direkten Einfluss auf die Seite hat, wenn er aber ein Bild hochlädt ist das bereits direkt öffentlich zugänglich. So ist es auch möglich das er urheberrechtsgeschützte Bilder einstellt ohne dafür die Verantwortung übernehmen zu müssen wenn die Abmahnung kommt.

  3. Hey Kevin,
    klingt super, ich frage mich nur, an welcher Stelle ich den Code einfügen muss?
    Einfach mitten rein bestimme nicht, oder?
    Klappt das noch mit der aktuellen Version?
    Würde mich über eine Antwort freuen.

    Gruß Timo

    • Das klappt auch noch mit der aktuellen Version. Du musst den Code in die functions.php Datei deines Themes einfügen. (Design->Editor->functions.php). Am besten den Code einfach ganz am Ende einfügen.

      Du kannst die functions.php nartürlich auch per FTP herunterladen, bearbeiten und dann wieder hochladen.

      Ich hoffe ich konnte dir helfen, falls nicht sag einfach nochmal Bescheid.

  4. Auch ich bedanke mich sehr für den Codeschnipsel. Bilder Upload wird bei Gastbeiträgen doch immer benötigt. Ich kann nicht verstehen, warum das WordPress nicht automatisch implentiert bei der Rolle des Mitarbeiters. Ach ja, Floh hat es in einem Kommentar weiter oben ja schon geschrieben, warum das wohl so ist. Vielen Dank nochmal….

  5. Also entweder bin ich zu blöd oder an dem Code stimmt irgendwas nicht. Der Beitrag ist ja von 2013, aber im Web gibt es sehr viele Snippets mit dem exakt selben Code, der bei mir nicht funktioniert.

    Möchte ich diesen Code in meinen Plugin einfügen, wird die komplette Seite weiss. Behoben wird es nur dann, wenn ich exakt diesen Snippet wieder entferne.

    Ist der Code überhaupt so noch aktuell?

Schreibe einen Kommentar