<?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>Fredrik Malmgren &#187; Utveckling</title>
	<atom:link href="http://fredrikmalmgren.se/kategori/utveckling/feed/" rel="self" type="application/rss+xml" />
	<link>http://fredrikmalmgren.se</link>
	<description>Allt inom webb och mobilt</description>
	<lastBuildDate>Wed, 23 Mar 2011 15:28:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2</generator>
		<item>
		<title>Hjälp Google AdSense hitta relevant innehåll</title>
		<link>http://fredrikmalmgren.se/2010/10/hjalp-google-adsense-hitta-relevant-innehall/</link>
		<comments>http://fredrikmalmgren.se/2010/10/hjalp-google-adsense-hitta-relevant-innehall/#comments</comments>
		<pubDate>Tue, 26 Oct 2010 18:58:40 +0000</pubDate>
		<dc:creator>Fredrik Malmgren</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Egna projekt]]></category>
		<category><![CDATA[Utveckling]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[google adsense]]></category>
		<category><![CDATA[relevant adsense ads]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://fredrikmalmgren.se/?p=1697</guid>
		<description><![CDATA[För bara en liten stund sedan släppte jag mitt tredje plugin till WordPress. Precis som mina tidigare plugins är även denna relativt simpel. Med Relevant AdSense Ads kan man hjälpa Google AdSense visa mer relevanta annonser genom att markera vilka sektioner på en sajt eller en bloggpost som är relevanta och vilka som inte är [...]]]></description>
			<content:encoded><![CDATA[<p>För bara en liten stund sedan släppte jag mitt tredje plugin till WordPress. Precis som mina tidigare plugins är även denna relativt simpel.</p>
<p>Med Relevant AdSense Ads kan man hjälpa Google AdSense visa mer relevanta annonser genom att markera vilka sektioner på en sajt eller en bloggpost som är relevanta och vilka som inte är det.</p>
<p>Ett exempel på det är om man skriver om en viss typ av sajter som man inte gillar så vill man såklart inte visa annonser baserat på denna text.</p>
<p>Läs mer om <a title="Relevant AdSense Ads | Fredrik Malmgren" href="http://fredrikmalmgren.com/wordpress/plugins/relevant-adsense-ads/" target="_blank">Relevant AdSense Ads</a> eller <a title="Ladda ner Relevant AdSense Ads | Fredrik Malmgren" href="http://downloads.wordpress.org/plugin/relevant-adsense-ads.zip">ladda ner</a> det direkt och testa.</p>
<div id="attachment_1698" class="wp-caption alignnone" style="width: 535px"><a href="http://fredrikmalmgren.se/wp-content/uploads/2010/10/wordpress-relevant-adsense-ads.png"><img class="size-full wp-image-1698" title="WordPress Relevant AdSense Ads" src="http://fredrikmalmgren.se/wp-content/uploads/2010/10/wordpress-relevant-adsense-ads.png" alt="WordPress Relevant AdSense Ads" width="525" height="365" /></a><p class="wp-caption-text">Adminsida för Relevant AdSense Ads</p></div>
]]></content:encoded>
			<wfw:commentRss>http://fredrikmalmgren.se/2010/10/hjalp-google-adsense-hitta-relevant-innehall/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Min första officiella WordPress plugin och en ny sajt</title>
		<link>http://fredrikmalmgren.se/2010/09/min-forsta-officiella-wordpress-plugin-och-en-ny-sajt/</link>
		<comments>http://fredrikmalmgren.se/2010/09/min-forsta-officiella-wordpress-plugin-och-en-ny-sajt/#comments</comments>
		<pubDate>Tue, 14 Sep 2010 07:07:05 +0000</pubDate>
		<dc:creator>Fredrik Malmgren</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Egna projekt]]></category>
		<category><![CDATA[Utveckling]]></category>
		<category><![CDATA[easy excerpt]]></category>
		<category><![CDATA[fredrikmalmgren.com]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://fredrikmalmgren.se/?p=1651</guid>
		<description><![CDATA[I söndags publicerade jag min första officiella WordPress plugin. Pluginet heter Easy Excerpt och som namnet antyder har det med WordPress excerpt att göra. Med mitt plugin kan man ändra antalet ord, hur excerpt slutar och om man vill lägga till en länk för  &#8221;läs-mer&#8221; i slutet på sin excerpt. Easy Excerpt är inte ett [...]]]></description>
			<content:encoded><![CDATA[<p>I söndags publicerade jag min första officiella <a title="Plugins | Fredrik Malmgren" href="http://fredrikmalmgren.com/wordpress/plugins/" target="_blank">WordPress plugin</a>. Pluginet heter <a title="Easy Excerpt | Fredrik Malmgren" href="http://fredrikmalmgren.com/wordpress/plugins/easy-excerpt/" target="_blank">Easy Excerpt</a> och som namnet antyder har det med WordPress excerpt att göra. Med mitt plugin kan man ändra antalet ord, hur excerpt slutar och om man vill lägga till en länk för  &#8221;läs-mer&#8221; i slutet på sin excerpt.</p>
<p>Easy Excerpt är inte ett speciellt avancerat plugin utan målet jag hade var att lära mig mer om hur man skapar ett plugin och använder WordPress API på rätt sätt. Jag har en del andra liknande plugins som ligger halvfärdiga och som förhoppningsvis snart blir klara. Såklart finns det även mer avancerade plugin som jag skulle vilja göra men det får bli när jag känner att grunderna sitter bättre.</p>
<div id="attachment_1669" class="wp-caption alignnone" style="width: 535px"><a href="http://fredrikmalmgren.se/wp-content/uploads/2010/09/wordpress-easy-excerpt.png"><img class="size-full wp-image-1669" title="Easy Excerpt" src="http://fredrikmalmgren.se/wp-content/uploads/2010/09/wordpress-easy-excerpt.png" alt="Easy Excerpt" width="525" height="307" /></a><p class="wp-caption-text">Adminsida för Easy Excerpt</p></div>
<p>I samband med publiceringen av Easy Excerpt har jag även gjort en nya sajt vilken på många sätt kommer att vara lik denna fast den nya sajten kommer att vara på engelska. Sajten ligger på domänen <a title="Fredrik Malmgren" href="http://fredrikmalmgren.com/" target="_blank">FredrikMalmgren.com</a>. Anledningen till att jag skapar ytterligare en sajt är att jag tänker publicera fler plugins som till exempel Easy Excerpt men även andra saker som plugins till webbläsare, tutorials med mera. Sajten kommer även att fungera som en portfolio där jag listar alla projekt och sajter jag gör.</p>
]]></content:encoded>
			<wfw:commentRss>http://fredrikmalmgren.se/2010/09/min-forsta-officiella-wordpress-plugin-och-en-ny-sajt/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Ny trackingkod för Google Analytics</title>
		<link>http://fredrikmalmgren.se/2010/08/ny-trackingkod-for-google-analytics/</link>
		<comments>http://fredrikmalmgren.se/2010/08/ny-trackingkod-for-google-analytics/#comments</comments>
		<pubDate>Wed, 11 Aug 2010 11:32:57 +0000</pubDate>
		<dc:creator>Fredrik Malmgren</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Tjänster]]></category>
		<category><![CDATA[Utveckling]]></category>
		<category><![CDATA[Verktyg]]></category>
		<category><![CDATA[google analytics]]></category>

		<guid isPermaLink="false">http://fredrikmalmgren.se/?p=1627</guid>
		<description><![CDATA[Många är vi som använder Googles populära trackingsystem Google Analytics. Nu för tiden när Google har gått ut med att laddtiden för en sida att laddas spelar roll för SEO så är det väldigt viktigt att scriptet för Google Analytics inte gör sidan seg när man väntar på att den ska koppla upp mot servern. [...]]]></description>
			<content:encoded><![CDATA[<p>Många är vi som använder Googles populära trackingsystem <a title="Google Analytics | Official Website" href="http://analytics.google.com" target="_blank">Google Analytics</a>. Nu för tiden när Google har gått ut med att laddtiden för en sida att laddas spelar roll för SEO så är det väldigt viktigt att scriptet för Google Analytics inte gör sidan seg när man väntar på att den ska koppla upp mot servern. För en tid sedan kom Google med en lösning på detta problem, nämligen ett asynkront javascript. I slutet av <a title="Google Analytics Blog: Google  Analytics launches asynchronous  tracking" href="http://analytics.blogspot.com/2009/12/google-analytics-launches-asynchronous.html" target="_blank">2009 släppte Google detta javascript</a> som Beta och från <a title="Google Analytics Blog: It’s now easy to set up new  sites with  Asynchronous Tracking" href="http://analytics.blogspot.com/2010/05/its-now-easy-to-set-up-new-sites-with.html" target="_blank">maj 2010 är det detta javascript man får som standard </a>när man lägger till nya sajter i Google Analytics.</p>
<p>Så här såg den gamla koden ut:</p>
<pre class="brush: php; title: ; notranslate">
&lt;script type=&quot;text/javascript&quot;&gt;
	var gaJsHost = ((&quot;https:&quot; == document.location.protocol) ? &quot;https://ssl.&quot; : &quot;http://www.&quot;);
	document.write(unescape(&quot;%3Cscript src='&quot; + gaJsHost + &quot;google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E&quot;));
&lt;/script&gt;

&lt;script type=&quot;text/javascript&quot;&gt;
	try {
		var pageTracker = _gat._getTracker(&quot;UA-xxxxxxx-x&quot;);
		pageTracker._trackPageview();
	} catch(err) {}
&lt;/script&gt;
</pre>
<p>Den nya asynkronta javascriptet:</p>
<pre class="brush: php; title: ; notranslate">
&lt;script type=&quot;text/javascript&quot;&gt;
	var analyticsFileTypes = [''];
	var analyticsEventTracking = 'enabled';
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
	var _gaq = _gaq || [];
	_gaq.push(['_setAccount', 'UA-xxxxxxxx-x']);
	_gaq.push(['_trackPageview']);

	(function() {
		var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
		ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
		(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(ga);
	})();
&lt;/script&gt;
</pre>
<p>Självklart fungerar fortfarande den gamla koden men det är rekommenderat att byta till den nya snabbare koden så snart som möjligt.</p>
]]></content:encoded>
			<wfw:commentRss>http://fredrikmalmgren.se/2010/08/ny-trackingkod-for-google-analytics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Idag fyller WordPress 7 år!</title>
		<link>http://fredrikmalmgren.se/2010/05/idag-fyller-wordpress-7-ar/</link>
		<comments>http://fredrikmalmgren.se/2010/05/idag-fyller-wordpress-7-ar/#comments</comments>
		<pubDate>Thu, 27 May 2010 19:20:30 +0000</pubDate>
		<dc:creator>Fredrik Malmgren</dc:creator>
				<category><![CDATA[Allmänt]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[Utveckling]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://fredrikmalmgren.se/?p=1411</guid>
		<description><![CDATA[Idag för 7 år sedan skrev Matt Mullenweg (@photomatt) ett inlägg på WordPress.org med rubriken WordPress Now Available. Första releasen var version 0.7 och sedan dess har mycket hänt. Nu väntar alla på version 3.0 som inte är långt ifrån att släppas. WordPress har under åren som gått utvecklats från en plattform för bloggar till [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://fredrikmalmgren.se/wp-content/uploads/2010/05/wordpress-logo.png"><img class="size-full wp-image-1418 alignnone" title="Wordpress logo" src="http://fredrikmalmgren.se/wp-content/uploads/2010/05/wordpress-logo.png" alt="Wordpress logo" width="499" height="113" /></a></p>
<p>Idag för 7 år sedan skrev <a title="Matt Mullenweg - aka Photo Matt - on WordPress, Web, Jazz, Life, and Photography" href="http://ma.tt/" target="_blank">Matt Mullenweg</a> (<a title="Matt Mullenweg on Twitter" href="http://twitter.com/photomatt" target="_blank">@photomatt</a>) ett inlägg på WordPress.org med rubriken <a title="WordPress &gt; Blog &gt; WordPress Now Available" href="http://wordpress.org/development/2003/05/wordpress-now-available/" target="_blank">WordPress Now Available</a>. Första releasen var version 0.7 och sedan dess har mycket hänt. Nu väntar alla på version 3.0 som inte är långt ifrån att släppas.</p>
<p><a title="WordPress &gt; Blog Tool and Publishing Platform" href="http://wordpress.org/" target="_blank">WordPress</a> har under åren som gått utvecklats från en plattform för bloggar till att även fungera utmärkt som CMS för göra sajter. Innan jag fick upp ögonen för WordPress använde jag uteslutande <a title="Joomla!" href="http://www.joomla.org/" target="_blank">Joomla</a> men har nu nästan helt gått över till WordPress.</p>
<p>Har du inte testat WordPress än rekommenderar jag verkligen att du ger det en chans, du kommer inte att ångra dig.</p>
]]></content:encoded>
			<wfw:commentRss>http://fredrikmalmgren.se/2010/05/idag-fyller-wordpress-7-ar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutorial – Skapa ett plugin för dina shortcodes i WordPress</title>
		<link>http://fredrikmalmgren.se/2010/05/tutorial%e2%80%93skapa-ett-plugin-for-dina-shortcodes-i-wordpress/</link>
		<comments>http://fredrikmalmgren.se/2010/05/tutorial%e2%80%93skapa-ett-plugin-for-dina-shortcodes-i-wordpress/#comments</comments>
		<pubDate>Tue, 11 May 2010 07:29:13 +0000</pubDate>
		<dc:creator>Fredrik Malmgren</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Utveckling]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://fredrikmalmgren.se/?p=1338</guid>
		<description><![CDATA[En väldigt användbar funktion som kom i WordPress 2.5 är shortcodes. Det är en liten kod som man skriver in i sin editor och när posten visas på bloggen tolkas koden och innehållet skrivs ut i bloggposten. Detta kan man till exempel använda för att placera annonser från Google Adsense mitt i en post. Läs [...]]]></description>
			<content:encoded><![CDATA[<p>En väldigt användbar funktion som kom i WordPress 2.5 är shortcodes. Det är en liten kod som man skriver in i sin editor och när posten visas på bloggen tolkas koden och innehållet skrivs ut i bloggposten. Detta kan man till exempel använda för att placera annonser från Google Adsense mitt i en post. Läs min tutorial för <a title="Tutorial – Skriv egna shortcodes till  WordPress" href="../2010/04/tutorial%E2%80%93skriv-egna-shortcodes-till-wordpress/" target="_blank">hur man skriver egna shortcodes till WordPress</a> om du vill veta med om shortcodes.</p>
<h2>Vad är fördelen med att lägga shortcodes i en plugin?</h2>
<p>Det vanligaste är att man lägger sina shortcodes i functions.php som finns i de flesta teman. De uppenbara nackdelarna med detta är att när man uppdaterar eller byter ut sitt tema och glömmer att kopiera över sina shortcodes till det nya temat kommer dessa att försvinna.</p>
<p>Lösningen på detta är att skapa ett plugin där man lägger alla sina shortcodes. På detta sätt blir de tillgängliga oberoende vilket tema du använder. Det är också väldigt lätt att flytta dem till andra bloggar.</p>
<h2>Hur gör man ett plugin för sina shortcodes?</h2>
<p>Börja med att skapa en fil som heter shortcodes.php. För att det ska gå att aktivera ett plugin i WordPress måste följande rader finnas.</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
/*
Plugin Name: Name Of The Plugin
Plugin URI: http://URI_Of_Page_Describing_Plugin_and_Updates
Description: A brief description of the Plugin.
Version: The Plugin's Version Number, e.g.: 1.0
Author: Name Of The Plugin Author
Author URI: http://URI_Of_The_Plugin_Author
*/
?&gt;
</pre>
<p>Nu när grunden är klar återstår det bara att lägga in alla shortcodes du vill använda.</p>
<p>Så här kan ett färdigt plugin se ut med en shortcode som skriver ut Hello World.</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
/*
Plugin Name: My plugin for shortcodes
Plugin URI: http://fredrikmalmgren.se/2010/05/tutorial–skapa-ett-plugin-for-dina-shortcodes-i-wordpress
Description: This is a plugin for all my shortcodes to separate them from my theme
Version: 1.0
Author: Fredrik Malmgren
Author URI: http://fredrikmalmgren.se
*/

function hello() {
 return 'Hello, World!';
}
add_shortcode('hw', 'hello');

?&gt;
</pre>
<p>Lägg sedan denna fil i wp-content/plugins. När du gjort det borde du kunna se något liknande i WordPress under Plugins.</p>
<div id="attachment_1339" class="wp-caption alignnone" style="width: 560px"><a href="http://fredrikmalmgren.se/wp-content/uploads/2010/05/wordpress-plugin-for-shortcodes.jpg"><img class="size-full wp-image-1339" title="Wordpress plugin för shortcodes" src="http://fredrikmalmgren.se/wp-content/uploads/2010/05/wordpress-plugin-for-shortcodes.jpg" alt="Wordpress plugin för shortcodes" width="550" height="72" /></a><p class="wp-caption-text">Wordpress plugin för shortcodes</p></div>
<p>För att kunna börja använda sina shortcodes är det bara att man aktiverar sitt plugin.</p>
<p>Att göra ett plugin som endast ska användas för eget bruk ställer inte samma krav som ett plugin som man ska publicera i WordPress plugin directory. Vill man göra ett plugin som ska publiceras krävs <a title="How to Add Your Plugin to the WordPress Plugin Directory | Digging into WordPress" href="http://digwp.com/2010/03/add-plugin-to-wordpress-plugin-repository/" target="_blank">en del andra saker</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://fredrikmalmgren.se/2010/05/tutorial%e2%80%93skapa-ett-plugin-for-dina-shortcodes-i-wordpress/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tutorial – Skriv egna shortcodes till WordPress</title>
		<link>http://fredrikmalmgren.se/2010/04/tutorial%e2%80%93skriv-egna-shortcodes-till-wordpress/</link>
		<comments>http://fredrikmalmgren.se/2010/04/tutorial%e2%80%93skriv-egna-shortcodes-till-wordpress/#comments</comments>
		<pubDate>Thu, 22 Apr 2010 08:09:40 +0000</pubDate>
		<dc:creator>Fredrik Malmgren</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Utveckling]]></category>
		<category><![CDATA[google adsense]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://fredrikmalmgren.se/?p=1245</guid>
		<description><![CDATA[I WordPress 2.5 introducerades en funktion som kallas shortcodes. Om du någon gång har velat lägga in AdSense annonser mitt i en bloggpost eller till exempel visas din page rank kan du helt enkelt skriva [adsense] eller [pagerank] direkt i bloggposten där du vill visa det aktuella innehållet. Vad är shortcodes? Det finns tre grundtyper [...]]]></description>
			<content:encoded><![CDATA[<p>I WordPress 2.5 introducerades en funktion som kallas shortcodes. Om du någon gång har velat lägga in AdSense annonser mitt i en bloggpost eller till exempel visas din page rank kan du helt enkelt skriva [adsense] eller [pagerank] direkt i bloggposten där du vill visa det aktuella innehållet.</p>
<h2>Vad är shortcodes?</h2>
<p>Det finns tre grundtyper av shortcodes. Den enklaste varianten är att man endast skriver följande i sin bloggpost:</p>
<pre class="brush: php; title: ; notranslate">[adsense]</pre>
<p>Ovan version ger inget utrymme för val av till exempel storlek på annonsen. Vill man kunna välja storlek kan man lägga till en parameter:</p>
<pre class="brush: php; title: ; notranslate">[adsense format=1]</pre>
<p>Ovan version ger dig en AdSense annons med till exempel bredden 468 pixlar. Den sista typen är när man vill lägga till eget innehåll. Så här kan det se ut när man skapar en AdSense annons med en rubrik:</p>
<pre class="brush: php; title: ; notranslate">[adsense format=1]Annons:[/adsense]</pre>
<p>Dessa koder skriver man helt enkelt in i sin editor där man vill att de ska bli synliga. När sedan en besökare läser din bloggpost kommer denna shortcode att översättas och den bakomliggande funktionen körs och visar innehållet i bloggposten.</p>
<h2>Hur skapar man shortcodes?</h2>
<p>Att skapa en shortcode är väldigt enkelt. Kan du skriva lite PHP har du stora möjligheter att skapa användbara shortcodes som kommer att spara mycket tid åt dig.</p>
<p>Först skapar vi den enklaste versionen av shortcode:</p>
<pre class="brush: php; title: ; notranslate">[adsense]</pre>
<p>I detta fall finns det bara en typ av annons man kan välja på.</p>
<p>Börja med att öppna filen functions.php som ligger i ditt tema. Finns den inte kan du skapa den. Efter det skriver du in följande kod:</p>
<pre class="brush: php; title: ; notranslate">function add_adsense() {
return '&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-XXXXXXXXXXXXXX&quot;;
google_ad_slot = 'XXXXXXXXXX';
google_ad_width = 468;
google_ad_height = 60;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;';
}</pre>
<p>Nu när funktionen är klar måste vi berätta för WordPress att det är en shortcode och det gör vi med följande rad:</p>
<pre class="brush: php; title: ; notranslate">add_shortcode('adsense', 'add_adsense');</pre>
<p>Den första parametern är vad du skriver i din bloggpost för att använda din shortcode och den andra är funktionens namn i functions.php</p>
<p>Om man vill använda sig av flera olika storlekar på annonser kan man lägga till en parameter som anger format. Då får man istället en shortcode som ser ut så här:</p>
<pre class="brush: php; title: ; notranslate">[adsense format =1]</pre>
<p>I functions.php skriver man istället följande:</p>
<pre class="brush: php; title: ; notranslate">function add_adsense( $atts ) {
extract(shortcode_atts(array(
'format' =&gt; '1',
), $atts));
switch ($format) {
case 1 :
$ad = ' &lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-xxxxxxxxxxxxxxxx&quot;;
google_ad_slot = &quot;xxxxxxxxxx&quot;;
google_ad_width = 468;
google_ad_height = 60;
//--&gt;
&lt;/script&gt;';
break;
case 2 :
$ad = ' &lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-xxxxxxxxxxxxxxxx&quot;;
google_ad_slot = &quot;xxxxxxxxxx&quot;;
google_ad_width = 300;
google_ad_height = 250;
//--&gt;
&lt;/script&gt;';
break;
}
$rest = '&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;';
return $ad.$rest;

}
add_shortcode('adsense', 'add_adsense');</pre>
<p>Vill man lägga till flera annonstyper är det bara att lägga till fler case i koden ovan.<br />
Om man vill bygga på sin shortcode ytterligare kan man välja att lägga till extra innehåll i form av en text som talar om att det är en annons på följande sätt.</p>
<pre class="brush: php; title: ; notranslate"> [adsense format=1]Annons:[/adsense]</pre>
<p>I vår functions.php skriver vi då följande kod:</p>
<pre class="brush: php; title: ; notranslate">function add_adsense( $atts, $content = null ) {
extract(shortcode_atts(array(
'format' =&gt; '1',
), $atts));
switch ($format) {
case 1 :
$ad = ' &lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-xxxxxxxxxxxxxxxx&quot;;
google_ad_slot = &quot;xxxxxxxxxx&quot;;
google_ad_width = 468;
google_ad_height = 60;
//--&gt;
&lt;/script&gt;';
break;
case 2 :
$ad = ' &lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-xxxxxxxxxxxxxxxx&quot;;
google_ad_slot = &quot;xxxxxxxxxx&quot;;
google_ad_width = 300;
google_ad_height = 250;
//--&gt;
&lt;/script&gt;';
break;
}
$rest = '&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;';

return = '&lt;strong&gt;'.$content. '&lt;/strong&gt;&lt;br/&gt;'.$adsense.$rest;

}
add_shortcode('adsense', 'add_adsense');</pre>
<p>Det var tre exempel på olika typer av shortcodes man kan använda för att lägga till annonser från Google AdSense mitt i en bloggpost. Glöm inte bort att byta ut AdSense koden till din egen.</p>
<p>Läs mer om <a title="Shortcode API &lt;&lt; WordPress Codex" href="http://codex.wordpress.org/Shortcode_API" target="_blank">WordPress shortcodes API﻿</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://fredrikmalmgren.se/2010/04/tutorial%e2%80%93skriv-egna-shortcodes-till-wordpress/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Tutorial &#8211; Använd miniatyrbilder i WordPress</title>
		<link>http://fredrikmalmgren.se/2010/03/tutorial-anvand-miniatyrbilder-i-wordpress/</link>
		<comments>http://fredrikmalmgren.se/2010/03/tutorial-anvand-miniatyrbilder-i-wordpress/#comments</comments>
		<pubDate>Wed, 31 Mar 2010 07:42:49 +0000</pubDate>
		<dc:creator>Fredrik Malmgren</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Utveckling]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://fredrikmalmgren.se/?p=1035</guid>
		<description><![CDATA[Många teman som ser ut som en tidningar eller magasin har länge använt sig av en bild för varje post på startsidan. Hittills har det inte funnits något standardiserat sätt att göra detta på utan man har ofta använt sig av custom fields för att åstadkomma detta. Sedan WordPress 2.9 finns en funktion som gör [...]]]></description>
			<content:encoded><![CDATA[<p>Många teman som ser ut som en tidningar eller magasin har länge använt sig av en bild för varje post på startsidan. Hittills har det inte funnits något standardiserat sätt att göra detta på utan man har ofta använt sig av custom fields för att åstadkomma detta. Sedan WordPress 2.9 finns en funktion som gör att man kan ladda upp en miniatyrbild (thumbnail på engelska) till varje post eller sida.<br />
De flesta teman som använder miniatyrbilder för posterna och som är gjorda för WordPress 2.9 använder troligtvis redan denna funktion. Skulle du hitta ett tema som inte gör det är det ingen katastrof. Det är nämligen väldigt lätt att själv lägga till denna funktion i temat.</p>
<h2>Aktivera ministyrbilder i WordPress</h2>
<p>Det första man måste göra är att aktivera funktionen för miniatyrbilder. Man kan välja på om man vill aktivera det för både poster och sidor eller bara för någon av dem. Lägg till någon av följande rader i functions.php beroende på hur du vill göra.</p>
<pre class="brush: php; title: ; notranslate">add_theme_support( 'post-thumbnails' ); // post och sida
add_theme_support( 'post-thumbnails', array( 'post' ) ); // endast post
add_theme_support( 'post-thumbnails', array( 'page' ) ); // endast sida </pre>
<p>Nästa steg är att ange storleken för dina miniatyrbilder, även det i functions.php. Här har man lite olika val både när det gäller storleken på bilderna men även hur man ska beskära bilden. Det enklaste fallet är att ange miniatyrbilder enligt följande.</p>
<pre class="brush: php; title: ; notranslate"> set_post_thumbnail_size( 100, 100 );</pre>
<p>Detta betyder att bilder är i storlek 100&#215;100 pixlar och bilden förminskas tills den får plats inom angiven storlek. Anger man istället följande så betyder det att man beskär bilden i angiven storlek.</p>
<pre class="brush: php; title: ; notranslate"> set_post_thumbnail_size( 100, 100, true );</pre>
<p>Det kan finnas tillfällen då man vill använda samma bild fast i en annan storlek på till exempel sidan som visar hela posten (single.php). Detta gör man genom att ange fler storlekar på detta sätt i functions.php.</p>
<pre class="brush: php; title: ; notranslate"> add_image_size( 'single-post-thumbnail', 400, 9999 );</pre>
<h2>Visa miniatyrbilder på sajten</h2>
<p>För att sedan visa miniatyrbilderna i home.php eller index.php anger man följande kod.</p>
<pre class="brush: php; title: ; notranslate">&lt;?php the_post_thumbnail(); ?&gt;</pre>
<p>För att visa bilder på single.php i den större storleken anger man följande.</p>
<pre class="brush: php; title: ; notranslate">&lt;?php the_post_thumbnail( 'single-post-thumbnail' ); ?&gt;</pre>
<h2>Stöd tidigare versioner av WordPress</h2>
<p>Om man utvecklar ett tema som man planerar att publicera kan man lägga till funktioner som kontrollerar vilken version av WordPress man använder och om inlägget verkligen har en miniatyrbild. Ange följande kod i function.php för att kontrollera vilken version av WordPress du använder. Använder man version 2.9 eller nyare aktiverar man funktionen för miniatyrbilder.</p>
<pre class="brush: php; title: ; notranslate">if ( function_exists( 'add_theme_support' ) ) { // Från och med 2.9
add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 100, 100, true ); // index.php eller home.php
add_image_size( 'single-post-thumbnail', 400, 9999 ); // single.php
}</pre>
<p>För att kontrollera om en post innehåller en miniatyrbild anger man följande.</p>
<pre class="brush: php; title: ; notranslate">if ( has_post_thumbnail() ) {
the_post_thumbnail(); // posten har en miniatyrbild
} else {
// posten saknar en miniatyrbild
}</pre>
<h2>Använd CSS med dina thumbnails</h2>
<p>Vill man använda CSS tillsammans med sina miniatyrbilder kan man såklart göra det.</p>
<pre class="brush: php; title: ; notranslate">the_post_thumbnail('single-post-thumbnail', array('class'=&gt;'thumbnail')); </pre>
<h2>Hur fungerar det för användare?</h2>
<p>Efter att ha gått igenom hur man aktiverar miniatyrbilder i sitt tema ska vi kolla på hur det fungerar när man väl skriver inlägg i sin blogg eller på sin webbsida.</p>
<p>Har man gjort allt ovanstående och går till sidan där man skriver sina inlägg så ser man följande box där man kan ladda upp en miniatyrbild.</p>
<div id="attachment_1167" class="wp-caption alignnone" style="width: 454px"><a href="http://fredrikmalmgren.se/wp-content/uploads/2010/03/post-set-thumbnail.png"><img class="size-full wp-image-1167   " title="Post Set Thumbnail" src="http://fredrikmalmgren.se/wp-content/uploads/2010/03/post-set-thumbnail.png" alt="Post Set Thumbnail" width="444" height="297" /></a><p class="wp-caption-text">Ladda upp en miniatyrbild</p></div>
<p>Om man klickar på Set thumbnail i bilden ovan så kommer man till den vanliga bilduppladdningen i WordPress men nu så har man fått ytterligare ett val att använda bilden som miniatyrbild (thumbnail).</p>
<div id="attachment_1175" class="wp-caption alignnone" style="width: 485px"><a href="http://fredrikmalmgren.se/wp-content/uploads/2010/03/use-as-thumbnail.png"><img class="size-full wp-image-1175  " title="Use As Thumbnail" src="http://fredrikmalmgren.se/wp-content/uploads/2010/03/use-as-thumbnail.png" alt="Use As Thumbnail" width="475" height="263" /></a><p class="wp-caption-text">Använd som miniatyrbild</p></div>
<p>När detta är gjort så ser man den uppladdade bilden direkt på sidan.</p>
<div id="attachment_1178" class="wp-caption alignnone" style="width: 445px"><a href="http://fredrikmalmgren.se/wp-content/uploads/2010/03/preview-post-thumbnail.png"><img class="size-full wp-image-1178  " title="Preview Post Thumbnail" src="http://fredrikmalmgren.se/wp-content/uploads/2010/03/preview-post-thumbnail.png" alt="Preview Post Thumbnail" width="435" height="456" /></a><p class="wp-caption-text">Förhandsgranska inläggets miniatyrbild</p></div>
<p>Svårare än så är det inte att aktivera miniatyrbilder i sitt tema och att använda funktionen när man skriver inlägg på sin blogg.</p>
]]></content:encoded>
			<wfw:commentRss>http://fredrikmalmgren.se/2010/03/tutorial-anvand-miniatyrbilder-i-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Utöka minnet för WordPress</title>
		<link>http://fredrikmalmgren.se/2010/03/utoka-minnet-for-wordpress/</link>
		<comments>http://fredrikmalmgren.se/2010/03/utoka-minnet-for-wordpress/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 07:40:55 +0000</pubDate>
		<dc:creator>Fredrik Malmgren</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Utveckling]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://fredrikmalmgren.se/?p=1103</guid>
		<description><![CDATA[Ibland när man uppdaterar WordPress eller installerar ett stort plugin så kan WordPress behöva använda mer minne än de 32 MB som är satt som standard. Detta hände mig när jag uppdaterade till 2.9.2. Om man råkar ut för detta kan man testa att utöka minnet på lite olika sätt beroende på vilket webbhotell man [...]]]></description>
			<content:encoded><![CDATA[<p>Ibland när man uppdaterar WordPress eller installerar ett stort plugin så kan WordPress behöva använda mer minne än de 32 MB som är satt som standard. Detta hände mig när jag uppdaterade till 2.9.2. Om man råkar ut för detta kan man testa att utöka minnet på lite olika sätt beroende på vilket webbhotell man använder.</p>
<ol>
<li>Om du har tillgång till php.ini, kan man ändra följande rad till 64M istället för 32M</li>
<pre class="brush: plain; title: ; notranslate">memory_limit = 64M;</pre>
<li>Om du inte har tillgång till php.ini, kan man lägga till följande rad till sin .htaccess</li>
<pre class="brush: plain; title: ; notranslate">php_value memory_limit 64M</pre>
<li>Ett annat alternativ är att lägga till följande rad till sin wp-config.php</li>
<pre class="brush: plain; title: ; notranslate">define('WP_MEMORY_LIMIT', '64M');</pre>
<li>Sista alternativet är att ta kontakt med ditt webbhotell</li>
</ol>
<p>För mig fungerade lösning nummer två bra.</p>
]]></content:encoded>
			<wfw:commentRss>http://fredrikmalmgren.se/2010/03/utoka-minnet-for-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Testa din mobilsajt med ready.mobi</title>
		<link>http://fredrikmalmgren.se/2009/10/testa-din-mobilsajt-med-ready-mobi/</link>
		<comments>http://fredrikmalmgren.se/2009/10/testa-din-mobilsajt-med-ready-mobi/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 08:03:37 +0000</pubDate>
		<dc:creator>Fredrik Malmgren</dc:creator>
				<category><![CDATA[Test]]></category>
		<category><![CDATA[Utveckling]]></category>
		<category><![CDATA[dotMobi]]></category>
		<category><![CDATA[mobileok]]></category>
		<category><![CDATA[ready.mobi]]></category>

		<guid isPermaLink="false">http://fredrikmalmgren.se/?p=196</guid>
		<description><![CDATA[Jag har varit aktiv inom mobilbranschen ett flertal år nu, dels inom MobileMonday och dels på Squace. Hittills har jag inte skrivit så mycket om mobilbranschen eller om mobilutveckling så jag tänkte börja lite smått med det nu. När man utvecklar för webben är det viktigt att man testar sina sajter för alla olika webbläsare [...]]]></description>
			<content:encoded><![CDATA[<p>Jag har varit aktiv inom mobilbranschen ett flertal år nu, dels inom <a title="MobileMonday.se" href="http://mobilemonday.se/" target="_blank">MobileMonday</a> och dels på <a title="Squace - Mobile social browser" href="http://www.squace.com/" target="_blank">Squace</a>. Hittills har jag inte skrivit så mycket om mobilbranschen eller om mobilutveckling så jag tänkte börja lite smått med det nu.</p>
<p>När man utvecklar för webben är det viktigt att man testar sina sajter för alla olika webbläsare som finns eftersom de beter sig lite olika. När man utvecklar sajter för mobiler är det samma sak. För att göra sin mobilsajt tillgänglig för så många mobilmodeller som möjligt är det viktigt att man följer alla de standarder och riktlinjer som finns. Ett företag som verkar för att mobilbranschen ska ta fart på allvar är <a title="dotMobi" href="http://mtld.mobi/" target="_blank">dotMobi</a> som har ett flertal sajter som handlar om mobilutveckling.</p>
<div id="attachment_787" class="wp-caption alignleft" style="width: 188px"><a href="http://fredrikmalmgren.se/wp-content/uploads/2009/10/ready-mobi-logo.png"><img class="size-full wp-image-787" title="dotMobi compliance &amp; mobileOK checker" src="http://fredrikmalmgren.se/wp-content/uploads/2009/10/ready-mobi-logo.png" alt="dotMobi compliance &amp; mobileOK checker" width="178" height="40" /></a><p class="wp-caption-text">dotMobi compliance &amp; mobileOK checker</p></div>
<p>Företaget har utvecklat ett verktyg som heter <a title="mobiReady - dotMobi compliance &amp; mobileOK checker" href="http://ready.mobi/" target="_blank">ready.mobi</a> som kan användas för att testa hur bra en sida, en bit kod eller en hel sajt lämpar sig för mobiler. Vill man testa hela sajten på en gång måste man vara registrerad på deras sajt. Verktyget testar mot <a title="W3C mobileOK Scheme 1.0" href="http://www.w3.org/TR/mobileOK/" target="_blank">W3C mobileOK</a>, mot andra standarder och praxis inom mobilvärlden. När testet är klart får du en generell bedömning på en skala från noll till fem (där fem är bäst) men även en detaljerad rapport med förslag på förbättringar.</p>
<p>Om du utvecklar sajter för mobiler tycker jag absolut att du ska testa ready.mobi.</p>
]]></content:encoded>
			<wfw:commentRss>http://fredrikmalmgren.se/2009/10/testa-din-mobilsajt-med-ready-mobi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Använd INI-filer med Zend Framework och PHP</title>
		<link>http://fredrikmalmgren.se/2009/09/anvand-ini-filer-med-zend-framework-och-php/</link>
		<comments>http://fredrikmalmgren.se/2009/09/anvand-ini-filer-med-zend-framework-och-php/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 10:51:05 +0000</pubDate>
		<dc:creator>Fredrik Malmgren</dc:creator>
				<category><![CDATA[Ramverk]]></category>
		<category><![CDATA[Utveckling]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[zend]]></category>

		<guid isPermaLink="false">http://fredrikmalmgren.se/?p=704</guid>
		<description><![CDATA[Häromdagen läste jag Baronens blogg om INI-filer och PHP så jag tänkte dela med mig av hur jag använder dessa i mina projekt. I det stora hela gör vi på samma sätt men några skillnader finns. Eftersom jag använder Zend Framework för att implementera MVC använder mig av den inbyggda klassen Zend_Config_Ini som läser från [...]]]></description>
			<content:encoded><![CDATA[<p>Häromdagen läste jag <a title="Så här använder du INI-filer med PHP | Andreas Eriksson - Baronen" href="http://www.baronen.org/anvand-ini-filer-med-php/" target="_blank">Baronens blogg</a> om INI-filer och PHP så jag tänkte dela med mig av hur jag använder dessa i mina projekt. I det stora hela gör vi på samma sätt men några skillnader finns.</p>
<p>Eftersom jag använder <a title="Zend Framework" href="http://framework.zend.com/" target="_blank">Zend Framework</a> för att implementera <a title="Model–view–controller - Wikipedia, the free encyclopedia" href="http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller" target="_blank">MVC</a> använder mig av den inbyggda klassen <a title="Zend_Config_Ini | Zend Framework: Documentation" href="http://framework.zend.com/manual/en/zend.config.adapters.ini.html" target="_blank">Zend_Config_Ini</a> som läser från min INI-fil. Zend_Config_Ini använder sig av  <a title="PHP: parse_ini_file - Manual" href="http://se2.php.net/parse_ini_file" target="_blank">parse_ini_file</a> som är en funktion i PHP. Min INI-fil har två sektioner, en för utveckling och en för produktion. Det fina med denna uppsättning är att sektionen ”development” kan ärva från sektionen ”production” så i &#8221;development&#8221; behöver man bara specificera skillnaden mellan dem. Så här kan en INI-fil se ut.</p>
<p><code><br />
; Production site configuration data<br />
[production]<br />
webhost                  = www.example.com<br />
database.adapter         = pdo_mysql<br />
database.params.host     = db.example.com<br />
database.params.username = dbuser<br />
database.params.password = secret<br />
database.params.dbname   = dbname</code></p>
<p><code>; Development site configuration data inherits from production and overrides values as necessary<br />
[development : production]<br />
database.params.host     = dev.example.com<br />
database.params.username = devuser<br />
database.params.password = devsecret<br />
</code></p>
<p>I min bootstrap-fil har jag definierat min INI-fil så att jag genom hela applikationen kommer åt mina inställningar. Så här kan det se ut.<br />
<code><br />
$configFile = 'config.ini';</code></p>
<p><code>$configSection = '';<br />
if (isset($_SERVER['APP_CONFIG_SECTION'])){<br />
$configSection = basename($_SERVER['APP_CONFIG_SECTION']);<br />
}</code><br />
<code>if (strlen($configSection) == 0){<br />
$configSection = 'production';<br />
}</code><br />
<code>$config = new Zend_Config_Ini('../' . $configFile, $configSection);<br />
Zend_Registry::set('config', $config);</code></p>
<p>Som ni kan se så kontrollerar jag om systemvariabeln $_SERVER['APP_CONFIG_SECTION'] är satt vilket jag bara har gjort på min utvecklingsserver. Detta är för att applikationen själv ska veta om den ligger på utvecklingsservern eller om den ligger på produktionsservern. Genom att göra på detta sätt behöver jag bara en INI-fil och jag behöver aldrig fundera över om jag läser från rätt INI-fil.</p>
<p>När jag sedan vill använda något värde från min config.ini så behövs endast följande kod:<br />
<code><br />
$config = Zend_Registry::get('config');<br />
echo $config-&gt;database-&gt;params-&gt;username;<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://fredrikmalmgren.se/2009/09/anvand-ini-filer-med-zend-framework-och-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

