Astro is een modern frontend framework dat ontwikkelaars in staat stelt om snelle en efficiënte statische websites te bouwen. Met Astro kunnen ontwikkelaars gebruikmaken van de kracht van moderne JavaScript frameworks zoals React, Vue.js en Svelte om dynamische gebruikersinterfaces te maken terwijl ze statische HTML-, CSS- en JavaScript-bestanden produceren tijdens het bouwproces.
In combinatie met WordPress als headless content management systeem (CMS) maakt Astro een naadloze integratie van backend API’s en frontend code mogelijk, waardoor statische websites met dynamische inhoud efficiënt kunnen worden ontwikkeld. Deze aanpak biedt verschillende voordelen.
Statische websites die zijn gemaakt met Astro en een WordPress backend hebben superieure prestaties. Ze kunnen direct vanuit een content delivery network (CDN) geleverd worden, waardoor er geen server-side verwerking nodig is en ze sneller laden en de gebruikerservaring soepeler is.
Deze handleiding leidt je door het proces van het opzetten van een statische site met Astro, gehost op Kinsta’s Statische Site Hosting dienst en met WordPress als backend.
De rol van WordPress als een headless CMS
Een headless CMS, zoals WordPress, scheidt de lagen van contentbeheer en levering. Het stelt de backend in staat om content te onderhouden en te beheren terwijl een ander systeem, zoals Astro, de frontend afhandelt.
WordPress dient als een opslagplaats voor content en levert gegevens aan de frontend, die de content weergeeft aan gebruikers via een API. Deze architectuur vergroot de flexibiliteit doordat je content kunt hergebruiken voor verschillende outputs, waardoor WordPress gebruikers een vertrouwde contentbeheer-ervaring hebben.
Het loskoppelen van de frontend van de backend biedt ook meer flexibiliteit in frontend ontwerp en contentmigratie. Bovendien is de toegankelijkheid via API’s ook prima geregeld voor de content.
Je ontwikkelomgeving opzetten
Er zijn drie stappen die je moet volgen om je omgeving op te zetten:
- Installeer Astro.
- Maak een WordPress site.
- Maak een WordPress testomgeving.
Vereisten
Om deze tutorial te kunnen volgen, moet je ervoor zorgen dat je over het volgende beschikt:
- Basiskennis van HTML, CSS en JavaScript
- Node.js en npm (Node Package Manager) of yarn geïnstalleerd op je computer
- Een Kinsta account. Meld je aan om gratis een statische site te hosten en krijg toegang tot het MyKinsta dashboard.
Astro installeren
- Maak voor je project een nieuwe map en navigeer daarin.
- Maak een nieuw project door het onderstaande commando in je terminal uit te voeren:
npm create astro@latest
Deze stap produceert configuratieprompts. Stel ze in op basis van wat je wilt.
- Zodra het project met succes is aangemaakt, voer je
npm run dev
uit om de lokale ontwikkelserver op http://localhost:4321/ te starten.
Een WordPress site opzetten op Kinsta
Kinsta is een hoogwaardige WordPress hostingprovider die bekend staat om zijn intuïtieve interface en krachtige infrastructuur. Volg deze stappen om een WordPress site te maken op Kinsta.
- Klik op je MyKinsta dashboard op WordPress sites en dan Site maken.
- Selecteer de optie WordPress installeren en klik op Doorgaan.
- Geef een sitenaam op, selecteer een datacenterlocatie en klik op Doorgaan.
- Geef alle andere informatie op en klik op Doorgaan.
- Zodra je site is gemaakt, zou je het bericht “Je site is gemaakt!” moeten zien
Een WordPress testomgeving maken
Elke WordPress installatie bij Kinsta heeft de optie om een gratis testomgeving te maken, los van de eigenlijke productiesite. Dit is geweldig voor het testen van nieuwe WordPress versies, plugins, code en algemeen ontwikkelwerk.
De stappen voor het maken van een WordPress Staging omgeving op Kinsta zijn als volgt.
- Klik in de menubalk op Live en vervolgens op Nieuwe omgeving maken.
- Selecteer Standaard omgeving en klik op Doorgaan.
- Klik op Een bestaande omgeving klonen, geef een Omgevingsnaam op, selecteer Live voor de te klonen omgeving en klik op Doorgaan.
- Eenmaal uitgerold vind je de WordPress testomgeving in het Live menu.
WordPress integreren met Astro
Er zijn twee primaire methoden om WordPress te integreren met Astro: een REST API en GraphQL. Deze handleiding gebruikt de GraphQL aanpak.
Om WordPress te integreren met Astro, moet je:
- WPGraphQL installeren.
- Astro verbinden met WordPress.
WPGraphQL installeren
Installeer eerst de WPGraphQL plugin op je WordPress site voordat je GraphQL gebruikt om Astro ermee te verbinden.
- Selecteer je WordPress site op het MyKinsta dashboard.
- Klik in de menubalk op Test en vervolgens op Open WP Admin in de rechterbovenhoek.
- Geef de referenties op die je hebt gebruikt bij het maken van je WordPress site.
- Klik op het menu Plugins in de linker navigatiebalk.
- Klik op Nieuwe plugin toevoegen om de WPGraphQL plugin toe te voegen.
- Zoek naar “WPGraphQL”, klik op Install New om de WPGraphQL plugin te installeren en klik vervolgens op Activate.
- Om te testen of de WPGraphQL plugin die je hebt geïnstalleerd werkt zoals verwacht, open je het GraphQL menu op de navigatiebalk en klik je op GraphiQL IDE.
- Gebruik de volgende code in de GraphiQL IDE en klik linksboven op Run om de GraphQL query uit te voeren:
{ posts { nodes { slug excerpt title } } }
Deze GraphQL query haalt op efficiënte wijze de
slugs
,excerpts
, entitles
van berichten op van de WordPress site.Aan de linkerkant van de GraphiQL IDE kun je de lijst met berichten zien die de GraphQL query heeft opgeleverd. Je WordPress GraphQL endpoint is toegankelijk op
https://your_wordpress_staging_url/graphql
.
Astro verbinden met WordPress
Volg deze instructies om Astro met WordPress te verbinden:
- Maak een map met de naam graphql in de src-map van je Astro project.
- Maak een wordPressQuery.ts bestand in de graphql map.
- Gebruik de volgende code in je wordPressQuery.ts bestand. Zorg ervoor dat je
https://your_wordpress_staging_url/graphql
vervangt door je WordPress test URL.interface gqlParams { query: String; variables?: object; } export async function wpquery({ query, variables = {} }: gqlParams) { const res = await fetch('https://your_wordpress_staging_url/graphql', { method: "post", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ query, variables, }), }); if (!res.ok) { console.error(res); return {}; } const { data } = await res.json(); return data; }
Deze code definieert een interface
gqlParams
en een asynchrone functiewpquery
die GraphQL queries naar de WordPress site mogelijk maakt.
Je site ontwikkelen met Astro en WordPress
- Om een nieuwe statische pagina te maken in Astro, maak je een bestand met de naam blog.astro in de map src/pages.
- Plak de volgende code in het nieuw aangemaakte bestand:
--- import Layout from "../layouts/Layout.astro"; import { wpquery } from "../graphql/wordPressQuery"; const data = await wpquery({ query: ` { posts{ nodes{ slug excerpt title } } } `, }); --- <Layout title="Astro-WordPress Blog Posts"> <main> <h1><span class="text-gradient">Blog Posts</span></h1> { data.posts.nodes.map((post: any) => ( <> <h2 set:html={post.title} /> <p set:html={post.excerpt} /> </> )) } </main> </Layout> <style> main { margin: auto; padding: 1rem; width: 800px; max-width: calc(100% - 2rem); color: white; font-size: 20px; line-height: 1.6; } h1 { font-size: 4rem; font-weight: 700; line-height: 1; text-align: center; margin-bottom: 1em; } </style>
Deze code demonstreert hoe je de
wpquery
functie kunt gebruiken om gegevens van de WordPress site op te halen met GraphQL en deze te renderen op de Astro site. - Gebruik
npm run dev
om de lokale ontwikkelingsserver te starten en de nieuwste WordPress blogberichten op je Astro site te zien ophttp://localhost:4321/blog
.
Om dynamische routing voor individuele blogberichten te hanteren, moet je een combinatie gebruiken van Astro’s dynamische routes en WordPress GraphQL’s query variabelen. Door de post ID of slug door te geven als een query variabele, kun je dynamisch de pagina-inhoud voor elke blogpost genereren. Dit zorgt voor een meer gepersonaliseerde gebruikerservaring op je website.
Je statische site op Kinsta deployen
Zet nu je codes over naar de Git provider van je voorkeur (Bitbucket, GitHub of GitLab). Volg vervolgens deze stappen om je statische site op Kinsta te deployen:
- Klik in het MyKinsta dashboard op Statische sites en dan Site toevoegen.
- Autoriseer Kinsta met je Git provider.
- Selecteer een GitHub Repository en een Standaard branch. Geef een weergavenaam op voor je statische site en selecteer Automatisch deployen bij commit. Dit schakelt de automatische implementatie in van alle nieuwe wijzigingen in de repository. Klik op Doorgaan.
- In het onderdeel Build instellingen vult Kinsta automatisch alle velden in. Laat alles zoals het is en klik op Site maken.
- Ga naar je Astro site via de URL die als domein verschijnt op de overzichtspagina van je geïmplementeerde site. Je hebt toegang tot blogberichten via
https://your_kinsta_site_url/blog
.
Samenvatting
Er is van alles mogelijk met Astro en WordPress. De WordPress API kan worden gebruikt om toegang te krijgen tot verschillende gegevens van je site en om unieke gebruikssituaties te creëren met Astro.
Met Kinsta’s Managed WordPress Hosting krijg je toegang tot een robuuste infrastructuur, wereldwijd CDN, Edge Caching, meerdere datacenters en features van zakelijk niveau. Dit zorgt voor een snelle en veilige omgeving voor je WordPress site.
Bovendien kun je, wanneer je frontend frameworks zoals Astro gebruikt met headless WordPress, de statische bestanden ervan gratis hosten op Kinsta’s Statische Site Hosting. Dit betekent dat je alleen betaalt voor WordPress hosting, wat de efficiëntie en kosteneffectiviteit maximaliseert.
Wat vind jij van headless WordPress en Astro? Heb je hun potentieel al onderzocht om unieke oplossingen te creëren? Deel je ervaringen in het commentsectie hieronder.
Laat een reactie achter