Så gör du ett enkelt plugin för WordPress!
Jag behövde ett väldigt enkelt plugin för att parsa egna taggar i WordPress – och så här gjorde jag… Det jag ville göra var ett plugin som gjorde det enkelt för mig att lägga in en affiliatekod för affiliateprogrammet Prisjakt (se exempel). Koden, som kommer från Affiliator, gör att det visas en liten ruta som innehåller de tre lägsta priserna på en viss produkt. Det enda som behövde ändras i koden var en liten siffra, som stod för produktnumret hos Prisjakt.
<img src="http://imp.affiliator.com/imp.php?a=xxx&b=xxx&w=xxxx&p=xx" width="0" height="0" /><script src="http://extern.prisjakt.nu/produkt_extern.php?p=123456&type=info7&clickTAG=http://click.affiliator.com/click/a/xxxx/b/xxx/w/xxxx/p/xx//direct_link/" type="text/javascript"></script>
Problemet med att klistra in koden manuellt är att WordPress inte alltid är så glad vid att man klistrar in Javascript i ett inlägg. Det kan strula en del. Därför behövde jag ett plugin som lät mig skriva exempelvis [prisjakt]123456[/prisjakt] i ett inlägg, och när inlägget sedan visas så ser pluginet till att ändra taggarna till Javascriptkoden före respektive efter själva produktkoden (se ovan kod).
Taggen [prisjakt] ska således bli all kod fram till 123456 och [/prisjakt] all kod efter. Då blir det rätt i själva bloggen, medan jag slipper Javascriptet när jag redigerar inlägget. Använd Anteckningar eller någon annan textredigerare för att skriva in PHP-koden för ditt alldeles egna WordPress-plugin:
<?php
/*
Plugin Name: Exempel-plugin
Plugin URI: http://www.tkj.se/plugin
Feed URI:
Description: Ett exempel på enkelt plugin till WordPress
Version: 1.0
Author: Tommy k Johansson
Author URI: http://www.tkj.se
*/
function exempel($content){
$text_fore = '<b><i>';
$text_efter = '</b></i>';
$content = str_replace('[prisjakt]', $text_fore, $content);
$content = str_replace('[/prisjakt]', $text_efter, $content);
return $content;
}
add_filter('the_content', 'exempel', 2);
?>
De första raderna är till för att berätta vad det är för plugin. Det är denna text som kommer att visas på din pluginsida i WordPress administrationsgränssnitt. Därefter kommer min funktion som här heter exempel().
$content är en standardvariabel som innehåller själva inlägget. Det funktionen gör är att ersätta taggarna med texten som står i variablarna $text_fore respektive $text_efter. Add_filter() i slutet är en WordPressfunktion som ser till att parsa artikeln genom din funktion när den visas på bloggen.
Spara pluginet som en vanlig textfil med namnet dittpluginnamn.php och ladda sedan upp det till din WordPressmapp och underkatalogen /wp-content/plugins. Därefter är det bara att aktivera det via administrationspanelen och Plugins.
Det här kanske lät som gojja om du aldrig skrivit en rad programkod tidigare, men om du har några grundläggande kunskaper hoppas jag att du kan få nytta av det i din WordPressblogg.
Gillade du inlägget? Dela gärna till dina kompisar!
| Webbhotell | Pris/mån | Utrymme | Trafik | Domäner |
| City Network | 74 kr | 250 GB | 5000 GB | Obegränsat |
| Naturhotellet | 29 kr | 10 GB | 100 GB | Obegränsat |
| Loopia | 83 kr | 5 GB | 50 GB | Obegränsat |
| One.com | 12 kr | 3 GB | Fri* | 1 |
| FSData | 149 kr | 10 GB | 150 GB | Obegränsat |
| Binero | 69 kr | 100 GB | 2000 GB | Obegränsat |
| Crystone | 75 kr | 100 GB | 2000 GB | Obegränsat |
| Surftown | 36 kr | 10 GB | 30 GB | 1 |
| Wopsa | 50 kr | 0,5 GB | 10 GB | 2 |
| Strongbox | 65 kr | 5 GB | 40 GB | Obegränsat |
| Cliche | 9 kr | 0,5 GB | Fri* | 1 |
| Ev startavgift & domänkostnad tillkommer. Pris uppdaterat 120314. * Fritt så länge du inte har för mycket |
||||


