<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Jonas Nordström &#187; filter</title>
	<atom:link href="http://jonasnordstrom.se/tag/filter/feed/" rel="self" type="application/rss+xml" />
	<link>http://jonasnordstrom.se</link>
	<description>Teknik och media</description>
	<lastBuildDate>Mon, 30 Jan 2012 00:23:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Automatisk spotifylänk i WordPress</title>
		<link>http://jonasnordstrom.se/automatisk-spotifylank-i-wordpress/</link>
		<comments>http://jonasnordstrom.se/automatisk-spotifylank-i-wordpress/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 18:25:16 +0000</pubDate>
		<dc:creator>jonas</dc:creator>
				<category><![CDATA[wordpress]]></category>
		<category><![CDATA[filter]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[spotify]]></category>
		<category><![CDATA[topp30.se]]></category>

		<guid isPermaLink="false">http://jonasnordstrom.se/?p=279</guid>
		<description><![CDATA[På sajten http://topp30.se listar jag och en del vänner och bekanta varje år våra favoritlåtar. Vi har sysslat med detta något nördiga listande i drygt tio år. Förra året började några av oss att bifoga listan i spotify-form, och inte bara text. I år har nästan alla 20 en spotifylista för sin årslista.

Länken till ...]]></description>
			<content:encoded><![CDATA[<p class="wp-flattr-button"></p><p>På sajten <a href="http://topp30.se">http://topp30.se</a> listar jag och en del vänner och bekanta varje år våra favoritlåtar. Vi har sysslat med detta något nördiga listande i drygt tio år. Förra året började några av oss att bifoga listan i spotify-form, och inte bara text. I år har nästan alla 20 en spotifylista för sin årslista.</p>
<p>Länken till spotifylistan finns i varje inlägg som en vanlig textlänk, men den ligger ofta på olika ställen, har olika ankartext och kan vara lite svår att hitta. Därför la jag till en genererad spotifylänk som alltid hamnar på samma ställe, uppe till höger i varje inlägg. Lättare att hitta, mer konsekvent.</p>
<p>Detta kan man åstadkomma genom att lägga spotifylänken som ett &#8221;eget fält&#8221;, ändra i varje template-fil på rätt ställe (index.php/archive.php/search.php etc.) och där läsa in spotify-fältet och visa länken, men det blir opraktiskt att underhålla, lätt att göra fel och lite fult.</p>
<p>En betydligt snyggare lösning är att använda WordPress <a href="http://codex.wordpress.org/Plugin_API/Filter_Reference">filterfunktionalitet</a>.</p>
<p>Steg 1:<br />
Lägg spotifylänken som ett &#8221;Eget fält&#8221; (för varje inlägg som har en spotifylista).<br />
<img src="http://jonasnordstrom.se/wp-content/uploads/2010/01/Bild-20-580x103.png" alt="länk till spotifylista" title="spotify-fält" width="580" height="103" class="alignnone size-medium wp-image-280" /></p>
<p>Steg 2:<br />
Lägg till en funktion (i functions.php), som visar en länkad spotify-logga när det finns en lista tillgänglig.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> spotify_content<span style="color: #009900;">&#40;</span><span style="color: #000088;">$content</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$post</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$meta_key</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'spotify'</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$extra_info</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$spotify_logo</span> <span style="color: #339933;">=</span> get_bloginfo<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'template_url'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;/img/spotify.png&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$meta_value</span> <span style="color: #339933;">=</span> get_post_meta<span style="color: #009900;">&#40;</span><span style="color: #000088;">$post</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">ID</span><span style="color: #339933;">,</span> <span style="color: #000088;">$meta_key</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">TRUE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$meta_value</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$extra_info</span> <span style="color: #339933;">=</span> <span style="color: #0000cc; font-style: italic;">&lt;&lt;&lt;EOT
			&lt;div class=&quot;spotify-link&quot;&gt;
				&lt;a href=&quot;$meta_value&quot;&gt;&lt;img src=&quot;$spotify_logo&quot; alt=&quot;Lyssna på låtarna via Spotify&quot; /&gt;&lt;/a&gt;
			&lt;/div&gt;
EOT</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #000088;">$extra_info</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$content</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Steg 3:<br />
Lägg till ett filter, som anropar spotify_content varje gång WordPress-funktionen the_content anropas. Det är the_content som visar texten i ett blogginlägg så den kommer definitivt att anropas från exempelvis single.php och index.php (det finns undantag, se längre ner)</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">add_filter<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'the_content'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'spotify_content'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Steg 4:<br />
Lägg till en css-klass i style.css som lägger din div som du vill ha den. Den allra enklaste varianten blir så här:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.spotify-link</span> <span style="color: #00AA00;">&#123;</span>
   <span style="color: #000000; font-weight: bold;">float</span><span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">right</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>Och det var allt. Resultatet, med en klickbar spotify-logga för varje spotifierat inlägg blir så här:<br />
<div id="attachment_281" class="wp-caption alignnone" style="width: 580px"><img src="http://jonasnordstrom.se/wp-content/uploads/2010/01/Bild-21-580x477.png" alt="topp30.se med automatisk spotifylänk" title="topp30 spotified" width="580" height="477" class="size-medium wp-image-281" /><p class="wp-caption-text">topp30.se med automatisk spotifylänk</p></div></p>
<p>Observera att ibland används the_excerpt stället för the_content i mallarna. Det är när man bara vill visa ett utdrag ur inläggen istället för hela texten.<br />
Om man vill ha spotify-länken även i dessa mallar så är det inte svårare än att man lägger in ett filter för the_excerpt också:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">add_filter<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'the_excerpt'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'spotify_content'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://jonasnordstrom.se/automatisk-spotifylank-i-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

