Skip to content

Alt om WordPress, webutvikling — og mer til

Hvilket programmeringsspråk er WordPress skrevet i

Hvilket programmeringsspråk er WordPress skrevet i

Når folk spør hvilket språk WordPress er skrevet i, ligger det nesten alltid et annet spørsmål bak: «Hvor bør jeg begynne hvis jeg vil forstå det?» Det er riktig tilnærming.

WordPress-utvikling er verken magi eller en lukket klubb. Det er en stakk med fem teknologier, hvorav fire er kjent for enhver frontend-utvikler. Den femte, PHP, driver kjernen, temaer, utvidelser og all serverlogikk. Men du skal ikke lære «ett språk». Du må forstå hvordan de spiller sammen og i hvilken rekkefølge du bør lære dem.

💡 Rask oversikt:

  • WordPress-kjernen er skrevet i PHP. Data ligger i MySQL. Dette er serversiden, skjult for brukeren.
  • I nettleseren bygges siden av HTML (struktur), CSS (stil) og JavaScript (interaktivitet): tre frontend-teknologier.
  • Lær stakken i denne rekkefølgen: HTML, så CSS, så PHP, så JavaScript, så SQL. Fra enkelt til komplekst.

PHP, motoren i WordPress

WordPress-kjernen består av titusenvis av linjer med PHP-kode. Når en nettleser ber om en side, kjører serveren PHP-skript, henter data fra databasen, sender dem gjennom temamaler og returnerer ferdig HTML. Brukeren ser aldri PHP-koden; de mottar den allerede sammensatte siden.

Eksempel på PHP-kode med variabler og betinget logikk

PHP i WordPress fungerer som en dirigent: det «orkestrerer» HTML-en, kaller databasefunksjoner, setter inn innstillinger fra administrasjonspanelet og setter sammen den endelige siden. Enhver temamal er en PHP-fil med innebygd HTML. Enhver utvidelse er en PHP-fil som kobler seg på kjernen via add_action og add_filter.

Uten PHP vil WordPress rett og slett ikke kjøre. Så svaret på tittelspørsmålet er klart: WordPress er skrevet i PHP. Men det er ikke det eneste språket en utvikler trenger.

HTML, skjelettet på hver side

HTML er ikke et programmeringsspråk; det er et markeringsspråk. Det «beregner» ikke; det beskriver struktur: hvor overskriften er, hvor avsnittet er, hvor bildet er, hvor knappen er. Nettleseren leser HTML-markering og gjør den om til en synlig side.

I WordPress lagres ikke HTML som separate filer. Temamaler er skrevet i PHP, men de produserer HTML. Når du redigerer en side i Gutenberg, lagrer redigeringsverktøyet innhold i databasen, men besøkende mottar fortsatt HTML.

1<html>
2 <head>
3 <meta charset="UTF-8" />
4 <title>Page title in search</title>
5 </head>
6 <body>
7 <h1>Page heading</h1>
8 <p class="intro">Introduction paragraph text</p>
9 </body>
10</html>

Nøkkelegenskapen til HTML er tagger. Hver tagg har sin rolle. <h1> er en overskrift på første nivå. <p> er et avsnitt. <a> er en lenke. En avsluttende tagg med skråstrek (</h1>) viser hvor elementet slutter. Noen tagger, som <meta> eller <img>, er selvlukkende: de trenger ikke et par.

HTML-tagger kan ha klasser: class="intro" i eksempelet over. En klasse er et «anker» for CSS. Nettleseren finner alle elementer med den klassen og bruker stiler fra CSS-filen.

Kort sagt: HTML definerer hva brukeren ser på siden. Men hvordan det ser ut, bestemmes av CSS.

CSS, klesdrakten til et nettsted

CSS står for Cascading Style Sheets. Hvis HTML gir siden struktur, gir CSS den farger, fonter, mellomrom, blokkplassering og mobiltilpasning.

CSS-kode med regler for HTML-klasser

Uten CSS ser ethvert nettsted ut som et hvitt ark med svart tekst og blå lenker. Stiler for overskrifter, kolonnenett, animasjoner, skygger, avrundede hjørner: alt dette er CSS.

