Etikettarkiv: plugin

En anpassningsbar ”senaste inlägg” widget för wordpress

Stör du dig som mig på att man inte kan göra några inställningar alls (okej man kan ändra titel och antalet inlägg att visa, men det är allt) i standardpluginen för senaste inlägg i wordpress. Pluginen i sig är väldigt smidig och jag använder den ofta, men ibland vill jag ändra på utseendet något och nu sist ville jag även visa datumet för inläggen. Istället för att gå in och modifiera senaste poster widgeten manuellt eller skriva en egen wp_query bestämde jag mig för att extenda wordpress inbyggda widget men lägga till de inställningar jag saknar.

När jag letade runt i wordpress pluginkatalog hittade jag några widgets som skulle ge fler inställningar till senaste inlägg. Men de var alla på tok för avancerade och gjorde egentligen inte det jag ville. Jag vill ha möjligheten att individuellt för varje widget bestämma hur den skall presentera innehållet. Jag gjorde det genom att introducera en simple template-motor där man helt enkelt själv väljer hur varje inlägg ska se ut.

  • [link] [/link]
  • [title]
  • [excerpt]
  • [date] här kan du även välja hur datumet ska formateras [date=”Y-m-d”] t.ex. för 2010-08-04
  • [category]
  • [tags]

Ifall det finns några fler taggar ni skulle vilja ha med säg gärna till så implementerar jag detta. Nu kan man alltså enkelt bygga upp sitt eget utseende. t.ex.

[link][title][/link] - [date]<p>[excerpt]</p>I kategorin: [category]

Än så länge har finns den tillgänglig för nerladdning, och givetvis under open soruce. Ifall intresse finns och jag får tid kommer jag även lägga upp den i wordpress plugin directory.

Smart 404 sida i wordpress – Fånga upp dina besökare innan det är för sent

Jag letar alltid efter nya sätt att förenkla för mina besökare, ett problem som kan uppstå är besökare som kommer fel. De får error 404, antingen har de skrivit in fel adress, någon har länkat till fel sida eller så har den som driver hemsidan tagit bort eller flyttat sidan och glömt att göra en redirect.

Men inte nu längre, jag installerade nyligen en wordpress plugin vid namnet Smart 404, och den gör precis vad namnet antyder, en smart 404-sida. Genom att analysera den url som besökaren angivit söker den igenom alla sidor och inlägg (även kategorier och taggar) för att hitta vilken sida besökaren kan vara intresserad av. Så istället för att komma till en tom och intetsägande error 404 sida får besökaren direkt alternativ på liknande sidor och kan på så sätt komma rätt även fast adressen är fel. Men smartast av allt är ifall det enbart finns en sida med liknande namn så gör pluginen en 301 redirect direkt till rätt sida, vilket gör att användaren inte får ett hemskt 404 meddelande utan kan istället fortsätta surfa och förhoppningsvis hittar den information de ville ha ändå.

För att ytterligare förbättra din 404 sida rekommenderar jag också att installera en logger för 404 errors, jag använder själv JH 404 Logger som smidigt visar de senaste felaktiga adresserna direkt i din panel, men det finns även 404 Notifier som skickar ut e-post vid felaktiga träffar.

Exempel på hur Smart 404 fungerar

Säg att du har bytt kategori på ett inlägg och du har med kategorin i din url

  • www . blogg . se /okategoriserad/mitt-inlagg/ till
  • www . blogg . se /nyheter/mitt-inlagg/

Smart 404 inser då med en gång att det är samma slug/url och gör en 301 redirect till rätt adress istället.

Sök direkt ifrån adressfältet

Men även om namnet eller titeln på sidan inte är den samma så låter Smart 404 dig söka direkt från adressfältet och visar automatiskt rätt sida ifall den hittar en träff. Låt säga att vi har en sida med kontaktuppgifter, och sidan heter just det ”Kontaktuppgifter”, men i texten på sidan står det ”Kontakta oss via e-post eller telefon…”.

  • www . blogg . se /kontakta-oss/ genom att skriva sökordet kommer besökaren automatiskt till
  • www . blogg . se /kontaktuppgifter/

Tänk på både besökare och sökmotorer

Även om denna plugin i första hand förbättrar upplevelsen för dina besökare så kommer det även ha en positiv effekt för sökmotorerna, tänk dig samma scenario fast en annan hemsida länkar till fel adress. Med denna plugin kommer google (finns det någon annan sökmotor ;)) direkt till rätt sida även om det är fel adressen. Den använder sig av 301 redirects enligt SEO konstens alla regler för att se till att google även sparar rätt url i sitt index.

Framtiden för Smart 404

