Smartare taggar i WordPress
Ihopknåpat av Tom Stone en onsdag i juni, 2008
Uppdatering! Det här inlägget är nu inaktuellt, då jag skrivit en plugin som fixar det. Se Fiffigare taggar.
Det här med "taggar" eller "etiketter" i WordPress 2.5 är lite bökigt om man dessutom vill listas på t.ex. bloggar.se, knuff.se, intressant.se och technorati. Det brukar innebära att man får skriva samma taggar flera gånger, och det ser rätt klumpigt ut. Så jag knackade nyligen ihop lite PHP för att lösa problemet.
Det är inte speciellt elegant, eftersom jag egentligen inte kan ett skit om PHP-programmering - men sånt har aldrig stört mig, eftersom jag konsekvent använder mig av Dunning-Kruger effekten inom nästan alla områden. Så, min lösning kanske inte är så snygg, men den fungerar, är praktisk och är helt automatisk.
I din template-folder, leta upp en fil som heter "single.php". Det är den filen som används för att visa enstaka postningar. Det är dock inte alla mallar som inkluderar den filen, utan kan ha bakat ihop allt i filen "index.php". Du får helt enkelt leta lite, om du inte finner en "single.php".
Öppna filen, och gör en textsökning efter frasen "the_tags". Du kommer då finna något som ser ut ungefär såhär:
< ?php the_tags('Tags: ',' | '); ?>
Kommentera ut den funktionen med två snedstreck, så här
< ?php //the_tags('Tags: ',' | '); ?>
Hittar du ingen "the_tags"-funktion, så sök efter enbart ordet "tag", och kommentera ut raden du hittar med två snedstreck. Ett sista alternativ är ifall du råkar ha en mall som inte använder sig av taggar eller etiketter - då kan du klistra in det nedanstående var du än tycker att det passar. Gör bara en kopia av filen innan du börjar, för då kan du återställa allt om något strular.
Så, under raden som du precis kommenterat ut, kopierar du in det följande (klicka på "Copy to Clipboard"):
< ?php
$posttags = get_the_tags();
if ($posttags) {
$intressant = "";
echo "Etikett: ";
foreach($posttags as $tag) {
if (strtolower($tag->name)=="intressant"){
$intressant = "<a href='http://intressant.se/intressant' rel='nofollow'>...</a>";
}else{
echo "<a href='".get_tag_link($tag->term_id)."' title='Liknande hos mig'>".$tag->name."</a> " ;
$taggslugg = str_replace('-','+',$tag->slug);
echo "<span class='minitagg'><a href='http://bloggar/om/$taggslugg' title='Svenska Bloggar' rel='tag'>".$tag->name."</a>, " ;
echo "<a href='http://technorati.com/tag/$taggslugg' title='Technorati' rel='nofollow'>".$tag->name."</a></span> " ;
echo "| ";
}
}
echo $intressant;
}
?>
Spara och ladda upp på din server. Nu, öppna filen "style.css" i din template-folder. Längst ned kan du kopiera in:
.minitagg {
font-size:7px;
}
Sju pixlar är rätt smått, så du får experimentera lite med textstorleken, om du vill. Spara sen och ladda upp filen "style.css"
Klart!
När du nu skriver nya postningar, så behöver du bara skriva en enda uppsättning taggar. Se bilden här:
Är det dessutom en välskriven och längre artikel (över 500 ord), så kan du lägga till taggen "intressant", så kommer inlägget automatiskt att bli länkad till från sajten intressant.se. För att hamna där, och på bloggar.se, så får du se till att din blogg pingar sajten nyligen.se. Se deras instruktioner.
Som sagt, kanske inte den elegantaste lösningen, men den är praktisk och effektiv. Du ser den i sin fulla prakt strax nedanför här nedanför.
Uppdatering:
Hm.. min lösning ovan har funkat bra i flera veckor, fast nu upptäckte jag att inläggen inte dyker upp på bloggar.se. Antingen har de ändrat något, eller så har det blivit nån konflikt med en plugin. Återkommer när jag listat ut vad som trasslar.
Trackback URL = http://blogg.tomstone.se/design/smartare-taggar-i-wordpress.html/trackback/
Ämne: Design
etiketter
etiketter
| Intressant Intressant
Intressant
Intressant
| php php
php
php
| tags tags
tags
tags
| webbdesign webbdesign
webbdesign
webbdesign
| wordpress wordpress
wordpress
wordpress
| intressant













