MAMP: WordPress-Themes und Plugins über Symlinks zentral verwalten

Vor ein paar Monaten hatte ich eine Weile mit Local von Flywheel als lokale Entwicklungsumgebung gearbeitet. Inzwischen bin ich wieder zurück zu MAMP gewechselt. Mehr dazu in diesem Artikel.

Eine Eigenschaft von Local, die mir besonders gut gefiel, war der Volumes Manager. Damit konnte man Themes und Plugins für alle Hosts zentral verwalten. Alle lokalen Sites und alle WordPress-Installationen greifen dann auf dieselben Themes und Plugins zu. Das ist zum Entwickeln sehr praktisch, weil es keine Doubletten gibt und keine Verwirrung mit Versionen.

Diese Funktion kann man auch in MAMP nachbilden. Man muss dafür ins Terminal wechseln, aber was man dort tun muss, ist denkbar einfach.

  1. Plugins und Themes an zentraler Stelle ablegen.
    In meinem Fall ist das der Ordner sites
  2. Im Terminal zum Verzeichnis navigieren, in der die lokalen Sites liegen, die mit MAMP verwaltet werden.
    Bei mir ist es das Verzeichnis sites und ich navigiere dort hin mit cd sites
  3. Einen Symlink für das Theme-Verzeichnis setzen
    ln -s ~/Sites/themes ~/Sites/name-des-projekts/wp-content
  4. Einen Symlink für das Plugin-Verzeichnis setzen
    ln -s ~/Sites/plugins ~/Sites/name-des-projekts/wp-content

Im wp-content-Verzeichnis des Projekts erscheint dann jeweils ein Alias des zentralen Theme- bzw. Plugin-Verzeichnisses.

Damit es keine Fehlermeldung gibt, muss man die Verzeichnisse themes und plugins im wp-content-Verzeichnis vor der Aktion umbenennen. Es reicht ein kleiner underscore vor dem Namen, z.B. so: _themes.

UPDATE

Es ist auch denkbar, die Sprachdateien zentral zu verwalten. Standardmäßig liegen die Sprachdateien in einem Verzeichnis languages innerhalb des Verzeichnisses des jeweilen Themes oder Plugins.
Wenn man an den Sprachdateien etwas ändert, werden die Dateien beim nächsten Update wieder überschrieben und die Änderungen gehen verloren.

Das lässt sich verhindern, indem man die Sprachdateien in das Verzeichnis wp-content auslagert. Dort heisst das Verzeichnis dann auch wieder languages, aber es hat noch zwei Unterverzeichnisse, eines für plugins und eines für themes:

wp-content
– languages
–– plugins
–– themes

In den beiden Verzeichnissen themes und plugins können alle Sprachdateien sicher gelagert werden.

Vorausgesetzt, in meinem Verzeichnis sites gibt es neben den beiden Verzeichnissen für Themes und Plugins nun auch ein zentrales Verzeichnis für die Sprachdateien namens languages, dann sähe der Befehl für den Symlink für das zentrale Sprachdateien-Verzeichnis so aus:
ln -s ~/Sites/languages ~/Sites/name-des-projekts/wp-content

WICHTIG
Die Sprachdateien dürfen nicht – wie im Theme-Verzeichnis – einfach de_DE.po heissen. Sonst wäre ja nicht klar, welches Theme oder Plugin gemeint ist. Die Dateinamen müssen mit dem Slug* des Themes/Plugins beginnen, also z.B. so
twentythirteen-de_DE.po

*Der Slug/die Textdomain steht z.B. im Head der style.css

(Vielen Dank, Bego, für die Anregung)

Hat Dir der Artikel weitergeholfen?

Kommentare, die nichts mit dem jeweiligen Artikel zu tun haben, oder die (weitgehend) inhaltslos sind und keinen Mehrwert für andere Leserinnen und Leser bieten, veröffentlichen wir nicht.

3 Kommentare zu “MAMP: WordPress-Themes und Plugins über Symlinks zentral verwalten

  • Hallo Kirsten, Danke für den Tipp. Eine Frage dazu: sollte das Verzeichnis languages nicht auch gleich zentral abgelegt werden? In dem Verzeichnis sind nicht nur die Übersetzungen des Core, sondern neuerdings auch von vielen Themes und Plugins aus dem WordPress-Verzeichnis. Das würde unnötige Aktualisierungen der Übersetzung vermeiden.

    • Hallo, Bego,

      das ist ein interessanter Gedanke! Und einen eigenen Artikel wert.
      Wir meinen schon dasselbe?
      Ich meine den Speicherort des languages-Verzeichnises. Per Default ist das das Theme- bzw. Plugin-Verzeichnis. Dadurch sind Änderungen in den Sprachdateien nach jedem Update perdu. Wenn man die languages-Files zentral im wp-content-Verzeichnis speichert, bleiben die Änderungen erhalten.
      Hm. Müsste man auch per Terminal-Befehl rumschieben können.

      Schöne Grüße

      Kirsten

Schreibe einen Kommentar

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