Calle
sa,
januari 7, 2009 @ 12:04 | Svara
Ett annat sätt – kanske inte i just detta sammanhang, men för att hantera html-kod – är att använda Adsense Manager plugin http://wordpress.org/extend/plugins/adsense-manager/ vilket gör att din kod blir en widget.
Den är till för att hantera annonser, men kan även hantera egen kod. Själv använde jag den för min Googlesearch-funktion.
Eric
sa,
januari 7, 2009 @ 12:51 | Svara
Fin kod, men jag skulle gjort så här:
function exempel
{
$bbcode = ”/\[prisjakt\](.*?)\[\/prisjakt\]/is”;
$repalce = ”$1”;
// Skickar tillbaka resultaet
return preg_replace($bbcode, $replace, $content);
}
En av fördelarna med denna kod är kanske ganska uppenbar, det är mindre kod som är lättare att läsa (tycker jag i alla fall). Dessutom blir den snabbare även om det i detta fall handlar om millisekunder. Men något som jag gillar främst med denna lösning är att den är flexibel på så sätt att du kan lägga $1 på flera ställen. Exempel på vad jag menar:
function exempel
{
$bbcode = ”/\[prisjakt\](.*?)\[\/prisjakt\]/is”;
$repalce = ‘‘.$1.’‘;
// Skickar tillbaka resultaet
return preg_replace($bbcode, $replace, $content);
}
Sedan kan man göra lite mer avancerade grejor så som att om man skriver [prisjakt=???]1234[/prisjakt] så kan man kan hämta både ??? och 1234. Men jag tror nog att mitt inlägg är redan långt som det är. ;) Annars så behöver inte koden ändras så mycket för detta ska fungera också.
Eric
sa,
januari 7, 2009 @ 12:59 | Svara
Oj, trodde inte att man kunde använda HTML bland kommentarerna, så att mina exemel blir lite felaktiga. Så här ska det se ut:
Första $repalce = “$1“; ska det stå (utan mellanrum mellan samt och sedan förstås motsvarande för i-taggen):
$repalce = “$1“;
Och den andra koden med $repalce = “$1“; :
$repalce = “$1“;
Dgtlx.com
sa,
januari 7, 2009 @ 13:00 | Svara
Intressant!
Nu har jag inte användning för det, men ändå. Alltid kul att känna till hur det går tillväga att skapa liknande plugin i WP.
Emma
sa,
januari 7, 2009 @ 14:35 | Svara
Hej!(hittade inte din nybörjar guide för wordpress, länkat till den på en annan data, så jag la det här)
Jag har funderat på att starta en blogg och tycker då att wordpress verkar vara ett bra program att utgå från, men min fråga är om man kan blogga från olika datorer med wordpress då man behöver ladda ner olika program för att kunna få ihop det, för det är ju inte alltid säkert att den datan man oftast har är tillgänglig(eller fungerar vilket e mitt problem)
så, kan man det?
TkJ
sa,
januari 7, 2009 @ 15:32 | Svara
Emma: Nej, du behöver inga program för att blogga med WordPress. Räcker med en webbläsare.
TkJ
sa,
januari 7, 2009 @ 15:32 | Svara
Eric: Tack! Din kod var mycket bättre. Jag har sagt att jag ska lära mig regex i ungefär 15 år nu… ;)
Ingo
sa,
januari 7, 2009 @ 17:41 | Svara
Klockrent.
Detta skall jag genast använda mig av.
Behöver man vara affil för prisjakt för att använda hänvisningarna till att börja med?
Danielloo
sa,
januari 8, 2009 @ 11:27 | Svara
Vet inte om du testat In The Loop… Fungerar i iaf före och efter post.
http://xentek.net/code/wordpress/plugins/in-the-loop/
Men det e ju löst nu ändå =)
Stefan
sa,
januari 9, 2009 @ 08:49 | Svara
Stort tack Tommy. Tanken är att jag själv ska lägga in affiliatelänkar till Prisjakt på en av mina sidor och då blir det otroligt mycket lättare med denna metoden.
Grunden borde dessutom gå att använda för att klistra in PHP-funktioner utan att behöva lämna WYSIWYG-läget.
Ingo
sa,
januari 11, 2009 @ 16:18 | Svara
Nu blir jag lite förvirrad.
Är det TKJ´s kodsträng man skall använda sig av eller tipset i kommentaren?
Hur som helst, skall jag klistra in mitt affil id på något ställe?
För den tröge, kan du inte förtydliga instruktionerna
Rumor Control » Gör ditt eget WordPress-plugin sa,
april 16, 2010 @ 07:46 | Svara
[...] IT-bloggaren TkJ har skrivit en enkel kom-igång-guide på [...]
Smidigt wordpress plugin | Chisp.se sa,
juni 22, 2011 @ 13:04 | Svara
[...] subscribe to the RSS feed for updates on this topic.Powered by WP Greet Box WordPress PluginHar sen TKJ publicerade tipset suttit och tittat på koderna för att förstå det hela. I denna sena timme ramlade 5 öringen [...]
Wordpress CMS « staffanjonzon sa,
december 5, 2011 @ 13:28 | Svara
[...] IT-bloggaren TkJ har skrivit en enkelkom-igång-guide på [...]