Gerade für Kundenprojekte ist es durchaus sinnvoll, das WordPress-Backend individuell zu gestalten, nicht benötigte Menüelemente zu entfernen und das Wording anderer projektbezogen anzupassen. In diesem Artikel möchte ich Dir eine klare Anleitung geben, wie die Anpassung des Backends ganz ohne Plugin zu realisieren ist.

Vorbereitung

Die Website, die Du für Deinen Kunden erstellt hast, ist soweit fertig. Bevor es an die Optimierung des Backends geht, möchte ich Dir zwei Möglichkeiten der Realisierung zeigen.

1. Optimierung über das Theme

Du optimierst das Backend über das Theme selbst. In diesem Fall wird jeglicher Code in die Datei functions.php geschrieben, die sich im Root (Hauptordner) Deines Themes befinden sollte.

2. Optimierung über ein eigenes Plugin

Du erstellst Dir für die Backend-Optimierungen ein eigenes Plugin. Der Vorteil bei dieser Methode ist, dass es dann im Grunde nichts mehr mit dem verwendeten Theme zu tun hat und Du dieses global für weitere Installationen mit eventuell anderen Themes verwenden kannst. Bei dieser Methode sollte man den Code so global wie möglich halten.

Für diese Anleitung wähle ich die erste Methode, da das Erstellen eines eigenen Plugins nochmal eine andere Baustelle ist, über die ich demnächst einen eigenen Artikel schreiben und hier verlinken werde.

Jetzt wird optimiert!

Öffne nun die Datei functions.php, wie oben erwähnt sollte sie sich im Root Deines verwendeten Themes befinden. (wp-content/themes/theme-name/functions.php). Die Codezeilen, die nun dazukommen, fügst Du am besten ganz unten in der Datei ein.

Verbergen von nicht benötigten Menüpunkten

Zunächst möchten wir Menüs oder Untermenüs verbergen, die ohnehin nur dazu da sind, um den ahnungslosen Kunden zu verwirren. Damit soll gesagt sein, dass – je nach Website – einzelne Menüpunkte vielleicht überlüssig sind und nicht benötigt werden. Für dieses Vorhaben verwendet WordPress die Funktion remove_menu_page().

In den Kommentaren kann man gut erkennen, welche Menüs mit den entsprechenden Codezeilen entfernt werden. Wichtig zu wissen ist, dass diese lediglich im Menü versteckt werden und mit einer manuellen Eingabe in der Adresszeile des Browsers trotzdem aufrufbar sind.

Das Verstecken der Untermenüs ist nicht viel schwieriger. Dafür ist die Funktion remove_submenu_page() verantwortlich.

Der erste Parameter (themes.php) bestimmt den Hauptmenüpunkt, in dem Fall „Design“ bzw. „Appearance“, der zweite Parameter (widgets.php) spricht das Untermenü an. In diesem Beispiel haben wir also das Untermenü „Widgets“ von der Menünavigation entfernt.

Einzelne Menüpunkte umbenennen

Manchmal ist es auch hilfreich, das Wording von bestimmten Menüelementen projektbezogen anzupassen. Dieses Vorhaben ist ebenfalls ziemlich simpel, wenn auch etwas umständlicher als das Entfernen.

In diesem Fall habe ich den Menüpunkt „Beiträge“ in „Rezepte“ umbenannt. Dafür verwende ich die globale Variable $menu. Das [5][0] steht für eine bestimmte Position im Array, welches Du Dir wie folgt ausgeben kannst, um zu ermitteln, mit welcher Position Du welchen Menüpunkt ansprechen kannst. Trage dafür unter der Zeile „global $menu;“ folgendes ein:

Danach solltest Du in Deinem Backend den kompletten Array sehen. Nicht erschrecken! 😉 Dort kannst Du zum Beispiel folgende Positionen feststellen:

  • [2] = Dashboard
  • [5] = Beiträge
  • [25] = Kommentare
  • [65] = Plugins
  • und so weiter…

Nach Fertigstellung kannst Du die zwei Zeilen mit gutem Gewissen nochmal entfernen.

Den Login-Bereich anpassen

Dazu habe ich in diesem Artikel bereits einiges erzählt.

Individuelles Styling des Backends

Richtig gelesen! Du hast die Möglichkeit, eine separate CSS-Datei in Dein Backend zu laden und dementsprechend das Design individuell anzupassen. Deine CSS-Datei lädst Du wie folgt in Dein Backend:

Nun kannst Du mit Deiner eingebundenen CSS-Datei jedes Element ansprechen, welches Du im Backend gerne anpassen würdest.

