Hier ist eine schrittweise Anleitung zur Einrichtung eines Workflows für die Bereitstellung mehrerer WordPress-Themen mit Visual Studio Code (VSCode):
• Richten Sie eine lokale XAMPP-Installation und eine lokale WordPress-Installation ein.
• Öffnen Sie die lokale WordPress-Installation in VSCode.
• Für jedes WordPress-Thema, das Sie separat verwalten und bereitstellen möchten:
• Erstellen Sie ein neues Verzeichnis für das Thema innerhalb des wp-content/themes-Verzeichnisses.
• Kopieren Sie die Dateien für das Thema in das neue Verzeichnis.
• Erstellen Sie in VSCode einen neuen Arbeitsbereich für das Thema, indem Sie auf "Datei" > "Ordner zum Arbeitsbereich hinzufügen" klicken und das Verzeichnis des Themas auswählen.
• Initialisieren Sie ein Git-Repository im Verzeichnis des Themas, indem Sie mit der rechten Maustaste auf das Verzeichnis des Themas in der Explorer-Ansicht klicken und "Öffnen in Git Bash" auswählen. Führen Sie dann den folgenden Befehl in der Git Bash-Terminal aus:
git init
Erstellen Sie ein Remote-Repository für das Theme auf einem Hosting-Dienst wie GitHub.
• Öffnen Sie in VSCode die Ansicht "Source Control", indem Sie auf das Symbol "Source Control" in der linken Aktivitätsleiste klicken. Klicken Sie dann in der Ansicht "Source Control" auf das "+"-Symbol, um ein neues Repository zu erstellen. Wählen Sie "Initialisiere dieses Repository mit einem README".
• Geben Sie im Terminal folgenden Befehl ein, um das Remote-Repository für das Git-Repository des Themes festzulegen:
git remote add origin [repository-url]
Geben Sie im Terminal folgenden Befehl ein, um die Dateien des Themes in das Remote-Repository zu übertragen:
git push -u origin master
Für jedes Theme erstellen Sie dann eine .env-Datei im Stammverzeichnis des Theme-Ordners. Diese Datei sollte umgebungsspezifische Einstellungen enthalten, wie z.B. die URL des Produktions-Servers. Der Inhalt der Datei sollte etwa so aussehen:
PRODUCTION_URL=https://production-server.com/wp-content/themes/[theme-name]
Erstelle ein Skript, wie zum Beispiel ein Bash-Skript, das den Prozess der Bereitstellung des Themes auf dem Produktions-Server automatisiert. Das Skript sollte folgende Aufgaben erledigen:
• Die umgebungsspezifischen Einstellungen aus der .env-Datei lesen.
• Das entfernte Repository für das Theme klonen.
• Den Inhalt des geklonten Repositorys in das Verzeichnis des WordPress-Themes auf dem Produktions-Server kopieren.
Hier ist ein Beispiel dafür, wie das Skript aussehen könnte:
#!/bin/bash
# Read environment variables from .env file
export $(cat .env | xargs)
# Clone the remote repository
git clone [repository-url]
# Copy the contents of the cloned repository to the production directory
rsync -avz [cloned-repository-directory] $PRODUCTION_URL
• In VSCode, bind the shell script to a custom command in the command palette: Add a new custom command in the keybindings.json file, as follows:
{
"key": "f5",
"command": "workbench.action.terminal.runSelectedText",
"args": {
"script": "path/to/deploy-script.sh"
}
}
Ersetzen Sie bitte den Platzhalter "path/to/deploy-script.sh" durch den tatsächlichen Pfad zu Ihrem erstellten Shell-Skript.
• Speichern Sie die Datei keybindings.json.
Indem Sie in VSCode die F5-Taste drücken, führen Sie das Shell-Skript aus und können so das Theme auf dem Produktions-Server bereitstellen. Diese Einrichtung ermöglicht es Ihnen, mehrere WordPress-Themes effizient zu verwalten und jedes Theme auf einem anderen Produktions-Server auf eine ausgefeiltere Weise bereitzustellen – und das alles mithilfe von VSCode und Git.
Sie haben auch die Möglichkeit, Umgebungsdateien einzurichten, um die Datenbank für ein bestimmtes WordPress-Theme anzupassen. Hierbei handelt es sich um eine bewährte Methode:
• Legen Sie für jedes WordPress-Theme eine separate Umgebungsdatei an.
• Definieren Sie in jeder Umgebungsdatei die spezifischen Datenbank-Anmeldeinformationen, die für das jeweilige Theme benötigt werden.
• Fügen Sie in Ihrer wp-config.php-Datei die entsprechende Umgebungsdatei auf Grundlage des aktiven Themes hinzu. Mithilfe der Funktion get_template_directory() können Sie das Verzeichnis des aktiven Themes ermitteln und die zugehörige Umgebungsdatei laden.
So könnte dies in Ihrer wp-config.php-Datei aussehen:
$active_theme = basename(get_template_directory());
switch ($active_theme) {
case 'theme1':
include 'env/theme1.php';
break;
case 'theme2':
include 'env/theme2.php';
break;
// add more cases for each theme
default:
include 'env/default.php';
break;
}
// ... rest of the wp-config.php file
In dem genannten Beispiel enthält die Variable $active_theme den Namen des aktiven Themes, der durch die Funktion get_template_directory() bestimmt wird. Die Switch-Anweisung fügt dann die entsprechende Umgebungsdatei basierend auf dem aktiven Theme ein.
Auf diese Weise können Sie unterschiedliche Datenbanken für jedes WordPress-Theme verwalten, ohne jedes Mal die Datenbank-Anmeldeinformationen in der wp-config.php-Datei manuell umschalten zu müssen, wenn Sie das Theme wechseln möchten.
Hier ist ein Beispiel dafür, wie du deine wp-config.php-Dateien für lokale, Entwicklungs- und Produktionsumgebungen einrichten kannst:
Erstellen Sie drei separate wp-config.php-Dateien für jede Umgebung:
- wp-config-local.php
- wp-config-dev.php
- und wp-config-prod.php.
Definieren Sie in jeder der umgebungsspezifischen wp-config.php-Dateien die notwendigen Datenbankeinstellungen und andere Konfigurationsoptionen für diese Umgebung. Zum Beispiel:
// wp-config-local.php
define('DB_NAME', 'local_db_name');
define('DB_USER', 'local_db_user');
define('DB_PASSWORD', 'local_db_password');
define('DB_HOST', 'localhost');
// wp-config-dev.php
define('DB_NAME', 'dev_db_name');
define('DB_USER', 'dev_db_user');
define('DB_PASSWORD', 'dev_db_password');
define('DB_HOST', 'dev_db_host');
// wp-config-prod.php
define('DB_NAME', 'prod_db_name');
define('DB_USER', 'prod_db_user');
define('DB_PASSWORD', 'prod_db_password');
define('DB_HOST', 'prod_db_host');
In Ihrer Haupt-wp-config.php-Datei verwende Sie einfach eine if-Anweisung, um festzustellen, in welcher Umgebung Sie sich derzeit befinden, und fügen an entsprechender Stelle die entsprechende umgebungsspezifische wp-config.php-Datei ein:
if ( file_exists( dirname( __FILE__ ) . '/wp-config-local.php' ) ) {
include( dirname( __FILE__ ) . '/wp-config-local.php' );
} elseif ( file_exists( dirname( __FILE__ ) . '/wp-config-dev.php' ) ) {
include( dirname( __FILE__ ) . '/wp-config-dev.php' );
} else {
include( dirname( __FILE__ ) . '/wp-config-prod.php' );
}
in diesem Beispiel wird je nach vorhandenen Dateien entschieden, welche Konfigurationsdatei verwendet wird. Zuerst wird geprüft, ob die Datei wp-config-local.php existiert. Wenn ja, wird sie verwendet. Falls nicht, wird überprüft, ob wp-config-dev.php vorhanden ist. Ist auch diese nicht vorhanden, wird wp-config-prod.php als Standard verwendet.
Durch diese Herangehensweise können Sie schnell zwischen den verschiedenen Umgebungen wechseln, indem Sie einfach die entsprechende wp-config.php-Datei einbinden. Stellen Sie sicher, dass die umgebungsspezifischen Dateien sicher außerhalb Ihres Webstammverzeichnisses gespeichert sind.
Diese Methode ermöglicht Ihnen eine effiziente Verwaltung Ihrer verschiedenen WordPress-Installationen.