Niklas Olsson om affärer på internet

Affiliatenätverk, Bloggar, BloggInfo.se, Bokhylla, Domännamn, Informationsprodukter, Internetentreprenörer, Internetmarknadsföring, Länkstrategier, Övrigt, Projekt, Reseguider, Sökmotorer, Svensk Kolgrill, Twitter, Varumärken, Webb 2.0, Webbhotell, WordPress

Så byggde jag Miniatlas med hjälp av WordPress

2009-07-23 | Projekt, WordPress

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.

Kommentarer

  • 1. Deprecated: Function ereg() is deprecated in /storage/content/52/164052/webpal.se/public_html/blogg/wp-content/plugins/googleanalytics.php on line 266 Mattias B
    2009-07-23 13:36

    Oerhört intressant! Detta ska jag försöka sätta mig in i. Är tyvärr total amatör i sådana här sammanhang, men skam den som ger sig. Jag är själv förtjust i att använda Wordpress till icke-bloggar, bl a håller jag på att bygga upp en bibliografi om Sherlock Holmes-böcker i en enkel wordpress-blogg: http://sherlockholmesisverige.wordpress.com
    Det är visserligen lite meckigt, men får underbart bra träffar vid googlesökningar på enskilda namn o.dyl. på sidorna.
    Jag ska dock se om jag inte kan göra om det på något sätt så att det blir lite smidigare att arbeta med.

  • 2. Deprecated: Function ereg() is deprecated in /storage/content/52/164052/webpal.se/public_html/blogg/wp-content/plugins/googleanalytics.php on line 266 Håll ögonen på Webpal
    2009-07-23 13:50

    […] har Niklas skrivit en bloggpost om tankarna bakom MiniAtlas och varför han valde Wordpress som plattform. Läs den. Den ger många goda […]

  • 3. Deprecated: Function ereg() is deprecated in /storage/content/52/164052/webpal.se/public_html/blogg/wp-content/plugins/googleanalytics.php on line 266 Tobias
    2009-07-23 14:21

    Hej Niklas!

    Kul läsning! en fråga: hur kommer det sig att du inte använde custom fields utan en separat tabell för geodatan?

  • 4. Deprecated: Function ereg() is deprecated in /storage/content/52/164052/webpal.se/public_html/blogg/wp-content/plugins/googleanalytics.php on line 266 John Ivarsson
    2009-07-23 14:27

    Bra jobbat! Har länge gått i tankarna att modda wordpress och nu tvekar jag inte längre efter att ha sett miniatlas. En funktionell och bra site dessutom :)

  • 5. Deprecated: Function ereg() is deprecated in /storage/content/52/164052/webpal.se/public_html/blogg/wp-content/plugins/googleanalytics.php on line 266 Niklas Olsson
    2009-07-23 15:36

    @Mattias B, ser ut som om du fått in en hel del information i din bibliografi, snyggt! Kan verkligen rekommendera att sätta sig in ordentligt i wordpress.

  • 6. Deprecated: Function ereg() is deprecated in /storage/content/52/164052/webpal.se/public_html/blogg/wp-content/plugins/googleanalytics.php on line 266 Niklas Olsson
    2009-07-23 15:42

    @John, tack och kul att kunna inspirera!

  • 7. Deprecated: Function ereg() is deprecated in /storage/content/52/164052/webpal.se/public_html/blogg/wp-content/plugins/googleanalytics.php on line 266 Niklas Olsson
    2009-07-23 15:50

    @Tobias, en mycket bra fråga, första versionen av Miniatlas byggde faktiskt på just custom fields. Finns flera anledningar till att jag nu lagt allt i en egen tabell:

    * datan är mycket enklare att uppdatera när den ligger samlad i min egen tabellstruktur
    * jag kan använda samma databas i flera projekt samtidigt
    * jag kan sälja tillgång till databasen till andra som vill bygga geo-tjänster
    * jag kan enkelt lägga in nya typer av data

  • 8. Deprecated: Function ereg() is deprecated in /storage/content/52/164052/webpal.se/public_html/blogg/wp-content/plugins/googleanalytics.php on line 266 marketingMartin
    2009-07-23 17:53

    Kreativt löst och cool sida.

    Ett alternativ till vissa lösningar på sidan hade kanske varit att arbeta med taxonomy som på riktigt introducerades i Wordpress 2.8. Det är ett kraftfullt verktyg och något som alla WP-diggare bör kolla in. Tidigare var man tvungen att lösa det med plugins men nu är det som sagt inbyggt i WP 2.8 och senare.

    I functions.php behöver man bara klistrar in följande lilla kodsnutt (byt ut variablerna till de du själv vill använda) för att det ska funka:

    false, ‘label’ => ‘Countries’, ‘query_var’ => true, ‘rewrite’ => true ) );
    register_taxonomy( ‘citys’, ‘post’, array( ‘hierarchical’ => false, ‘label’ => ‘Cities’, ‘query_var’ => true, ‘rewrite’ => true ) );
    register_taxonomy( ‘areas’, ‘post’, array( ‘hierarchical’ => false, ‘label’ => ‘Areas’, ‘query_var’ => true, ‘rewrite’ => true ) );
    }

    ?>

    I dina tema-filer klistrar du sedan in följande kod (ändra taxonomy_name till namnet på din variabel) för att placera dina taxonomies där du vill ha dom:

    ID, ‘taxonomy_name’, ‘Taxonomy Label: ‘, ‘, ‘, ” ); ?>?

  • 9. Deprecated: Function ereg() is deprecated in /storage/content/52/164052/webpal.se/public_html/blogg/wp-content/plugins/googleanalytics.php on line 266 marketingMartin
    2009-07-23 17:58

    Sorry, all kod kom inte med ser jag visst. Befinner mig utomlands med taskig täckning.. Men den som är intresserad kan höra av sig till mig så kan ni senare få komplett kod.

    Trevlig sommar!

  • 10. Deprecated: Function ereg() is deprecated in /storage/content/52/164052/webpal.se/public_html/blogg/wp-content/plugins/googleanalytics.php on line 266 Gammalt och nytt | Blue Cow Production
    2009-07-23 18:36

    […] Webpal lanserar Miniatlas.se och förklarar varför han väljer WordPress […]

  • 11. Deprecated: Function ereg() is deprecated in /storage/content/52/164052/webpal.se/public_html/blogg/wp-content/plugins/googleanalytics.php on line 266 Emil Stenström
    2009-07-23 18:42

    Hej!

    Det lilla jag tittat på koden lite djupare ner i Wordpress, har jag blivit förskräckt. Dom verkar ha missat så grundläggande saker som ordentlig objektorientering, något som gör att jag försöker hålla mig borta från att göra alltför avancerade saker i det.

    Istället har jag börjat använda Django. Där får du ett automatiskt admingränssnitt, kommentarer, snygga URL:er, och Djangos alla plugins: http://djangoplugables.com/projects/ (dvs. samma saker som du sa som anledningar till att välja Wordpress). Dessutom är Djangos interna kod ett nöje att gräva djupare i.

    Skulle utan tvekan valt Django för detta, men jag är ändå imponerad av vad du har lyckats får Wordpress att prestera :)

  • 12. Deprecated: Function ereg() is deprecated in /storage/content/52/164052/webpal.se/public_html/blogg/wp-content/plugins/googleanalytics.php on line 266 Mats
    2009-07-24 04:14

    Mkt snygg WordPress losning !

  • 13. Deprecated: Function ereg() is deprecated in /storage/content/52/164052/webpal.se/public_html/blogg/wp-content/plugins/googleanalytics.php on line 266 jardenberg kommenterar – 2009-07-24 — jardenberg unedited
    2009-07-24 05:31

    […] Så byggde jag Miniatlas med hjälp av WordPress | webpal […]

  • 14. Deprecated: Function ereg() is deprecated in /storage/content/52/164052/webpal.se/public_html/blogg/wp-content/plugins/googleanalytics.php on line 266 Niklas Olsson
    2009-07-24 13:03

    @MarketingMartin, ser intressant ut och ngt som jag faktiskt inte har experimenterat med själv. I just Miniatlas har jag dock valt att hålla databasen separat från WordPress för maximal flexibilitet och andra framtida användningsområden för datan.

    Maila gärna ett större kodutdrag!

    @Emil, det kan mycket väl vara så som du säger att Django är mer strukturerat och enklare att arbeta i. Jag har dock spenderat så pass mycket tid i WordPress att jag är tveksam om jag skulle kunna arbeta lika snabbt och effektivt i något annat CMS. Jag tror det finns ett stort värde i att fokusera ordentligt på just en lösning och sedan lära sig allt om denna istället för att kunna “hantera” ett flertal, är fantastiskt praktiskt att kunna ge en exakt tidsuppskattning på ett arbete, nästan oavsett hur komplext det är!

  • 15. Deprecated: Function ereg() is deprecated in /storage/content/52/164052/webpal.se/public_html/blogg/wp-content/plugins/googleanalytics.php on line 266 Niklas Olsson
    2009-07-24 13:09

    @Mats, har inte sett Geografi.nu tidigare, var en rejäl mängd .nu-domäner ni har där =)

    Har använt GeoNames till vissa delar av Miniatlas och planerar att plocka in mer data från denna till nästa version för att kunna täcka mer än bara huvudstäderna i länder.

    Skriver ni texterna till de olika länderna själva?

  • 16. Deprecated: Function ereg() is deprecated in /storage/content/52/164052/webpal.se/public_html/blogg/wp-content/plugins/googleanalytics.php on line 266 Wordpress based Atlas « Mikael Palmstedt
    2009-07-25 16:13

    […] Atlas mashup based on wordpress from Webpal. Great example of how to do much with […]

  • 17. Deprecated: Function ereg() is deprecated in /storage/content/52/164052/webpal.se/public_html/blogg/wp-content/plugins/googleanalytics.php on line 266 Miniatlas 1, 2 och 3 | Miniatlas utvecklingsblogg
    2009-08-27 18:32

    […] Den nuvarande versionen av Miniatlas är den andra i ordningen och denna gång bygger den i huvudsak på en stor databas om världens alla länder som automatiskt skapar WordPress-poster. Vid lanseringen skrev jag lite mer om detta på min blogg om affärer på internet, Webpal. […]

  • 18. Deprecated: Function ereg() is deprecated in /storage/content/52/164052/webpal.se/public_html/blogg/wp-content/plugins/googleanalytics.php on line 266 webpal
    2009-07-23 13:14

    Så byggde jag Miniatlas med hjälp av WordPress: http://bit.ly/P6gE1

    This comment was originally posted on Twitter

  • 19. Deprecated: Function ereg() is deprecated in /storage/content/52/164052/webpal.se/public_html/blogg/wp-content/plugins/googleanalytics.php on line 266 andreaskrohn
    2009-07-23 13:16

    RT @webpal: Så byggde jag Miniatlas med hjälp av WordPress: http://bit.ly/P6gE1

    This comment was originally posted on Twitter

  • 20. Deprecated: Function ereg() is deprecated in /storage/content/52/164052/webpal.se/public_html/blogg/wp-content/plugins/googleanalytics.php on line 266 ptz0n
    2009-07-23 13:21

    Så byggde @webpal Miniatlas med hjälp av WordPress: http://bit.ly/P6gE1

    This comment was originally posted on Twitter

  • 21. Deprecated: Function ereg() is deprecated in /storage/content/52/164052/webpal.se/public_html/blogg/wp-content/plugins/googleanalytics.php on line 266 andreaskarman
    2009-07-23 13:26

    Så byggde jag Miniatlas med hjälp av WordPress: http://bit.ly/P6gE1 (via @webpal)

    This comment was originally posted on Twitter

  • 22. Deprecated: Function ereg() is deprecated in /storage/content/52/164052/webpal.se/public_html/blogg/wp-content/plugins/googleanalytics.php on line 266 nikkelin
    2009-07-23 13:28

    RT @ptz0n: Så byggde @webpal Miniatlas med hjälp av WordPress: http://bit.ly/P6gE1

    This comment was originally posted on Twitter

  • 23. Deprecated: Function ereg() is deprecated in /storage/content/52/164052/webpal.se/public_html/blogg/wp-content/plugins/googleanalytics.php on line 266 QuBaR
    2009-07-23 16:29

    Miniatlas med hjälp av WordPress: http://bit.ly/P6gE1

    This comment was originally posted on Twitter

  • 24. Deprecated: Function ereg() is deprecated in /storage/content/52/164052/webpal.se/public_html/blogg/wp-content/plugins/googleanalytics.php on line 266 Joakim Jardenberg
    2009-07-23 17:00

    Niklas Olsson (webpal) har gjort ett skickligt wordpress-bygge i http://miniatlas.se och i den här bloggposten berättar han mer om hur han gjorde. Högintressant läsning. Och spännande att se hur fler gör så mycket mer med wordpress. Det ÄR verkligen en plattform för webbygge, och inte "bara" en blogglösning

    This comment was originally posted on FriendFeed

  • 25. Deprecated: Function ereg() is deprecated in /storage/content/52/164052/webpal.se/public_html/blogg/wp-content/plugins/googleanalytics.php on line 266 andreaswiberg
    2009-07-23 22:05

    Så byggde jag Miniatlas med hjälp av WordPress: http://bit.ly/P6gE1 (via @webpal)

    This comment was originally posted on Twitter

  • 26. Deprecated: Function ereg() is deprecated in /storage/content/52/164052/webpal.se/public_html/blogg/wp-content/plugins/googleanalytics.php on line 266 Jonas Nordström
    2009-07-24 08:52

    Mer om miniatlas, inte speciellt komplicerat men det är kul att se lite ovanliga wordpresstillämpningar.

    This comment was originally posted on FriendFeed

Skriv en kommentar

Liknande artiklar