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.

Links in Kommentaren sind ein gern genutztes Mittel von Spammern. Eine Möglichkeit die Attraktivität für Spammer zu mindern, wäre das komplette entfernen von Links in Kommentaren. Doch die Welt ist nicht nur schwarz und weiß und so posten auch ehrliche Leser ab und zu Links, die für andere Leser eindeutig einen Mehrwert haben. Statt Links also komplett zu entfernen, ist es sinnvoller, sie „unklickbar“ zu machen.

Beim „unklickbar“ machen, wird der <a>-Tag um den Link herum entfernt, sodass die gepostete URL am Ende als Plaintext im Kommentar auftaucht. Für Spammer ist solch eine Darstellung wesentlich unattraktiver, da sie aus SEO-Sicht keinen wirklichen Mehrwert bietet. Wer jedoch ernsthaft an dem Link interessiert ist, kann die URL immer noch von Hand kopieren und im Browser der Wahl öffnen.

<a>-Tags in WordPress-Kommentaren entfernen

Um Link-Tags automatisch in Kommentaren zu entfernen und die URL als Text darzustellen, reicht folgender Einzeiler.

Durch den Aufruf der remove_filter-Funktion wird die Funktion „make_clickable“ aus der Aufruf-Kette des comment_text entfernt. Ursprünglich würde der Kommentar (comment_text) durch die Funktion make_clickable geschickt, welche URLs automatisch klickbar macht. Durch den remove_filter-Aufruf, wird dies unterbunden.

Jeder, der schon einmal einen WordPress-Blog betrieben hat, wird das Problem der Spam-Kommentare kennen. Neben dem Einsatz von entsprechenden Plugins, die Spam automatisch ausfiltern sollen, kann man schon bei der Entwicklung des Themes gegen das Problem steuern.

Durch den Einsatz eines kleinen Snippets innerhalb der functions.php-Datei des Themes, lässt sich die minimale Länge von Kommentaren festlegen. Sinn befreite Kommentare wie „toll“, „Genial!“, etc. gehören damit der Vergangenheit an.

Das Snippet arbeitet wieder mit einem Filter- genauer gesagt mit dem „preprocess_comment“-Filter, welcher auslöst, wenn ein Kommentar verfasst und abgeschickt wurde. Bevor der Kommentar nun verarbeitet und in der WordPress-Datenbank abgelegt wird, klinkt sich der preprocess_comment-Filter ein und ruft unsere minimale_kommentar_laenge-Funktion auf. Innerhalb der Funktion legen wir zuerst die minimale Anzahl an Zeichen fest, die ein Kommentar haben muss.

Danach prüfen wir, ob der übermittelte Kommentar ($commentdata[‚comment_content‘]) weniger Zeichen als die vorgegebene Länge hat. Wenn dies der Fall ist, brechen wir die Kommentar verarbeitet mittels wp_die  und einer Fehlermeldung ab. Anderenfalls verlassen wir die Funktion mittels return und lassen WordPress den Kommentar verarbeiten.