I WordPress ligger CSS i temafiler (vanligvis style.css). Hvert tema må ha denne filen; uten den vil ikke WordPress gjenkjenne temaet. Utvidelser kan også laste sine egne CSS-filer gjennom mekanismen wp_enqueue_style().

1.intro {
2 color: #325050;
3 background: #fff;
4 font-family: 'Libre Baskerville', serif;
5 font-size: 0.85rem;
6 line-height: 1.6;
7}

Punktumet foran .intro betyr: «bruk disse stilene på ALLE elementer med klassen intro.» Det er kaskaden: én klasse, mange elementer på tvers av forskjellige sider. Endre regelen ett sted, så oppdateres hele nettstedet.

For moderne WordPress-utvikling må du kunne ikke bare grunnleggende CSS, men også responsive oppsett ved hjelp av media queries. Temaer uten responsivitet overlever ikke i dag; Google rangerer nettsteder med en mobil-først-tilnærming.

JavaScript, sideatferd

JavaScript er det eneste av de fem som WordPress teknisk sett kan fungere uten. Et tema kan fungere fullt ut uten en eneste linje JS. Men i praksis klarer ingen moderne side seg uten.

JavaScript håndterer det som skjer etter at siden er lastet: nedtrekksmenyer, modale vinduer, lat lasting av bilder, skjemavalidering før innsending, temabytte uten omlasting. Alt som reagerer på brukerhandlinger (klikk, rulling, tekstinntasting) er avhengig av JS.

1(function($) {
2 var navMenu = '.primary-navigation';
3 var pageContent = '.main-content';
4 var gap = parseInt($('html').css('font-size'), 10) * 2;
5
6 function setPageMin() {
7 var height = $(navMenu).height();
8 $(pageContent).css('min-height', height + gap);
9 }
10
11 $(window).on('load', function() {
12 setPageMin();
13 $(window).on('resize', function() {
14 setTimeout(setPageMin, 120);
15 });
16 });
17})(jQuery);

Dette jQuery-eksempelet viser en typisk oppgave: beregn navigasjonshøyden og sett en minimumshøyde for innholdsområdet slik at siden ikke «hopper». Koden kjøres ved lasting og ved hver endring av vindusstørrelse.

Men JavaScripts største innvirkning på WordPress kom med Gutenberg, blokkredigeringsverktøyet skrevet i React. Hele grensesnittet for innleggsredigering, alle blokker (avsnitt, overskrift, galleri, kolonner), er en JavaScript-applikasjon som kjører inne i WordPress-administrasjonen.

Derfor er en WordPress-utvikler som ignorerer JavaScript fullstendig, ganske begrenset i dag. Du kan bygge et tema, men du kan ikke skrive egendefinerte Gutenberg-blokker uten JS.

SQL og MySQL, der data bor

Innlegg, sider, innstillinger, brukere, kommentarer, metafelter: alt WordPress-innhold lagres i en MySQL- (eller MariaDB-) database. PHP kommuniserer med databasen gjennom SQL-spørringer, men utviklere trenger sjelden å skrive «rå» SQL.

WordPress tilbyr sitt eget abstraksjonslag, wpdb-klassen. Kall som get_posts(), update_post_meta() og WP_Query inneholder allerede ferdige SQL-spørringer internt. Dette beskytter mot vanlige feil og SQL-injeksjon, så lenge du bruker innebygde metoder i stedet for å skrive manuelle spørringer.

Likevel er det nyttig å forstå SQL: når et prosjekt vokser til titusenvis av innlegg og spørringer begynner å gå tregt, er evnen til å lese EXPLAIN og finne en manglende indeks uvurderlig.

Hvordan et WordPress-tema er strukturert

Et WordPress-tema er ikke en monolitt. Det er et sett med PHP-filer, hver ansvarlig for en forskjellig sidetype. index.php håndterer hjemmesiden og alt som standard. single.php håndterer enkeltinnlegg. page.php håndterer statiske sider. archive.php håndterer kategoriarkiver. WordPress velger automatisk riktig mal basert på et hierarki kalt Template Hierarchy.

