Standardmäßig ist die Anzahl der erlaubten Dateitypen, die man über den Medienuploader in WordPress hochladen darf, begrenzt. Eine Übersicht der erlaubten Dateitypen kann im WordPress Codex eingesehen werden. Möchte man nun jedoch zum Beispiel Vektorgrafiken im SVG-Format hochladen, wird dies von WordPress unterbunden.

Um den Upload beliebiger Dateitypen in WordPress zu erlauben, müssen diese der Liste der erlaubten Dateitypen hinzugefügt werden. Dies geht auf unterschiedlichen Wegen. Drei Lösungsansätze sollen nachfolgend vorgestellt werden.

Erlaubte Upload-Dateitypen per Coding bearbeiten

In der ersten Variante ändern wir die Liste der erlaubten Dateitypen für den Upload per Hand im WordPress Code. Folgendes Snippet muss an geeigneter Stelle (z.B. in der functions.php) eingepflegt werden.

Die WordPress-API bietet den Filter upload_mimes an, in welchen wir uns mit einer Funktion einklinken und das Array mit den erlaubten Dateitypen bearbeiten können. Um Dateitypen hinzuzufügen oder zu entfernen, muss einfach nur das Array der erlaubten Typen bearbeitet werden.

Die Dateitypen müssen hierbei in Form ihres MIME-Type angegeben werden. Eine recht vollständige Liste aller MIME-Types kann zum Beispiel hier eingesehen werden.

Erlaubte Dateitypen für den Upload per Plugin ändern

Wer nicht in den Code eingreifen möchte, kann zur Änderung der erlaubten Dateitypen auch ein Plugin nutzen. Hier bietet sich zum Beispiel die Verwendung des Plugins WP Extra File Types an. Im

Hintergrund macht dieses Plugin jedoch nichts anderes als oben stehendes Snippet. Ob man für einen Vierzeiler wirklich ein Plugin verwenden möchte, bleibt jedem selbst überlassen.

Erlaubte Dateitypen in WordPress Multisite ändern

WordPress Multisite erlaubte DateitypenNoch etwas anders sieht es aus, wenn man WordPress im Multisite Modus nutzt. In diesem Fall lassen sich die erlaubten Upload-Dateitypen direkt aus dem WordPress-Backend heraus einstellen.

Die Liste der erlaubten Dateitypen kann über das Menü „Netzwerkverwaltung –> Einstellungen –> Netzwerk Einstellungen“ gepflegt werden. An dieser Stelle lässt sich im Feld „Erlaubte Dateitypen“ eine Whitelist pflegen.

Hierbei ist zu beachten, dass diese Einstellung für jede Seite im Netzwerk gilt!

Um ein bestimmtes Element eures WordPress-Themes oder eine bestimmte Funktionalität nur auf der Startseite anzuzeigen, eignet sich folgendes Snippet. Zu beachten ist, dass das Snippet die PHP-Tags („<?php“ und „?>“) enthält. Diese dürfen natürlich nur mitkopiert werden, wenn nicht bereits ein PHP-Tag an der Stelle geöffnet wurde, an der ihr das Snippet einfügen wollt!

Folgendes zur Funktionsweise: Das Snippet besteht aus einer simplen if-Abfrage. Wird die Bedingung der Abfrage wahr, wird der Code innerhalb der if-Anweisung ausgeführt. Die Bedingung selbst prüft, ob die aktuell geladene Seite entweder die Blog-Seite mit den letzten n-Artikeln (is_home()) oder eine händisch festgelegte Startseite (is_front_page()) ist.

Soll der Code nur auf der manuell festgelegten Startseite angezeigt werden, lässt sich das Snippet als noch kürzer gestalten:

 

Was das Backend angeht, ist WordPress recht unflexibel. Meldet sich ein Nutzer an, der keine Adminrechte hat – also die Adminrolle nicht besitzt – so sieht er trotzdem die meisten Menüeinträge und Links in der Adminbar. Um Einträge, die mangels Berechtigung sowie nutzlos sind, auszublenden, eignen sich folgende beiden Snippets.

Menüeinträge im WordPress-Admin ausblenden

Um Einträge im linksseitigen Menü im WordPress Adminbereich auszublenden, sind folgende Code-Zeilen nötig.