Nicht benötigte Widgets entfernen

Manchmal gibt es von WordPress mitgelieferte Standardwidgets, die wir nicht benötigen. Mit diesen Codezeilen hast Du die Möglichkeit, einzelne zu deaktivieren:

In diesem Beispiel habe ich alle Standardwidgets entfernt. Die Bezeichnung im Parameter sollte erklären, welche Zeile für welches Widget zuständig ist. Über die Funktion unregister_widget() kannst Du hier mehr lesen.

Fazit

Nach dem Umsetzen dieser Beispiele sollte das Backend für Deinen Kunden schon weit aufgeräumter und übersichtlicher sein. Du würdest gerne etwas anpassen, was Du in meinem Artikel nicht findest? Schreibe mir dazu gerne was in den Kommentaren und ich passe den Beitrag nach und nach an.

Viel Spaß beim Optimieren Deiner WordPress-Seiten!

Zusatz

Es ist prinzipiell sinvoller, das Backend lediglich für Nicht-Admins anzupassen. Abhilfe schafft hier folgende Abfrage:

In diesem Beispiel wurde der Menüpunkt „Dashboard“ für alle Nicht-Administratoren entfernt. Über die Möglichkeiten der Abfragen kannst Du hier mehr lesen.

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

12 Kommentare zu “WordPress Backend für Kundenprojekte sinnvoll optimieren

  1. Alvaro sagt:

    Hallo Daniele,

    ein super Artikel, den ich voll umgesetzt habe.
    Ein Frage habe, wenn ich ein Untermenü ausblenden will. Ich habe versucht unter „Seiten“ den „Erstellen“ Link auszublenden: ../wp-admin/post-new.php?post_type=page

    Ich habe es nicht geschafft. Hat sich etwas geändert?

    1. Daniele sagt:

      Hallo Alvaro,

      versuch dafür mal folgendes:

  2. Tom sagt:

    Sehr cool hat uns weitergeholfen 😉

  3. morton sagt:

    Ich finde deine Lösung sehr schön und wollte sie implementieren, dass scheint aber mit WP 4.7.5. nicht zu funktionieren. Nach der Anpassung lässt sich die Seite nicht mehr Laden…

    1. Daniele sagt:

      Werden irgendwelche PHP-Fehler angezeigt, die Du mir mitteilen könntest?

  4. David sagt:

    Ah und eine kurze Frage aus reiner Neugierde: Deine Funktion dd_load_admin_styles() ist da die Abfrage is_admin() nicht eigentlich überflüssig? Da der admin_head Hook doch eigentlich nur im Admin (wp-admin/admin-header.php) ausgeführt wird, oder?

    1. Daniele sagt:

      Auch hier hast Du natürlich Recht. Die Abfrage is_admin() könnte man aufgrund der Hook genauso gut weglassen. Das Detail ist mir nicht aufgefallen, vielen Dank!

  5. David sagt:

    Danke für den interessanten Beitrag 🙂

    Es hängt halt vom Kunden ab, ob man das so machen sollte oder nicht. Erfahrene WP Kunden wird das ein wenig verwundern, andere genau umgekehrt wird es wundern, was denn der Menüpunkt XYZ da macht und dann funktioniert der irgendwie auch nicht, da muss dann etwas kaputt sein etc.

    Wenn man mit dem Kunden eine längerfristige Zusammenarbeit vereinbart, würde ich ihm nicht den Admin-Zugang geben, sondern über das Rollensystem gehen und daraufhin die Menüpunkte, die noch weg müssen, entfernen.

    Ich weiß nicht, aber einfach aus dem Gefühl heraus, der Admin soll der Admin sein – komplette Kontrolle, alles sichtbar, der soll sich auskennen und wissen was er tut. Beschränkungen würde ich erst auf untergeordneten Rollen einsetzen.

    1. Daniele sagt:

      Hallo David,

      da stimme ich Dir im Grunde vollkommen zu, diesen Punkt sollte ich in meinem Beitrag noch ergänzen!

      Beste Grüße,
      Daniele

  6. Velli sagt:

    Damit werden aber komplett die Menüs für alle Admins ausgeblendet, oder nicht?
    Wie würde das für die Rollen von z.B. Redakteuren aussehen?

    1. Daniele sagt:

      Hallo Velli,

      wenn Du Menüs lediglich für Nicht-Admins ausblenden möchtest, muss eine simple Abfrage dazu:

      Weitere Möglichkeiten zur Abfrage der User-Roles kannst Du hier nachschlagen.

      Viele Grüße!