Inne i hver mal: standard PHP-funksjoner fra WordPress-kjernen. the_title() skriver ut tittelen. the_content() skriver ut innleggsteksten. wp_nav_menu() skriver ut menyen. Den fullstendige listen er tilgjengelig i WordPress-dokumentasjonen. HTML og PHP blandes i temaer: åpne <?php, kall en funksjon, lukk ?>, fortsett med HTML. Det er ikke ideell arkitektur etter moderne standarder, men det driver 40%+ av nettsteder på internett.

For å lage et tema må du kunne PHP, HTML og CSS som et minimum. JavaScript er valgfritt, men nyttig for interaktive elementer (mobilmeny, faner, trekkspill).

Hvordan en WordPress-utvidelse er strukturert

En utvidelse er en PHP-fil (minst én) med en spesiell kommentaroverskrift i begynnelsen. I denne kommentaren leser WordPress navn, versjon og forfatter: alt du ser i administrasjonen på utvidelsessiden.

En utvidelse samhandler med kjernen gjennom hooks. Det finnes to typer:

  • Actions (add_action) kjører kode på bestemte tidspunkter: når en side lastes, når et innlegg lagres, når en utvidelse aktiveres.
  • Filters (add_filter) fanger opp og endrer data: endre tekst, legg til en CSS-klasse, erstatt en URL.

Den enkleste utvidelsen er bokstavelig talt noen få linjer:

1<?php
2/**
3 * Plugin Name: Greeting Plugin
4 * Description: Adds a greeting at the end of every post.
5 * Version: 1.0
6 */
7
8function my_greeting($content) {
9 if (is_single()) {
10 $content .= '<p>Thank you for reading our blog!</p>';
11 }
12 return $content;
13}
14add_filter('the_content', 'my_greeting');

Ser du add_filter? Det er nøyaktig slik WordPress-utvidelser utvider funksjonalitet: ikke ved å redigere kjernen (noe som er strengt forbudt), men ved å fange opp data gjennom hooks. Det er grunnen til at WordPress-oppdateringer ikke ødelegger tilpasset kode, så lenge utvikleren brukte det offisielle API-et i stedet for å endre kjernefiler.

WordPress og Node.js: ingen erstatning på vei

Rykter om at WordPress «bytter til Node.js» har sirkulert siden 2015, da Calypso dukket opp. Calypso er et skrivebordsadministrasjonsgrensesnitt for WordPress.com, skrevet i Node.js og React. Så kom Gutenberg, også i React. JavaScript ble mer synlig, og noen konkluderte med at PHP var på siste vers.

Det stemmer ikke. Den offisielle WordPress-posisjonen er uendret: kjernen forblir på PHP. Ingen planlegger å omskrive en 20 år gammel kodebase i Node.js; det ville være meningsløst og ville bryte bakoverkompatibilitet med tusenvis av temaer og utvidelser.

Det som faktisk skjedde: WordPress ble en hybrid plattform. Backend: PHP og MySQL. Admin-frontend: JavaScript (React). Offentlig side: HTML, CSS og litt JS. REST API, innebygd i kjernen siden versjon 4.7, lar JavaScript-applikasjoner kommunisere med WordPress uten sideomlastinger. Dette åpnet døren for hodeløse løsninger, der WordPress fungerer som en hodeløs CMS-backend mens frontenden bygges på Next.js eller Gatsby.

Konklusjon: Å lære Node.js og React for WordPress-arbeid er nyttig, men ikke i stedet for PHP. Lær dem ved siden av PHP.

Hvor du bør begynne å lære WordPress

Læringsstien går fra enkelt til komplekst, fra det brukeren ser i nettleseren til det som skjer på serveren.

Trinn 1: HTML. Uten forståelse for tagger, attributter og dokumentstruktur er det ingen vits i å gå videre. HTML er nettets alfabet. Heldigvis kan det grunnleggende læres på en uke.

Trinn 2: CSS. Når siden har struktur, trenger den stil. Lær boksmodellen, posisjonering, flexbox, grid og media queries. Uten responsive oppsett kan du ikke bygge et WordPress-tema.