Jag kommer i framtiden vara direkt involverad i utvecklingen av Smart 404, jag skickade för några dagar sedan in en bugg-fix för Smart 404 version 4.0, den snabba responsen (buggfixen var introducerad och uppladdad på wordpress några timmar senare) från huvudutvecklaren gjorde mig intresserad och jag bidrar gärna med det jag kan. Om ni har några önskemål på funktioner eller uppdateringar av Smart 404 informera gärna mig. Följande punkter ligger i min egen önskelista över kommande funktionalitet.

  • Det första jag ska ta tag i är svenskt språkstöd för administrationen
  • Möjlighet att integrera med andra bra plugins för 404-sidan genom att anropa de hooks som finns registrerade i wordpress, även om besökaren är redirectad.
  • Bättre algoritm för att hitta rätt sidor, ska se över möjligheten att även matcha felstavningar i adressen.
  • Gruppera ihop sidor och inlägg i sökningen och visa båda på resultatsidan.

Mer information

Sprid gärna vidare om du tycker det är intressant…

 

Förbättra sökningar i wordpress med Google did-you-mean™

WordPress är ett perfekt verktyg till så mycket mer än bloggar, jag använder det ofta för sina CMS egenskaper och med hjälp av några extra tillägg kan man få det mycket bättre. Så när jag igår började jobba på en ny kunds webbsida i wordpress började jag med att leta runt bland bloggarna i mitt rss-flöde då jag följer många duktiga utvecklare som delar med sig av sina wordpress tips. Något som är extra viktigt när man skapar en större webbplats är möjligheten att söka för att hitta sin information, och ingen gör det bättre än Google. Jag gillar speciellt googles did-you-mean, eller ”menade du” funktion som med en gång rättar till eventuella felaktigheter i sökfrågan. Inte baserat på något lexikon utan baserat på vad användare faktiskt söker efter, det gör deras funktion så mycket mer flexibel och uppdaterad.

Jag hittade många tips angående hur man förbättrar sök funktionaliteten i wordpress, bland annat tipsar Andras Karman om hur man förbättrar sökfunktionen i wordpress (nere för tillfället) om två väldigt intressanta plugins Search Unleashed och Search Suggest. Search Unleashed förbättrar sökfunktionaliteten i wordpress något avsevärt med mycket fler inställningar och möjlighet att byta sökalgoritm. Jag valde att använda Lucene och det fungerar otroligt bra, hittar till viss del felstavade samt böjningar av ord och det funkar minst lika bra på svenska som engelska. Search Suggest verkade också mycket lovande då den använder Yahoos API för att hitta felstavningar och ord, dock blev jag snabbt besviken. Den hade två stora nackdelar:

  1. Yahoos API fungerade enbart med engelska ord, och även där fungerade det inte lika bra som googles did-you-mean.
  2. När man infogade koden gjorde sökningarna att hela sökresultatet blev segt eftersom det tog en stund att ladda yahoos api.

Jag bestämde mig då för att leta efter en implementation eller ett API mot googles did-you-mean istället, jag trodde att det skulle vara ganska enkelt då google har en ganska öppen policy med massvis av APIer. Men jag lyckades inte hitta något i wordpress katalogen, många använde google search direkt men jag ville enbart ha tillgång till googles rättstavning. Efter lite googlande hittar jag att det faktiskt finns ett SOAP Search API som stödjer Google suggestion med funktionen doSpellingSuggestion. Men min lycka blev inte långvarig då jag snart insåg att Google SOAP Search inte längre ger ut några API-nycklar istället hänvisar de till sitt AJAX Search API och i AJAX Search API finns det ingen möjlighet att använda doSpellingSuggestion eller på något annat sätt då ut googles did-you-mean.

Exempel på hur Google did-you-mean ser ut i wordpressJag bestämde mig då sent igår kväll för att skriva min egen class i PHP för att hämta ut googles föreslagna ord, några timmar senare har jag en första version klar. Jag har tidigare använt CURL för att läsa in andra hemsidor och började därför att försöka läsa in Google.com genom CURL för att få ut googles förslag. Det var inte riktigt lika enkelt då google nu för tiden använder mycket ajax och javascript vilket inte gjorde det möjligt att parsa resultatet direkt. Lyckligtvis hittade jag m.google.com, deras mobila sökplattform och den är fortfarande mer straight forward med ett vanligt GET-anrop för att göra sökningarna. Efter att jag fått tillbaka resultatet från google skapade jag ett simpelt regular expression för att hämta googles did-you-mean, med hjälp av deras css-klassnamn kan jag använda exakt samma kod oavsett vilket språk sökningen är på.

/&lt;div[^&gt;]*spelling_onebox_result[^&gt;]*&gt;.*?&lt;b&gt;&lt;i&gt;(.+?)&lt;/i&gt;&lt;/b&gt;.*&lt;/div&gt;/