Mittels add_filter hängen wir uns in die WordPress-Verarbeitung in das Event „admin_init“. Dieses wird getriggert, wenn der Adminbereich geladen wird. Nun greift die admin_menues_ausblenden-Funktion. In Zeile 2 wird geprüft, ob der Nutzer angemeldet und kein Administrator ist. Wenn dem so ist, wenn die einzelnen Menüeinträge entfernt.

Sollen nur einzelne Menüpunkte entfernt werden, so sind die anderen Zeilen aus obigem Snippet zu entfernen. Die Aufschlüsselung Codezeile –> Menüeintrag steht im Kommentar am Zeilenende.

Links aus der Adminbar entfernen

Um Links aus der Adminbar (obere Menüleiste) zu entfernen, kann nachfolgendes Snippet genutzt werden.

Technisch funktioniert dieses Snippet analog zum Ersten. Der Unterschied besteht lediglich in dem Zeitpunkt auf den der Filter gesetzt wird.

WordPress WillkommenstextDer „Willkommen“-Text in der rechten, oberen Ecke der WordPress-Adminbar sollte eigentlich jedem Nutzer ein Begriff sein. Was jedoch, wenn der Standard-Text („Willkommen“) gewechselt werden soll? Vor allem, wenn WordPress in der englischsprachigen Variante genutzt wird, kann der dortige Text („Howdy“) nicht den formellen Ansprüchen genügen.

Möchte man eine alternative oder auch förmlichere Begrüßung nutzen, hilft folgendes Code-Snippet. Mit folgendem 5-Zeiler ist es möglich, die Willkommensnachricht durch einen beliebigen Text auszutauschen.

Mittels der add_filter-Funktion klinken wir uns in die Aufrufkette ein, wenn die gettext-Funktion aufgerufen wird. An dieser Stelle wird nun die howdy_message-Funktion ausgeführt, welche per Suchen und Ersetzen (str_replace) den Wert „Howdy“ durch „Welcome“ ersetzt.

Sollte das verwendete Theme in einer übersetzten Version laufen, so müsste in Zeile 2 des obigen Snippets das „$text“ durch „$translated_text“ ersetzt werden.

Wie fast alle anderen Snippets auf unserem Blog gehört auch dieser Code idealerweise in die functions.php-Datei eures Themes.

Standardmäßig durchsucht die WordPress-Suchfunktion Beiträge/Artikel und Seiten. Manchmal kann es jedoch sinnvoll sein, nur in Beiträge zu suchen. Zum Beispiel dann, wenn nur Seiten für Sitemap, Impressum und Datenschutzerklärung existieren. Aber auch sonst kann es Sinn machen die Suche nur auf Artikel zu beschränken.

Um die Suche auf WordPress-Beiträge zu beschränken nutzen wir wieder die add_filter-Funktion, die wir schon in vielen anderen hier vorgestellten Snippets genutzt haben. Das nachfolgende Snippet sollte in der functions.php-Datei des WordPress-Themes platziert werden.

Wie immer ein paar Worte zur Erklärung. Mit der add_filter-Funktion setzen wir einen Filter auf das pre_get_posts-Event. Dieses wird ausgelöst, bevor die Artikel bei einer Query (=Anfrage) geladen werden. An dieser Stelle greift nun unsere Suchfilter-Funktion ein, die Folgendes tut.

Zuerst wird überprüft, ob die Anfrage eine Suchanfrage ist ($query->is_search). Wenn dem so ist, wird per set-Methode der Parameter post_type auf den Wert post festgelegt und somit die Anfrage auf Beiträge beschränkt.

Suche auf andere Post-Typen einschränken

Um die Suche auf andere Artikeltypen einzuschränken, muss lediglich in der Zeile mit „$query->set“ statt „post“ ein anderer Artikeltyp angegeben werden. Doch welche Posttypen gibt es überhaupt?

Die möglichen Artikeltypen, die man hier angeben kann, lassen sich ebenfalls mit einem kleinen PHP-Snippet ermitteln. Folgende Code-Zeilen geben alle verfügbaren Posttypen aus.

Das Snippet lässt sich ebenfalls in der functions.php einbauen, sollte aber sofort nach dem auslesen wieder entfernt werden, da es zu „unschönen“ Darstellungen im Frontend/Theme kommt.