<?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>Anders Hassis &#187; WordPress</title>
	<atom:link href="http://hassis.com/tag/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://hassis.com</link>
	<description>Did mmorpgs overwrite your common sense?</description>
	<lastBuildDate>Sat, 21 Jan 2012 01:19:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Att köra WordPress Multi-Site på VPS med multi domain mapping</title>
		<link>/2011/06/27/att-kora-wordpress-multi-site-pa-vps-med-multi-domain-mapping/</link>
		<comments>/2011/06/27/att-kora-wordpress-multi-site-pa-vps-med-multi-domain-mapping/#comments</comments>
		<pubDate>Mon, 27 Jun 2011 18:19:25 +0000</pubDate>
		<dc:creator>Anders</dc:creator>
				<category><![CDATA[Programmering]]></category>
		<category><![CDATA[Capistrano]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://hassis.com/?p=627</guid>
		<description><![CDATA[Bakgrund Ett problem som jag haft väldigt länge är att jag kört många olika WordPress-installationer för relativt små projekt. Det är inte alls särskilt roligt att underhålla alla dessa installationer, dvs att hålla kärnan och tillägg uppdaterade. I ett tidigare projekt så skapade Tedde Lundgren ett tillägg som tillät oss att koppla flera olika domäner [...]]]></description>
			<content:encoded><![CDATA[<h3>Bakgrund</h3>
<p>Ett problem som jag haft väldigt länge är att jag kört många olika WordPress-installationer för relativt små projekt. Det är inte alls särskilt roligt att underhålla alla dessa installationer, dvs att hålla kärnan och tillägg uppdaterade. I ett tidigare projekt så skapade <a href="http://twitter.com/tedeh">Tedde Lundgren</a> ett tillägg som tillät oss att koppla flera olika domäner (inte begränsat till subdomäner) till en installation.</p>
<p>Jag är medveten om att det finns liknande tillägg som exempelvis <a href="http://wordpress.org/extend/plugins/wordpress-mu-domain-mapping/">WordPress MU Domain Mapping</a>. Det som skiljde Teddes version från denna var att vi fick tillgång till gruppering av domäner, så vi kan köra separata utvecklingsdomäner. Tillägget är för övrigt en riktig lättviktare och innehåller endast det som behövs, dvs inte bloatat. Tedde har planer på att släppa tillägget öppet senare i sommar.</p>
<p><div id="attachment_669" class="wp-caption alignnone" style="width: 310px"><a href="/static/uploads/hassis.com/2011/06/domainmapper1.jpg" rel="lightbox[627]" title="Domain Mapper"><img class="size-medium wp-image-669" title="Domain Mapper" src="/static/uploads/hassis.com/2011/06/domainmapper1-300x170.jpg" alt="" width="300" height="170" /></a><p class="wp-caption-text">Screenshot Domain Mapper</p></div><br />
&nbsp;<br />
Så förra veckan gjorde jag slag i sak och beställde en VPS hos <a href="http://ipeer.se">Ipeer</a>. Vi har använt Ipeer på många projekt hos <a href="http://populate.se">Populate</a> så jag visste sedan tidigare att det fungerar bra.</p>
<h3>Mjukvara och tjänster som används</h3>
<ul>
<li><a href="http://nginx.net/">Nginx</a> &#8211; Webbserver</li>
<li><a href="http://www.apache.org/">Apache</a>- Webbserver</li>
<li><a href="http://php.net">PHP</a> + <a href="http://php.net/manual/en/book.apc.php">APC</a> &#8211; APC används för cachning</li>
<li><a href="http://memcached.org/">Memcached</a> &#8211; Memcached används för cachning</li>
<li><a href="http://wordpress.org">WordPress</a> + <a href="http://wordpress.org/extend/plugins/w3-total-cache/">W3 Total Cache</a> &#8211; Publiceringsverktyg samt W3 Total Cache för att cacha</li>
<li><a href="http://www.ruby-lang.org/en/">Ruby</a> + <a href="https://github.com/capistrano/capistrano">Capistrano</a> &#8211; Capistrano är en samling Rubyscript som används för att enkelt deploya till drift/utvecklingsserver</li>
<li><a href="http://git-scm.com/">Git</a> + <a href="http://github.com">GitHub</a> &#8211; Git är versionshantering av källkod, GitHub är en tjänst för att samarbeta med andra utvecklare</li>
</ul>
<h3>Webbserver</h3>
<p>Wikipedia skriver följande angående Nginx:</p>
<blockquote><p>Nginx quickly delivers static content with efficient use of system resources. It can deploy dynamic <a title="HTTP" href="http://en.wikipedia.org/wiki/HTTP">HTTP</a> content on a network using <a title="FastCGI" href="http://en.wikipedia.org/wiki/FastCGI">FastCGI</a> handlers for <a title="Scripting language" href="http://en.wikipedia.org/wiki/Scripting_language">scripts</a>, and can serve as a very capable software <a title="Load balancing (computing)" href="http://en.wikipedia.org/wiki/Load_balancing_%28computing%29">load balancer</a>.<sup id="cite_ref-1"><a href="http://en.wikipedia.org/wiki/Nginx#cite_note-1">[2]</a></sup></p></blockquote>
<p>Med detta som grund så valde jag att använda Nginx som webbserver (@port 80) för att servera allt statiskt material (JavaScript, CSS och bilder), för att sedan proxy:a alla andra anrop vidare till Apache (@port 81).</p>
<h3>Cachning och WordPress</h3>
<p>Genom att använda Memcached, APC i kombination med W3 Total Cache så har jag fått ner laddningstiden i WordPress oerhört mycket. Ett problem som jag tyvärr upplever för tillfället är att administrationen i WordPress 3.1.3 är väldigt trög, det verkar vara ett känt problem som många inte upplevde i 3.0.x-branchen. Vi får se ifall det fixas i 3.2 som borde lanseras inom en snar framtid.</p>
<h3>GitHub och Capistrano</h3>
<p>Versionshantera, snälla! <a href="http://blog.ashodnakashian.com/2011/06/git-for-personal-projects/">Även ifall du är den enda i projektet&#8230;</a> På GitHub har jag samlat all kod jag använder i mina projekt. Jag har ett betalkonto som tillåter mig att ha 10 privata repositories och en medarbetare på dessa. All utveckling sker lokalt (på exempelvis http://hassis.dev) och när jag är nöjd så laddar jag upp på GitHub och den jag arbetar med laddar ner det lokalt och tittar över det. När vi sedan är överens om att det går att släppa publikt så kör vi ut allt genom Capistrano. </p>
<p>Capistrano förutsätter att man har tillgång till SSH och använder sig av publika nycklar för att autentisera sig mot servern.</p>
<h3>Slutsats</h3>
<p>Detta är tänkt som en genomgång vad jag använder för verktyg när jag utvecklar. Vill ni se lite exempel på källkod så får ni gärna säga till.</p>
]]></content:encoded>
			<wfw:commentRss>/2011/06/27/att-kora-wordpress-multi-site-pa-vps-med-multi-domain-mapping/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WP Multi-Site: Aktivering av tillägg</title>
		<link>/2011/05/16/wp-multi-site-aktivering-av-tillagg/</link>
		<comments>/2011/05/16/wp-multi-site-aktivering-av-tillagg/#comments</comments>
		<pubDate>Mon, 16 May 2011 13:49:55 +0000</pubDate>
		<dc:creator>Anders</dc:creator>
				<category><![CDATA[Programmering]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://hassis.com/?p=543</guid>
		<description><![CDATA[Inledning Stötte för någon vecka på ett nytt problem för min del. Det handlade om att jag skulle skapa ett plugin som används i multi-site. Jag har jobbat relativt lite med Multi-Sites och problemet var att tabellerna inte skapades för alla &#8221;siterna&#8221; som fanns i nätverket. Källkod register_activation_hook&#40;__FILE__, 'hass_vote_activate'&#41;; &#160; function hass_vote_activate&#40;&#41; &#123; global $wpdb; [...]]]></description>
			<content:encoded><![CDATA[<h3>Inledning</h3>
<p>Stötte för någon vecka på ett nytt problem för min del. Det handlade om att jag skulle skapa ett plugin som används i multi-site. Jag har jobbat relativt lite med Multi-Sites och problemet var att tabellerna inte skapades för alla &#8221;siterna&#8221; som fanns i nätverket.</p>
<h3>Källkod</h3>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">register_activation_hook<span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">__FILE__</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'hass_vote_activate'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> hass_vote_activate<span style="color: #009900;">&#40;</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;">$wpdb</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">function_exists</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'is_multisite'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> is_multisite<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'networkwide'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'networkwide'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$old_blog</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">blogid</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #000088;">$blogids</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get_col</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$wpdb</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">prepare</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SELECT blog_id FROM <span style="color: #006699; font-weight: bold;">$wpdb-&gt;blogs</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$blogids</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$blog_id</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				switch_to_blog<span style="color: #009900;">&#40;</span><span style="color: #000088;">$blog_id</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				_hass_vote_activate<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			switch_to_blog<span style="color: #009900;">&#40;</span><span style="color: #000088;">$old_blog</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #b1b100;">return</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>	
	<span style="color: #009900;">&#125;</span> 
	_hass_vote_activate<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>		
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> _hass_vote_activate<span style="color: #009900;">&#40;</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;">$wpdb</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000088;">$table_name</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">prefix</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'yourtable'</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$wpdb</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get_var</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SHOW TABLES LIKE '<span style="color: #006699; font-weight: bold;">$table_name</span>'&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #000088;">$table_name</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$sql</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;CREATE TABLE &quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$table_name</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot; (
			id mediumint(9) NOT NULL AUTO_INCREMENT,
     			dateadded bigint(11) DEFAULT '0' NOT NULL,
     			subject VARCHAR(255) NOT NULL,
	  		UNIQUE KEY id (id)
	  	);&quot;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #b1b100;">require_once</span><span style="color: #009900;">&#40;</span>ABSPATH <span style="color: #339933;">.</span> <span style="color: #0000ff;">'wp-admin/includes/upgrade.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  		dbDelta<span style="color: #009900;">&#40;</span><span style="color: #000088;">$sql</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Ovanstående kod vandrar igenom alla dina siter som är uppsatta i nätverket och kör aktiveringsfunktionen för dessa.</p>
<p>Koden ovan raderar inte tabellerna vid inaktivering, det skapar heller inte tabellerna för nya siter som aktiveras i nätverket. Du får i sådana fall använda följande actions:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">add_action<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'wpmu_new_blog'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'your_function_activation_on_new_blog'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 		<span style="color: #666666; font-style: italic;">// For new site</span>
register_deactivation_hook<span style="color: #009900;">&#40;</span> <span style="color: #009900; font-weight: bold;">__FILE__</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'your_deactivation_function'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>		<span style="color: #666666; font-style: italic;">// For deactivation</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>/2011/05/16/wp-multi-site-aktivering-av-tillagg/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordCamp Stockholm 2010</title>
		<link>/2010/10/16/wordcamp-stockholm-2010/</link>
		<comments>/2010/10/16/wordcamp-stockholm-2010/#comments</comments>
		<pubDate>Sat, 16 Oct 2010 08:17:01 +0000</pubDate>
		<dc:creator>Anders</dc:creator>
				<category><![CDATA[Personligt]]></category>
		<category><![CDATA[Programmering]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://hassis.com/?p=368</guid>
		<description><![CDATA[Den 23-24 oktober går Sveriges första WordCamp av stapeln. Platsen är Tekniska muséet i Stockholm, och dit kommer vi för att lära av varandra samt ha trevligt &#8211; allt i skön WordPress-anda. Jag deltog i en tävling av Binero och lyckades knipa en biljett till WordCamp Stockholm den kommande helgen (23-24 oktober). Ser ni mig [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://se.wordcamp.org/"><img src="http://hassis.com/static/hassis.com/uploads/2010/10/wordcampsthlm2010-180x300.png" alt="" width="180" height="300" class="alignright size-full wp-image-369" /></a><br />
<blockquote>Den 23-24 oktober går Sveriges första WordCamp av stapeln. Platsen är Tekniska muséet i Stockholm, och dit kommer vi för att lära av varandra samt ha trevligt &#8211; allt i skön WordPress-anda. </p></blockquote>
<p>Jag deltog i <a href="http://blogg.binero.se/2010/10/grattis-har-ar-vinnarna-i-wordcamp-tavlingen-eller-varfor-grodor-flyger/">en tävling av Binero</a> och lyckades knipa en biljett till <a href="http://se.wordcamp.org">WordCamp Stockholm</a> den kommande helgen (23-24 oktober).</p>
<p>Ser ni mig där så tveka inte att säga hej!</p>
<h3>Uppdatering 2010-10-21</h3>
<p>P.g.a. lite oplanerade studier så har jag idag tvingats avboka min biljett på WordCamp. Vi ses nästa år istället!</p>
]]></content:encoded>
			<wfw:commentRss>/2010/10/16/wordcamp-stockholm-2010/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>jQTouch och WordPress</title>
		<link>/2010/08/23/jqtouch-och-wordpress/</link>
		<comments>/2010/08/23/jqtouch-och-wordpress/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 11:42:07 +0000</pubDate>
		<dc:creator>Anders</dc:creator>
				<category><![CDATA[Programmering]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://hassis.com/?p=356</guid>
		<description><![CDATA[Eftersom mobila webbplatser är &#8221;the shizzle&#8221; numera så vill inte jag vara sämre än att haka på tåget. Då jag bygger mycket webbplatser i WordPress så vill jag ha ett &#8221;enkelt&#8221; sätt att ha ett separat tema för den mobila sidan och låta den rulla med hjälp av jQTouch. Tillägget Så, vad är det jag [...]]]></description>
			<content:encoded><![CDATA[<p>Eftersom mobila webbplatser är &#8221;the shizzle&#8221; numera så vill inte jag vara sämre än att haka på tåget. Då jag bygger mycket webbplatser i WordPress så vill jag ha ett &#8221;enkelt&#8221; sätt att ha ett separat tema för den mobila sidan och låta den rulla med hjälp av <a href="http://jqtouch.com/">jQTouch</a>. </p>
<h3>Tillägget</h3>
<p>Så, vad är det jag vill göra, jag vill identifiera besökarens webbläsare och om det är en mobil så ska den &#8221;on-the-fly&#8221; byta till mitt mobila tema. Jag vill sedan ha ett sätt att kunna hoppa mellan den mobila och vanliga webbplatsen.</p>
<p>All kod finns <a href="http://gist.github.com/545298">i en Gist på GitHub</a> (mycket anpassad för mina behov) för hur jag löst detta. Jag skapade ett plugin som tog hand om det hela. Om mitt vanliga tema heter &#8216;xc1-test&#8217;, så kommer jag att kolla ifall temat &#8216;xc1-test-mobile&#8217; existerar.</p>
<p>WordPress ger oss möjligheten att ladda in ett separat tema med hjälp av filtret &#8216;stylesheet&#8217;, så vi gör en kontroll ifall temat finns (och efterfrågas) och i sådana fall hoppar vi över till det.</p>
<h3>Temat</h3>
<p>Temat xc1-test-mobile innehåller inte så mycket annat än exempelkod från jQTouchs lösning, så det är inte mycket nytt under solen där. </p>
<p>Det som inte är så vackert just nu är hur sidor och inlägg hämtas ifrån WordPress, jQTouch hämtar enbart statiska filer, därför har jag fått lov att lägga till .html i slutet på mina sidor. Poster däremot får man lov att ändra manuellt permalänk-inställningen i administrationen så den har .html på slutet. Detta kommer jag nog ändra och skriva om AJAX-hämtningen manuellt, men detta var mest för att få allting att fungera i ett inledande skede.</p>
<p>Temats filer single.php och page.php ska inte innehålla <em>get_header()</em> och <em>get_footer()</em>. </p>
<p>Jag kan sedan hoppa mellan de två olika versionerna genom querystringen <em>?xc1-layout=mobile</em> och <em>?xc1-layout=default</em>.</p>
<h4>Menyer</h4>
<p>Något som är riktigt fint i WordPress 3 är att jag kan skapa en separat meny (i menyhanteraren) för den mobila versionen och använda den i detta mobila tema, då kan jag skapa separata mobilversioner av de sidor som jag vill ha tillgängliga ifrån mobilen.</p>
<h3>Slutord</h3>
<p>Jag har tittat mycket på hur <a href="http://mobile.tutsplus.com/tutorials/html5/jqtouch-mobile-wordpress-1/">andra</a> har löst <a href="http://wordpress.org/extend/plugins/wptouch/">detta</a>, jag kommer skriva mer om detta när jag känner mig nöjd med lösningen, ge gärna kommentarer på hur ni löst detta. </p>
]]></content:encoded>
			<wfw:commentRss>/2010/08/23/jqtouch-och-wordpress/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WordPress pluginguide: Sätta ny titel i en shortcode</title>
		<link>/2010/07/21/wordpress-pluginguide-satta-ny-titel-i-en-shortcode/</link>
		<comments>/2010/07/21/wordpress-pluginguide-satta-ny-titel-i-en-shortcode/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 15:59:04 +0000</pubDate>
		<dc:creator>Anders</dc:creator>
				<category><![CDATA[Programmering]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://hassis.com/?p=280</guid>
		<description><![CDATA[Jag håller på med ett Reddit-liknande WordPress-plugin på ett projekt hos Populate. Systemet listar ett antal frågor som du som besökare kan &#8221;rösta upp&#8221;, sedan visar man de populäraste frågorna och lite annat. Varje fråga har en egen landningssida, exempelvis /fraga/10 (där 10 är id:t på frågan). Landningssidan och listningen av frågorna definieras av shortcodes [...]]]></description>
			<content:encoded><![CDATA[<p>Jag håller på med ett <a href="http://www.reddit.com">Reddit</a>-liknande WordPress-plugin på ett projekt hos <a href="http://www.populate.se">Populate</a>. </p>
<p>Systemet listar ett antal frågor som du som besökare kan &#8221;rösta upp&#8221;, sedan visar man de populäraste frågorna och lite annat. Varje fråga har en egen landningssida, exempelvis /fraga/10 (där 10 är id:t på frågan). Landningssidan och listningen av frågorna definieras av shortcodes i sidor, exempelvis: [poll_show_single] och [poll_list]. </p>
<p>På sidan som innehåller [poll_show_single], i det här fallet är det sidan &#8216;fraga&#8217;, vill jag ha möjlighet att sätta frågans rubrik som ny titel (via filtret wp_title). </p>
<p>Det går tyvärr inte att ändra titeln inifrån shortcoden, utan man får identifiera vilken sida som shortcoden finns på och sen sätta titeln separat. Detta kan du göra på följande sätt:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> locate_shortcode <span style="color: #009900;">&#40;</span><span style="color: #000088;">$shortcode</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;">$wpdb</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000088;">$search</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$search</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>?<span style="color: #0000ff;">&quot; OR &quot;</span><span style="color: #339933;">:</span><span style="color: #0000ff;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;post_content LIKE '%<span style="color: #006699; font-weight: bold;">$shortcode</span>%'&quot;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000088;">$query</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;SELECT ID,post_title,post_name,post_content FROM <span style="color: #006699; font-weight: bold;">$wpdb-&gt;posts</span> WHERE <span style="color: #006699; font-weight: bold;">$search</span> AND post_type='page'&quot;</span><span style="color: #339933;">;</span>
  <span style="color: #000088;">$result</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get_results</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$query</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #b1b100;">return</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'id'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">ID</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'title'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">post_title</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'name'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">post_name</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'uri'</span> <span style="color: #339933;">=&gt;</span> get_page_uri<span style="color: #009900;">&#40;</span><span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">ID</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Sedan läser du av den:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$pollSingle</span> <span style="color: #339933;">=</span> locate_shortcode<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'poll_show_single'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  
<span style="color: #000088;">$pollSingleURI</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$pollSingle</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'uri'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Då får jag fram vilken sida som innehåller shortcoden för att visa en enskild fråga, därefter kan jag haka in mig på filtret &#8216;wp&#8217; och sätta titeln:</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;">'wp'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'titles'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>I titels() kollar vi sedan upp om vi står på rätt sida (den som finns i $pollSingleURI) och jämför den med $wp_query->query['pagename']:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> titles<span style="color: #009900;">&#40;</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;">$wp_query</span><span style="color: #339933;">,</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">,</span> <span style="color: #000088;">$newTitle</span><span style="color: #339933;">,</span> <span style="color: #000088;">$pollSingleURI</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #666666; font-style: italic;">// Single poll</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$wp_query</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">query</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'pagename'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #000088;">$pollSingleURI</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">preg_match</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/\d+\/?$/&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$wp_query</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">query</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'page'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000088;">$pollID</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span> <span style="color: #000088;">$wp_query</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">query</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'page'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #000088;">$result</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get_results</span><span style="color: #009900;">&#40;</span> <span style="color: #990000;">sprintf</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SELECT subject FROM <span style="color: #009933; font-weight: bold;">%s</span>poll WHERE id = <span style="color: #009933; font-weight: bold;">%d</span> LIMIT 1&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">prefix</span><span style="color: #339933;">,</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">escape</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$pollID</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
      <span style="color: #666666; font-style: italic;">// Set title</span>
      <span style="color: #000088;">$newTitle</span> <span style="color: #339933;">=</span> esc_html<span style="color: #009900;">&#40;</span><span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">subject</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      add_filter<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'wp_title'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'frontend_set_title'</span> <span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">2</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Ovanstående SQL-fråga hämtar just nu frågans titel, men detta ändrar du givetvis till det du vill ha som titel.</p>
<p>Och eftersom PHP fortfarande har lite problem med closures/anonyma funktioner så måste titeln sättas separat:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> frontend_set_title<span style="color: #009900;">&#40;</span><span style="color: #000088;">$title</span><span style="color: #339933;">,</span> <span style="color: #000088;">$separator</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;">$newTitle</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">return</span> esc_html<span style="color: #009900;">&#40;</span><span style="color: #000088;">$newTitle</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$separator</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Allt är ryckt ur en klass för att lättare kunna visa hur det fungerar, därav alla globala variabler *urk*. Denna metod kräver inga &#8221;rewrites&#8221; eller &#8221;template redirect intercepts&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>/2010/07/21/wordpress-pluginguide-satta-ny-titel-i-en-shortcode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visa ID på Media i WordPress</title>
		<link>/2010/06/30/visa-id-pa-media-i-wordpress/</link>
		<comments>/2010/06/30/visa-id-pa-media-i-wordpress/#comments</comments>
		<pubDate>Wed, 30 Jun 2010 11:46:37 +0000</pubDate>
		<dc:creator>Anders</dc:creator>
				<category><![CDATA[Programmering]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://hassis.com/?p=250</guid>
		<description><![CDATA[Jag hade nyss ett behov på jobbet att visa vilket ID ett objekt har i mediaredigeraren (WordPress). Detta kan vara bra att ha när man ska bygga gallerier, framförallt när man exkluderar vissa bilder genom att använda ID:et. Kod: add_filter&#40;'attachment_fields_to_edit', 'enable_media_id', 10, 2&#41;; function enable_media_id&#40; $form_fields, $post &#41; &#123; $form_fields&#91;&#34;enable-media-id&#34;&#93; = array&#40;&#34;label&#34; =&#62; &#34;MediaID&#34;, &#34;input&#34; [...]]]></description>
			<content:encoded><![CDATA[<p>Jag hade nyss ett behov <a href="http://www.populate.se">på jobbet</a> att visa vilket ID ett objekt har i mediaredigeraren (WordPress). Detta kan vara bra att ha när man ska bygga gallerier, framförallt när man exkluderar vissa bilder genom att använda ID:et.</p>
<p>Kod:</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;">'attachment_fields_to_edit'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'enable_media_id'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">function</span> enable_media_id<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$form_fields</span><span style="color: #339933;">,</span> <span style="color: #000088;">$post</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$form_fields</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;enable-media-id&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;label&quot;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;MediaID&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;input&quot;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;html&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;html&quot;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;&lt;p&gt;&quot;</span><span style="color: #339933;">.</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: #0000ff;">&quot;&lt;/p&gt;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #b1b100;">return</span> <span style="color: #000088;">$form_fields</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Bild på hur det kommer se ut:<br />
<a href="http://hassis.com/static/uploads/hassis.com/2010/06/mediaexempel.jpg" rel="lightbox[250]" title="Visa ID på Media i WordPress"><img src="http://hassis.com/static/uploads/hassis.com/2010/06/mediaexempel-287x300.jpg" alt="" width="287" height="300" class="alignnone size-medium wp-image-253" /></a></p>
<p>(Jag såg idag att någon hade önskat denna funktionaliteten på <a href="http://wordpress.org/extend/ideas/topic/display-id-of-pictures">WordPress.org -&gt; Ideas</a>)</p>
]]></content:encoded>
			<wfw:commentRss>/2010/06/30/visa-id-pa-media-i-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nyheter kring Shopp 1.1</title>
		<link>/2010/05/30/nyheter-kring-shopp-1-1/</link>
		<comments>/2010/05/30/nyheter-kring-shopp-1-1/#comments</comments>
		<pubDate>Sun, 30 May 2010 17:03:23 +0000</pubDate>
		<dc:creator>Anders</dc:creator>
				<category><![CDATA[Programmering]]></category>
		<category><![CDATA[Shopp]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://hassis.com/?p=216</guid>
		<description><![CDATA[Utveckligen av Shopp går i en rasande fart framåt. Just nu fokuserar utvecklarna främst på att se till att göra kodbasen stabil och se till att allting fungerar. Jag nämnde i mitt senaste inlägg kring Shopp att en alpha-version skulle dyka upp ganska kort efter att det postades. Den har dykt upp för ganska länge [...]]]></description>
			<content:encoded><![CDATA[<p>Utveckligen av <a href="http://www.shopplugin.net">Shopp</a> går i en rasande fart framåt. Just nu fokuserar utvecklarna främst på att se till att göra kodbasen stabil och se till att allting fungerar. </p>
<p>Jag nämnde i mitt <a href="http://hassis.com/2010/01/23/blandad-information-om-shopp/">senaste inlägg kring Shopp</a> att en alpha-version skulle dyka upp ganska kort efter att det postades. Den har dykt upp för ganska länge sedan och det ser riktigt bra ut, det som har fått mycket fokus är baksidan, alltså källkoden, det gör att det inte är några jättestora förändringar utseendemässigt. Det är förvisso lite enklare att hitta i orderdetaljerna och en andra småsaker.</p>
<p>Något som jag trivs riktigt bra med är hanteringen av betalningsmodulerna, jag var med Jonathan Davis (huvudutvecklare) en kväll och vi gjorde i ordning Payson-modulen så den är kompatibel med 1.1. Jisses vilken skillnad i kod jämfört med den tidigare versionen 1.0.x.</p>
<p>Momssatser för specifika kategorier är även det möjligt, men det är lite finputsning på det kvar innan den fungerar klockrent. </p>
<h3>Så, när kommer den?</h3>
<p>Det som just nu tar tid är QA-delen, att se till att allting funkar. Det har varit lite dåligt med testning från min egen sida, men jag räknar med att sätta igång ordentligt någon gång under nästa vecka. Det nämndes i en <a href="http://www.wptavern.com/jonathan-davis-via-wordcamp-raleigh">videointervju med Jonathan</a> att de siktade på slutet av juni, men det är flytande.</p>
]]></content:encoded>
			<wfw:commentRss>/2010/05/30/nyheter-kring-shopp-1-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blandad information om Shopp</title>
		<link>/2010/01/23/blandad-information-om-shopp/</link>
		<comments>/2010/01/23/blandad-information-om-shopp/#comments</comments>
		<pubDate>Sat, 23 Jan 2010 15:16:16 +0000</pubDate>
		<dc:creator>Anders</dc:creator>
				<category><![CDATA[Programmering]]></category>
		<category><![CDATA[Shopp]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://hassis.com/?p=166</guid>
		<description><![CDATA[Jag får ganska mycket frågor om WordPress-tillägget Shopp som jag är inblandad i, så jag tänkte ta tillfället i akt och skriva om det. Payson-betalningsmodul Det finns en betalningsmodul för Payson att köpa som tillägg i Shopp. Jag är inte ansvarig för utvecklingen av den, det sköter Ingenesis Ltd (företaget bakom Shopp), däremot så har [...]]]></description>
			<content:encoded><![CDATA[<p>Jag får ganska mycket frågor om <a href="http://www.wordpress.org">WordPress</a>-tillägget <a href="http://www.shopplugin.net">Shopp</a> som jag är inblandad i, så jag tänkte ta tillfället i akt och skriva om det.</p>
<h3>Payson-betalningsmodul</h3>
<p>Det finns en betalningsmodul för <a href="http://www.payson.se">Payson</a> att köpa som tillägg i Shopp. Jag är inte ansvarig för utvecklingen av den, det sköter Ingenesis Ltd (företaget bakom Shopp), däremot så har jag hjälpt till i utvecklingen.</p>
<p>Det har även kommit till min kännedom att det finns ex. rabatter inte fungerar fullt ut, vi får se ifall Ingenesis Ltd väljer att åtgärda dessa innan 1.1 (se mer nedan).</p>
<h3>Svenska översättningen</h3>
<p>Jag underhåller och uppdaterar för närvarande den svenska översättningen av Shopp. Hittar ni någon översättning som inte stämmer eller någon som saknas någonstans i systemet, [intlink id="8" type="page"]kontakta mig[/intlink] så ska jag försöka ordna det.</p>
<h3>Shopp 1.1</h3>
<p>Jag är med i beta-teamet för Shopp, det innebär att jag hjälper till att hitta buggar och kan lägga in förslag på nya funktioner. <span style="text-decoration: line-through">Det var tänkt att det skulle bli en 1.0.18 av Shopp,  men den idén har slopats och de kommer att satsa på 1.1</span> Jag vet inte när 1.0.18 kommer. Förhoppningsvis dyker en alpha-version upp ganska kort (~1 vecka).</p>
<p>Några av nyheterna i 1.1</p>
<ul>
<li><strong>Ny hantering av betalningsmoduler/fraktmoduler</strong><br />
Systemet som finns just nu för att skriva egna betalningslösningar/fraktmoduler är rent ut sagt obegripligt. Det kommer att ändras till det bättre och förhoppningsvis bli riktigt bra!</li>
<li><strong>Moms<br />
</strong>Just nu finns det inga möjligheter att sätta specifik moms på vissa produkter, det kommer förhoppningsvis att komma med i 1.1</li>
<li><strong>Sessionshantering</strong><br />
I dagsläget är det ganska rörigt att hålla koll på sessioner som skapas i Shopp och WordPress. Drömmen vore ifall WordPress implementerade ett eget system som andra tillägg kan &#8221;hooka&#8221; in sig på, men jag har inte sett något om det på deras tidsplan.</li>
</ul>
<p>Ni kan läsa tidsplanen i sin helhet på Shopps webbplats: <a href="http://docs.shopplugin.net/Beta_Team:Roadmap">Beta_Team:Roadmap</a></p>
]]></content:encoded>
			<wfw:commentRss>/2010/01/23/blandad-information-om-shopp/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Vad jag saknar i WordPress</title>
		<link>/2010/01/08/saker-jag-ogillar-med-wordpress/</link>
		<comments>/2010/01/08/saker-jag-ogillar-med-wordpress/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 19:18:29 +0000</pubDate>
		<dc:creator>Anders</dc:creator>
				<category><![CDATA[Programmering]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://hassis.com/?p=146</guid>
		<description><![CDATA[2010-01-08 20:39 &#8211; Ändrade rubriken från &#8221;Saker jag ogillar med WordPress&#8221; till &#8221;Vad jag saknar i WordPress&#8221; WYSIWYG Snarare: WYSIWTF (What You See Is WTF). Den ursprungliga idén med editorn var att förhindra att folk la in komplexa HTML-stycken, men just nu begränsar den alldeles för mycket. Den fungerar för den vanliga användaren, men så [...]]]></description>
			<content:encoded><![CDATA[<p><em>2010-01-08 20:39 &#8211; Ändrade rubriken från &#8221;Saker jag ogillar med WordPress&#8221; till &#8221;Vad jag saknar i WordPress&#8221;</em></p>
<h3>WYSIWYG</h3>
<p>Snarare: WYSIWTF (What You See Is WTF). Den ursprungliga idén med editorn var att förhindra att folk la in komplexa HTML-stycken, men just nu begränsar den alldeles för mycket. Den fungerar för den vanliga användaren, men så fort jag försöker göra något utöver det vanliga får jag ta till lite knep och knåp för att få det att fungera.</p>
<h3>Standardinstallationen</h3>
<p>Då WordPress är en så pass populär mjukvara så gör det att många WordPress-installationer blir mål vid en eventuell säkerhetslucka. Om denna säkerhetslucka utnyttjar något som ingår i standardinstallationen (ex: databasprefix eller administratörskontot) så är många illa ute.</p>
<p>Saker jag gör vid en nyinstallation:</p>
<ul>
<li>Ändrar databasprefixet</li>
<li>Byter administratörskontots användarnamn</li>
<li>Flyttar ut wp-config.php utanför WordPress-katalogen (oåtkomlig)</li>
<li>Ser till att rättigheterna på katalogerna stämmer</li>
<li>(<em>Tema</em>) Tar bort WordPress versionsnummer i head-taggen.</li>
</ul>
<p>Jag skulle även gärna vilja byta ut alla hänvisningar till WordPress-kataloger på webbplatsen (ex: wp-content), just nu är det för mycket meck för att detta ska vara hållbart. Mycket av ovanstående saker borde användaren tvingas göra vid installationen (möjligt att detta försämrar WordPress &#8221;välkänt&#8221; korta installationstid).</p>
<h3>Sidhantering och menylistning</h3>
<p>Just nu är sidhanteringen ohållbar, för att få menyobjekt att <a href="http://core.trac.wordpress.org/ticket/2702">hamna i den ordning jag vill</a> utan att hålla koll på prioriteten så krävs ett tillägg som ex. <a href="http://wordpress.org/extend/plugins/pagemash/">pageMash</a>.</p>
<p>Det finns heller ingen chans att utesluta sidor i administrationen utan det görs manuellt via <em>wp_list_pages()</em> eller ett plugin som <a href="http://wordpress.org/extend/plugins/page-lists-plus/">Page Lists Plus</a> (där jag även kan vilja vilket namn som ska synas i menyn).</p>
<h3>Javascript</h3>
<p>Bättre möjligheter för att få kontroll över vilka Javascript och stilmallar som köas. Jag skulle vilja ha möjlighet att <a href="http://wordpress.org/extend/plugins/wp-js/">bunta ihop dessa</a> till en fil. Mycket av ansvaret för att köa filer ligger på tilläggsutvecklare, många lägger in dessa manuellt utan att köa dem.</p>
<h3>Några småsaker</h3>
<ul>
<li>Det finns ingen möjlighet till intern länkning. Ex: <a href="http://wordpress.org/extend/plugins/rb-internal-links/">RB Internal Links</a></li>
<li><a href="http://core.trac.wordpress.org/ticket/9674">&#8221;Custom fields&#8221;</a> &#8211; bättre möjligheter för att lätt kunna skapa olika typer av mallar där fördefinerade fält enkelt kan fyllas i (dålig förklaring?).</li>
<li>Page vs Posts &#8211; Blir alldeles för krångligt så fort jag försöker kombinera två loopar, suck&#8230;</li>
</ul>
<h3>Sammanfattning</h3>
<p>Jag hoppas att många av dessa saker ordnas i WordPress 3.0, det mesta av detta går att lösa genom att använda tredjeparts-tillägg. Jag tror att dessa saker skulle gå att lägga in i kärnan utan att göra den bloatad eller att krångla till det för mycket för slutanvändaren.</p>
<p>Trots ovanstående &#8221;brister&#8221; så gillar jag WordPress och projektet utvecklas åt rätt håll känns det som.</p>
<p>(Ovanstående lista är skriven med fokus på WordPress som CMS, inte bloggverktyg)</p>
]]></content:encoded>
			<wfw:commentRss>/2010/01/08/saker-jag-ogillar-med-wordpress/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WordPresstillägg: XC1 Maintenance</title>
		<link>/2009/12/22/wordpresstillagg-xc1-maintenance/</link>
		<comments>/2009/12/22/wordpresstillagg-xc1-maintenance/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 19:44:14 +0000</pubDate>
		<dc:creator>Anders</dc:creator>
				<category><![CDATA[Programmering]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://hassis.com/?p=85</guid>
		<description><![CDATA[Jag har laddat upp ett wordpress-tillägg under namnet XC1 Maintenance, det används för att sätta webbplatsen i underhållsläge. Inte så mycket mer att säga om detta]]></description>
			<content:encoded><![CDATA[<p>Jag har laddat upp ett wordpress-tillägg under namnet <a href="http://hassis.com/projekt/xc1-maintenance/">XC1 Maintenance</a>, det används för att sätta webbplatsen i underhållsläge. Inte så mycket mer att säga om detta <img src='http://hassis.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>/2009/12/22/wordpresstillagg-xc1-maintenance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using memcached
Object Caching 1059/1087 objects using memcached

Served from: hassis.com @ 2012-02-04 03:49:54 -->
