Google Blogger - Att visa en widget bara på startsida

11/11/2008

Uppdatering!
En bättre lösning på det här problemet finns nu: Blogger - Visa saker bara på startsidan
Läs även denna för ett till SEO-tips för Blogger.com: Blogger & kortare titlar på bloggpostningar

På Pryltrend.com önskade jag en widget som visar de senaste tio bloggpostningarna i högra marginaler. Den som kommer klar med Google Blogger och som kan vara aktuell och jag känner till är den för att visa en RSS-ström. Fast klarar tråkigt nog bara att visa fem postningar och uppdateras inte direkt. Ett till problem är att jag bara vill att denna widget ska synas på förstasidan och inte över hela bloggen.

Jag beslutade mig för att försöka lösa det här i två steg. Först ta en vanlig html-widget (och ange postningarna manuellt tillsvidare) och få den att synas bara på startsidan. Detta lyckades genom att lägga till de två rader som har markerats i fetstil:

<b:widget id='HTML4' locked='false' title='Pryltrend...' type='HTML'>
<b:includable id='main'>
<b:if cond='data:blog.pageType != "item"'>
<!-- only display title if it's non-empty -->
<b:if cond='data:title != ""'>
<h2 class='title'><data:title/></h2>
</b:if>
<div class='widget-content'>
<data:content/>
</div>
<b:include name='quickedit'/>
</b:if>
</b:includable>
</b:widget>

Detta gör att denna widget (HTML4) innehåll (det som är innanför includable) bara skrivs ut när det inte är en postsida. För att överhuvudtaget se den här koden så att du kan ändra går du in i "Layout" sedan "Edit HTML" och klickar i "Expand Widget Templates":

Är det här en bra lösning? Nja faktiskt inte. Det finns vanligen fler sidor än startsidan som inte är postsidor t.ex. taggsidor. På en sådan kommer denna widget visas. För mig gör det ingenting för jag vill inte ha taggsidorna utan istället ha ämnessidor. Den här om anime visar vad jag menar med ämnessida. Jag tycker det blir mer flexibelt än taggsidor genom att man kan styra innehållet som man vill. Men datumarkivet berörs fortfarande av det här problemet och widget kommer skrivas ut där. Den huvudsakliga anledningen till att jag inte vill att de ska synas av hela bloggen är dock att jag inte vill att det ska indexera felsidor som sökträffar när en bloggpost är ny. Nu följer Google inte URL på Blogger med Search så Google kommer ändå inte se de här sidorna men en elegant lösning vore naturligtvis trevligt.

pageType som innehåller information om vilken typ av sida man befinner sig på kan antingen vara item, archive eller index. Åtminstone enligt den här hjälptexten:

"pageType: The type of the current page. One of 'item', 'archive', or 'index'."
Från: Layouts Data Tags

Utifrån det ser jag egentligen ingen snabb lösning på det här. Den här hjälptexten menar att själva widget kan ha en pageType och att denna ska gå att ange till main:

"pageType - (Optional) Can be 'all,' 'archive,' 'main,' or 'item,' with 'all' as the default. The widget will display only on the designated pages of your blog. (All widgets display on the Page Elements tab, regardless of thier pageType.)"

Fast det fungerar inte utan tas bort från koden av Blogger.

Så någon enkel och bra lösning på det där har jag inte. Jag nöjer mig med det här tillsvidare. Något jag skulle vilja göra är att helt ta bort datumarkivet d.v.s. det kvarstående längst ner och att dessa länkar istället djuplänkar respektive bloggpostning. Det är möjligt att göra och det behöver kanske inte vara svårt heller? Då ges ett indexerbart datumarkiv med mycket snabb åldring (endast en bloggpostning på varje sida).

Sedan i steg två någon gång om det blir av hoppas jag sätta en loop i aktuell widget så att den listar de tio senaste bloggpostningarna automatiskt. Det bör tror jag faktiskt vara mindre komplicerat än det här var.

0 kommentarer

Kommentera