Miniatlas bygger på ett för mig nytt sätt att använda WordPress som jag tänkte dela med mig av nedan. Egentligen passar inte denna typ av tekniktunga artiklar riktigt in här på bloggen, men jag tänkte göra ett undantag då jag verkligen skulle vilja höra vad andra programmerare tycker om denna teknik.
WordPress som presentationsmotor för databaser
Miniatlas började i mycket som en sandlåda där jag experimenterade med ett antal olika tekniker. Bland annat utvecklade jag en teknik för att skapa sidor i poster (fakta, karta och foton är t.ex. undersidor till en och samma post) och använde Google Translates API för att automatiskt översätta namnen på alla världens länder och huvudstäder till Svenska.
Det stora arbetet med Miniatlas har dock legat i att skapa en databas (framöver geo-databasen) med världens alla länder och huvudstäder samt tillhörande data som befolkning, area och koordinater. Geo-databasen innehåller en hel del information som jag inte använder på Miniatlas men som kommer komma till användning i framtida projekt. Databasen har vuxit under projektets gång och det är faktiskt riktigt roligt att fylla på och förbättra innehållet i den. Jag har använt en mängd olika APIer, delar av andra databaser och ren manuell redigering för att förbättra och bygga ut databasen, framöver kommer jag jobba för att göra den unik i sitt slag med sin mix av ren data och (framtida) användargenererat innehåll.
När väl grunden till databasen för vad som skulle bli Miniatlas var klar använde jag mig av den underbara WordPress-funktionen “wp_insert_post“. Med denna i kombination av ett script fyllde jag enkelt en WordPress-installation med poster ur datan i min geo-databas. Mer konkret skapades en bloggpost av varje enskild rad i geo-databasen samt en länktabell mellan raderna i geo-databasen och mina WordPress-poster.
Nu har vi en färdig WordPress-installation med alla världens länder och huvudstäder som poster, snyggt ordnade enligt instruktionerna i scriptet som skapade dem. Då jag velat undvika att upprepa samma information på flera platser är WordPress-posterna i stort sett bara enkla skal med rubrik och permalänk, all annan data hämtas dynamiskt ur geo-databasen.
För att kunna presentera data från geo-databasen i anslutning till WordPress-posterna gjorde jag sedan en lätt modifierng av WordPress funktion för att läsa in poster. Detta görs genom att jag vid varje anrop ser till att koppla på den rad i min geo-databas som är kopplad till den efterfrågade posten (en så kallad JOIN i SQL-syntax). Sedan är det fritt fram att skapa funktioner som använder sig av informationen i geo-databasen för att t.ex. presentera vädret, visa platsens koordinater på en karta eller skriva ut befolkningen i ett visst land.
WordPress eller egen plattform?
Vad är då fördelen med använda sig av WordPress istället för att skapa en egen lösning för presentationen? Utöver att spara en otrolig massa tid då jag inte behöver programmera ett eget admin-gränssnitt, en egen kommentarsfunktion, SEO-optimerade URLer osv. så får jag även tillgång till WordPress arkiv med plugins. Med hjälp av dessa är jag bara några knapptryck från att expandera Miniatlas med nya intressanta funktioner. Sedan finns det en riklig mängd smarta funktioner och verktyg i WordPress som underlättar arbetet med att utveckla siten ytterligare.
Miniatlas är mitt första projekt där jag använder den här tekniken. På ritbordet ligger planer på databaser med böcker, filmer, hotell och en hel del annat. Med rätt databas får man enkelt upp en komplett webbplats på bara några timmar, något jag kommer använda flitigt i framtiden.