Trinn 3: PHP. Nå, den viktigste delen. Lær PHP i WordPress-kontekst: hvordan kjernefunksjoner fungerer, hva WP_Query-løkken er, hvordan malhierarkiet er strukturert. Generisk «PHP generelt» er nødvendig som et fundament, men fokuser på det du faktisk vil møte i temaer og utvidelser.

Trinn 4: JavaScript. Start enkelt: jQuery for DOM-manipulasjon og hendelseshåndtering. Deretter moderne JavaScript (ES6+), etterfulgt av React for egendefinerte Gutenberg-blokker.

Trinn 5: SQL. Ikke skriv spørringer manuelt med mindre det er absolutt nødvendig, men vær i stand til å lese og forstå hva som skjer under panseret på WP_Query. På store prosjekter vil dette spare timer med feilsøking.

Rekkefølgen er viktig. Hvis du starter med JavaScript mens du ignorerer PHP, vil du kunne skrive Gutenberg-blokker, men ikke kunne bygge et tema. Hvis du starter med PHP uten HTML/CSS, vil du ha serverkode, men ingenting å vise brukeren. Følg stien, og i løpet av noen måneder vil du kunne bygge et komplett tema fra bunnen av.

⁉️🤔 Ofte stilte spørsmål

Må jeg kunne alle fem språkene for å lage et WordPress-tema?

For å bygge et enkelt tema er PHP, HTML og CSS nok. JavaScript er nødvendig for interaktive elementer: mobilmeny, slider, lat lasting. SQL er ikke essensielt i starten siden ferdige kjernefunksjoner skjuler databasespørringer. Men for komplekse prosjekter og optimalisering klarer du deg ikke uten JS og SQL.

Kan jeg bli WordPress-utvikler med bare JavaScript-kunnskaper?

Nei. Kjernen, temaer og utvidelser kjører på PHP. JavaScript er nyttig for Gutenberg-blokker og frontend-interaktivitet, men uten PHP kan du ikke lage selv den enkleste utvidelsen. JavaScript og PHP i WordPress er partnere, ikke konkurrenter.

Stemmer det at WordPress snart vil bytte fullstendig til JavaScript?

Nei. Den offisielle posisjonen til WordPress-teamet: kjernen forblir på PHP. JavaScript utvider mulighetene (Gutenberg, REST API), men erstatter ikke PHP på serversiden. Bekymringer oppsto på grunn av Reacts økende tilstedeværelse i administrasjonspanelet, men det er evolusjon, ikke plattformerstatning.

Hvor lang tid vil det ta å lære WordPress-utvikling fra bunnen av?

Med en sekvensiell tilnærming (HTML → CSS → PHP → JS → SQL) og daglig praksis kan du forvente 4 til 8 måneder for å nå nivået der du trygt kan bygge et tilpasset tema og en enkel utvidelse. De første to ukene er bare HTML og CSS. Etter det vil PHP ta mesteparten av tiden din fordi alt avhenger av det.

Må jeg lære jQuery, eller kan jeg gå rett til React?

jQuery brukes fortsatt i de fleste WordPress-temaer og er innebygd i kjernen; å kunne det hjelper når du vedlikeholder eldre prosjekter. Men for ny utvikling (spesielt Gutenberg-blokker), lær React. Start med moderne JavaScript (ES6+), deretter React: det er den mer fremtidssikre veien.

Er det verdt å lære WordPress i 2026

Kort svar: ja. WordPress driver 43%+ av alle nettsteder på internett, og dette tallet har holdt seg stabilt i området 43-44% de siste flere årene. Etterspørselen etter utviklere som forstår mer enn «klikk på installer tema-knappen» og kan skrive tilpasset funksjonalitet i PHP, forblir konsekvent høy.

Nøkkelen er riktig rekkefølge. HTML og CSS gir deg et fundament på et par uker. PHP åpner tilgang til kjernen, hooks og utvidelser. JavaScript tilfører interaktivitet og vekstpotensial (Gutenberg, hodeløs, React). SQL fullfører bildet på databasenivå.

Start med det første trinnet, så vil du om seks måneder se WordPress ikke som en «nettsidebygger», men som en kraftig plattform du kontrollerer på alle nivåer, fra HTML-tagg til SQL-indeks.