
Postlights Headless WordPress + React Starter Kit ist ein automatisiertes Toolset, das drei Dinge dreht:
Sie können alles darüber in dieser praktischen Einführung lesen.
Was ist drinnen:
Allow-Origin Header und nützlichen Protokollierungsfunktionen für das einfache Debuggen.Fangen wir an.
Voraussetzung: Bevor Sie beginnen, müssen Sie Docker installiert. Unter Linux müssen Sie möglicherweise Docker-Compose separat installieren.
Docker Compose Builds und startet standardmäßig vier Container: db-headless , wp-headless , frontend & frontend-graphql :
docker-compose up -d
Warten Sie ein paar Minuten , bis Docker zum ersten Mal die Dienste erstellt. Nach dem ersten Bau sollte das Start nur einige Sekunden dauern.
Sie können der Docker -Ausgabe folgen, um den Erstellungsfortschritt und die Protokolle anzuzeigen:
docker-compose logs -f
Alternativ können Sie einige nützliche Docker -Tools wie Kitematic und / oder VSCODE Docker -Plugin verwenden, um Protokolle zu befolgen, Container und Bilder zu starten / stoppen / entfernen.
Optional: Sie können das Frontend lokal ausführen, während WordPress immer noch auf Docker ausgeführt wird:
docker-compose up -d wp-headless
cd frontend && yarn && yarn start
Sobald die Container ausgeführt werden, können Sie die React -Frontenden und den Backend WordPress Admin in Ihrem Browser besuchen.
Dieses Starter -Kit enthält zwei Frontend -Container:
frontend Container, der von der WP-REST 3000 API betrieben wirdfrontend-graphql Container von GraphQL, ausgesetzt am Port 3001 : http: // localhost: 3001So sieht der Frontend aus:

Sie können dem yarn start folgen, indem Sie den Befehl Docker-Compose- logs ausführen, gefolgt vom Containernamen. Zum Beispiel:
docker-compose logs -f frontend
Wenn Sie diesen Prozess neu starten müssen, starten Sie den Container neu:
docker-compose restart frontend
PS: Durchsuchen der nächsten. In einer Produktionsumgebung würde die Seitenbelastung erheblich verbessert werden.
Der wp-headless Container enthüllt Apache für Host-Port 8080 :
postlight / postlight )Dieser Container enthält einige Entwicklungstools:
docker exec wp-headless composer --help
docker exec wp-headless phpcbf --help
docker exec wp-headless phpcs --help
docker exec wp-headless phpunit --help
docker exec wp-headless wp --info
Apache/PHP-Protokolle sind über docker-compose logs -f wp-headless verfügbar.
Der db-headless Container enthält MySQL am Host-Port 3307 :
mysql -uwp_headless -pwp_headless -h127.0.0.1 -P3307 wp_headless
Sie können auch eine MySQL -Shell auf dem Behälter ausführen:
docker exec db-headless mysql -hdb-headless -uwp_headless -pwp_headless wp_headless
Um WordPress von Grund auf neu zu installieren, laufen Sie:
docker exec wp-headless wp db reset --yes && docker exec wp-headless install_wordpress
Um Daten aus einem MySQLDump mit mysql zu importieren, laufen Sie:
docker exec db-headless mysql -hdb-headless -uwp_headless -pwp_headless wp_headless < example.sql
docker exec wp-headless wp search-replace https://example.com http://localhost:8080
Sie können ein Plugin namens WP Migrate DB Pro verwenden, um eine Verbindung zu einer anderen WordPress -Installation herzustellen und Daten daraus zu importieren. (Eine Pro -Lizenz ist erforderlich.)
Zuerst setzen Sie MIGRATEDB_LICENSE & MIGRATEDB_FROM in .env und erstellen Sie Container neu, um die Änderungen zu ergreifen.
docker-compose up -d
Führen Sie dann das Importskript aus:
docker exec wp-headless migratedb_import
Wenn Sie fortgeschrittenere Funktionen benötigen, lesen Sie die verfügbaren WP-CLI-Befehle:
docker exec wp-headless wp help migratedb
Zu diesem Zeitpunkt können Sie im WordPress -Administrator benutzerdefinierte Felder einrichten und gegebenenfalls benutzerdefinierte REST -API -Endpunkte im postlight -Headpress -Starter -Thema erstellen.
Der primäre Themencode befindet sich in wordpress/wp-content/themes/postlight-headless-wp .
Sie können auch die GraphQL-API ändern und erweitern, ein Beispiel für das Erstellen eines benutzerdefinierten Typs und die Registrierung eines Resolvers finden Sie in: wordpress/wp-content/themes/postlight-headless-wp/inc/graphql .
Um WordPress wp-config.php Benutzer die Möglichkeit zu geben, sich über die Frontend-App anzumelden
Für die Rest -API:
define('JWT_AUTH_SECRET_KEY', 'your-secret-here');
Für die GraphQL -API:
define( 'GRAPHQL_JWT_AUTH_SECRET_KEY', 'your-secret-here');
Lesen Sie die Dokumentation JWT REST und JWT GraphQL für weitere Informationen.
Denken Sie daran, Ihren Code während des Weges zu finsen.
Um WordPress -Themenmodifikationen zu verleihen, können Sie Php_CodesNiffer wie folgt verwenden:
docker exec -w /var/www/html/wp-content/themes/postlight-headless-wp wp-headless phpcs -v .
Möglicherweise versuchen Sie auch, PHPCS -Fehler zu automatisieren:
docker exec -w /var/www/html/wp-content/themes/postlight-headless-wp wp-headless phpcbf -v .
Um die JavaScript -Apps auszurotten und zu formatieren, sind sowohl schönere als auch eslint -Konfigurationsdateien enthalten.
Die meisten WordPress -Hosts hosten auch keine Knotenanwendungen aus. Wenn es also Zeit ist, live zu gehen, müssen Sie einen Hosting -Service für den Frontend finden.
Aus diesem Grund haben wir die Frontend -App in einem Docker -Container verpackt, der an einen Hosting -Anbieter mit Docker -Support wie Amazon Web Services oder Google Cloud -Plattform bereitgestellt werden kann. Für eine schnelle, leichtere Alternative lesen Sie jetzt.
Breaking Change Alert - Docker
Wenn Sie das Projekt bereits eingerichtet und dann auf ein neuer als 99b4d7b aktualisiert haben, müssen Sie den Installationsprozess erneut durchlaufen, da das Projekt nach Docker migriert wurde. Sie müssen auch MySQL -Daten in den neuen MySQL DB -Container migrieren.
Docker Caching
In einigen Fällen müssen Sie das wp-headless Bild (nicht nur der Behälter) löschen und wieder aufbauen.
CORS -Fehler
Wenn Sie Ihre WordPress-Installation bereitgestellt haben und CORS-Probleme haben, sollten Sie mit Ihrer Frontend Origin URL Ihre Frontend Origin URL aktualisieren /wordpress/wp-content/themes/postlight-headless-wp/inc/frontend-origin.php -content/themes/postlight-headless-wp/inc/frontend-origin.php aktualisieren.
Sehen Sie noch etwas, das Sie hier hinzufügen möchten? Bitte senden Sie eine Pull -Anfrage!
? Ein Laborsprojekt von Ihren Freunden bei Postlight. Happy Coding!