Jag valde att göra en wordpress plugin för att enkelt kunna integrera med nya hemsidor, jag försökte göra det helt med hooks först men efter letat i timmar efter vilken hook att använda så gav jag upp och insåg att less is more och make it work, then beatuifull är två viktiga ledord och valde därför att skriva en simpel funktion (om någon har mer information om hur man hittar rätt hooks, eller vilka hooks man kan använda vid sökningar säg gärna till så kan jag göra en helt automatisk plugin). För att ansluta mot google skrev jag ett kort ajax-script i jQuery för att på så sätt inte göra hela webbsidan seg medan den i bakgrunden hämtar förslag på nya ord. Ifall den hittar något nytt ord så visar den förslaget där man valt att anropa google_suggestion(). I tillfället finns det både på svenska och engelska om man skickar med ”sv” som argument till funktionen, den skriver då ut ”Menade du” istället för ”Did you mean” samt att den använder google.se som sökmotor (dock tror jag inte att det spelar så stor roll vilken domän man använder). För att inkludera i din wordpressblogg anropa bara funktionen där du vill använda googles did-you-mean, förslagsvis ifall du inte hittar några resultat i sökningen men det går lika bra att använda vid en lyckad sökning.

&lt;?php if ( function_exists('google_suggestion') ) { google_suggestion(&quot;sv&quot;); } ?&gt;

Fördelen med att använda Google did-you-mean för wordpress är:

  • Enkel integration, installera wordpress pluginen och lägg till en kodrad så fungerar resten automatiskt.
  • Använder googles grymma tjänst ”Menade du” för att hitta felstavningar men fungerar även lika bra på särskrivningar och andra konstigheter.
  • Använder ajax-anrop för att inte göra din blogg långsam.

Både bakgrundslogiken i PHP för att hämta did-you-mean orden från google samt wordpress pluginen är släppt som open source och finns tillgänglig på github, jag tar gärna emot förslag på hur man kan förbättra det. Jag avvaktar med att lägga upp det på wordpress.org, dels vet jag inte om google skulle bli så glada eftersom de själv inte släppt ett eget API, samt att jag gärna vill ge det lite tid för att upptäcka eventuella buggar. Hör gärna av dig ifall du väljer att använda det och hur det fungerar för dig. Jag har för tillfället ingen möjlighet att visa ett demo då bloggen ligger på wordpress.com samt min server idag kör IIS, så för nu får det räcka med bilden men installationen är väldigt enkel så testa gärna själv och jag ska försöka fixa fram ett demo lite längre fram.

För er som letar efter fler tips om hur man anpassar wordpress till ett bättre CMS verktyg rekommenderar jag att ni läser igenom Andreas Karman (hans blogg har inte uppdaterats på länge och ligger för tillfället nere, tyvärr), Niklas Olsson tipsar om bra tillägg vid wordpress som CMS , Nikke Lindqvist har publicerat en lista på alla tillägg han installerat (visserligen en blogg, men listan innehåller många bra tillägg)

Har du något annat livsnödvändigt tips för hur man får ut det mesta från wordpress som CMS?

Anpassad bekräftelse med hjälp av jQuery

jQuery Easy Confirm Dialog pluginIbland behöver man få bekräftat från besökaren att de verkligen vill utföra åtgärden, det sker i de flesta program genom en standarddialogruta som ber användaren bekräfta med Ja eller Nej. På webben är det inte riktigt lika enkelt, det går att använda den inbyggda javascript funktionen confirm(). Men en hemsidan idag innehåller oftast mycket ajax och dialogrutor,  att en standard popup ruta både bryter layouten och kan bli förvirrande.

När jag behövde en dialogruta för en kunds hemsida började jag leta efter ersättningar till denna standardfunktion. Eftersom vi använder oss utan jQuery för övrig funktionalitet kollade jag naturligtvis efter plugins till jQuery. Med de flesta lösningarna krävde callback funktioner eller var överdrivet krävande. Så jag bestämde mig för att utveckla mig egen plugin jQuery Easy Confirm Dialog, den är som vanligt även tillgänglig på github.

Fördelarna med Easy Confirm Dialog plugin är:

  • Den är väldigt enkelt att integrera, kräver ingen modifikation på övrig kod och inga callbacks
  • Fungerar både på vanliga länkar och jQuery events.
  • Anpassningsbart språk, Svenska och Engelska finns som standard

Allt som krävs är att man binder knapparna/länkarna till easyconfirm(), den tar sedan hand om alla events och utför enbart dessa ifall användaren godkänner.

Exempel på Easy Confirm Dialog plugin

&lt;script type=&quot;text/javascript&quot;&gt;
$(function() {
  $(&quot;.confirm&quot;).easyconfirm();
  $(&quot;a&quot;).click(function() {
    alert(&quot;You approved the action&quot;);
  });
});&lt;/script&gt;
&lt;a href=&quot;#&quot; class=&quot;confirm&quot;&gt;Testlink&lt;/a&gt;