<?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>Soma Design &#187; WordPress</title>
	<atom:link href="http://somadesign.ca/blog/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://somadesign.ca</link>
	<description>Winnipeg Web Design · WordPress Development</description>
	<lastBuildDate>Wed, 25 Apr 2012 23:56:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Goodbye Soma, Hello Automattic</title>
		<link>http://somadesign.ca/2012/goodbye-soma-hello-automattic/</link>
		<comments>http://somadesign.ca/2012/goodbye-soma-hello-automattic/#comments</comments>
		<pubDate>Wed, 25 Apr 2012 15:55:59 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Soma Design]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[automattic]]></category>
		<category><![CDATA[job]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://somadesign.ca/?p=831</guid>
		<description><![CDATA[I’m excited (and maybe a touch sad) to announce that I’m shuttering Soma Design to join the great, growing team at Automattic to help build the best publishing platform on the planet. As a Theme Engineer, I’ll be working with the brand-new Custom Design team to provide some awesome tools for customizing your WordPress.com theme [...]]]></description>
			<content:encoded><![CDATA[<p>I’m excited (and maybe a touch sad) to announce that I’m shuttering Soma Design to join the great, <a href="http://ma.tt/2012/04/automattic-growth/">growing team</a> at <a href="http://automattic.com/">Automattic</a> to help build the best publishing platform on the planet. As a Theme Engineer, I’ll be working with the brand-new Custom Design team to provide some awesome tools for customizing your <a href="http://theme.wordpress.com/">WordPress.com theme</a> into that state of “just right.”</p>

<p>It’s no understatement to say that I became a web developer because of <a href="http://wordpress.org/">WordPress</a>. I started blogging with <a href="http://www.blogger.com/">Blogger</a> in 2005, only to become frustrated and move myself over to self-hosted WordPress. I used the old <a href="http://getk2.com/">K2</a><sup id="fnref-831:0"><a href="#fn-831:0" rel="footnote">1</a></sup> theme as the basis of my own theme, and tweaked it obsessively. <abbr title="WordPress">WP</abbr> provided just the right amount of ease and power for where I was at, and revealed all the more power the further I dug. Tweaking your <abbr title="WordPress">WP</abbr> template is a web development gateway drug.</p>

<p>The rest is a blur. I graduated from <a href="http://ssu.ca/">SSU</a> with a BA (Honours) in the Humanities in 2008, having tinkered along the way with my ever-intriguing <abbr title="WordPress">WP</abbr> blog. I even did my first paid work on my school’s website, attempting to wrangle some disastrous table-based Dreamweaver templates into some semblance of tolerable. By the time I graduated with my gloriously useless degree<sup id="fnref-831:1"><a href="#fn-831:1" rel="footnote">2</a></sup>, I realized that I could make better web sites than the majority of what I saw out there. So I took the plunge into freelancing with zero experience, connections, or prospective clients. And, many bumps in the road and umpteen trips to the <a href="http://codex.wordpress.org/">codex</a> later, it actually worked out.</p>

<p>I’d especially like to thank my friend and collaborators <a href="http://tri.be/">Modern Tribe</a> and <a href="http://davidpensato.com/">David Pensato</a>, with whom I’ve had the opportunity to do a lot of fun and meaningful work over the last few years. I’d also like to thank the Winnipeg-based Automatticians <a href="http://iandanielstewart.com/">Ian Stewart</a> and <a href="http://kristastevens.com/">Krista Stevens</a> for slowly convincing me that I should apply. And of course, a huge thank you to the countless people who have contributed of their time, skills, and passion to the WordPress project.</p>

<p>I’m looking forward to this next chapter. I get to iterate and improve rather than build and hand off, and work with super smart people every day. And my work will be seen my millions of people. Fun. I start on Monday.</p>

<div class="footnotes">
<hr />
<ol>

<li id="fn-831:0">
<p>Oldskool. <a href="#fnref-831:0" rev="footnote">↩</a></p>
</li>

<li id="fn-831:1">
<p>Emphasis on the <em>glorious</em> part, since usefulness is overrated and usually far too narrowly considered. The best way I’ve been able to describe the Liberal Arts is that “it’s useful for everything, but nothing in particular.” <a href="#fnref-831:1" rev="footnote">↩</a></p>
</li>

</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://somadesign.ca/2012/goodbye-soma-hello-automattic/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Intro to Webfonts Presentation</title>
		<link>http://somadesign.ca/2012/intro-to-webfonts-presentation/</link>
		<comments>http://somadesign.ca/2012/intro-to-webfonts-presentation/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 15:54:21 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[fontfriend]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[ttfautohint]]></category>
		<category><![CDATA[typekit]]></category>
		<category><![CDATA[typography]]></category>
		<category><![CDATA[winnipeg wordpress meetup]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://somadesign.ca/?p=806</guid>
		<description><![CDATA[I talked about webfonts at the January edition of the Winnipeg WordPress meetup. The slides are not that interesting, particularly out of the context of the presentation, but here you go: And, here’s the links from the last slide in clickable form: http://blog.typekit.com/2010/10/15/type-rendering-operating-systems/ http://www.typotheque.com/articles/hinting http://www.fontslive.com/info/typography/web-font-quality.aspx http://www.lucasfonts.com/fonts/thesans/thesans-office/features/ http://cl.ly/9PBw http://www.freetype.org/ttfautohint/ https://github.com/typekit/webfontloader/ http://somadesign.ca/projects/fontfriend/]]></description>
			<content:encoded><![CDATA[<p>I talked about webfonts at the <a href="http://www.meetup.com/wordpresswinnipeg/events/43762772/">January edition</a> of the <a href="http://www.meetup.com/wordpresswinnipeg/">Winnipeg WordPress meetup</a>. The <a href="http://speakerdeck.com/u/mattwiebe/p/intro-to-webfonts">slides</a> are not that interesting, particularly out of the context of the presentation, but here you go:</p>

<iframe style="border:0; padding:0; margin:0; background:transparent;" frameBorder="0" allowTransparency="true" id="presentation_frame_4f05d20e43c97d001f000349" src="//speakerdeck.com/embed/4f05d20e43c97d001f000349" width="440" height="393"></iframe>

<p>And, here’s the links from the last slide in clickable form:</p>

<ul>
<li><a href="http://blog.typekit.com/2010/10/15/type-rendering-operating-systems/">http://blog.typekit.com/2010/10/15/type-rendering-operating-systems/</a></li>
<li><a href="http://www.typotheque.com/articles/hinting">http://www.typotheque.com/articles/hinting</a></li>
<li><a href="http://www.fontslive.com/info/typography/web-font-quality.aspx">http://www.fontslive.com/info/typography/web-font-quality.aspx</a></li>
<li><a href="http://www.lucasfonts.com/fonts/thesans/thesans-office/features/">http://www.lucasfonts.com/fonts/thesans/thesans-office/features/</a></li>
<li><a href="http://cl.ly/9PBw">http://cl.ly/9PBw</a></li>
<li><a href="http://www.freetype.org/ttfautohint/">http://www.freetype.org/ttfautohint/</a></li>
<li><a href="https://github.com/typekit/webfontloader/">https://github.com/typekit/webfontloader/</a></li>
<li><a href="http://somadesign.ca/projects/fontfriend/">http://somadesign.ca/projects/fontfriend/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://somadesign.ca/2012/intro-to-webfonts-presentation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress.org Theme Review Process is Broken</title>
		<link>http://somadesign.ca/2011/wordpress-org-theme-review-process-is-broken/</link>
		<comments>http://somadesign.ca/2011/wordpress-org-theme-review-process-is-broken/#comments</comments>
		<pubDate>Wed, 14 Dec 2011 17:51:07 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[the erudite]]></category>
		<category><![CDATA[theme review]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://somadesign.ca/?p=799</guid>
		<description><![CDATA[Update: The Erudite 3.0.2 is now live on WordPress.org. I’ve already criticized the WordPress.org Theme Review process when it first launched. Things seemed to be improving, but either the team is poorly organized, severely under-powered, or both. The Erudite 3.0 has been in review for 3 months, 3.0.2 since Sept 28. The review ticket was [...]]]></description>
			<content:encoded><![CDATA[<p><ins datetime="2011-12-18"><strong>Update:</strong> The Erudite 3.0.2 is <a href="http://wordpress.org/extend/themes/the-erudite">now live on WordPress.org</a>.</ins></p>
<p>I’ve already criticized the <a href="http://somadesign.ca/2010/wordpress-org-theme-requirements-are-a-drag/">WordPress.org Theme Review process</a> when it first launched. Things seemed to be improving, but either the team is poorly organized, severely under-powered, or both.</p>
<p><a href="/projects/the-erudite/">The Erudite</a> 3.0 has been in review for 3 months, 3.0.2 since Sept 28. <a href="http://themes.trac.wordpress.org/ticket/5449">The review ticket</a> was assigned 5 weeks ago, but still no movement.</p>
<p>If you are savvy enough, download 3.0.2 from the <a href="/projects/the-erudite/">project page</a>. There’s a security issue in the current theme that makes updating a priority. You’ll need to install and activate the <a href="http://wptheming.com/options-framework-theme/">Options Framework</a> to change any theme settings.</p>
<p><strong>NOTE</strong>: you will lose your previous settings when upgrading. Annoying, I know, but the old settings framework was rickety and awful.</p>
]]></content:encoded>
			<wfw:commentRss>http://somadesign.ca/2011/wordpress-org-theme-review-process-is-broken/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>WordPress Portfolio Presentation</title>
		<link>http://somadesign.ca/2011/wordpress-portfolio-presentation/</link>
		<comments>http://somadesign.ca/2011/wordpress-portfolio-presentation/#comments</comments>
		<pubDate>Thu, 25 Aug 2011 05:19:08 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[new media manitoba]]></category>
		<category><![CDATA[notes]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[winnipeg wordpress meetup]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://somadesign.ca/?p=785</guid>
		<description><![CDATA[As promised, here’s the follow-up information on my Power Your Portfolio With WordPress presentation that I gave at New Media Manitoba yesterday. I’m grateful that they gave me a chance to present, and doubly grateful that so many people came out on a hot summer night to hear me ramble about nerdy WordPress things. Firstly, [...]]]></description>
			<content:encoded><![CDATA[<p>As promised, here’s the follow-up information on my Power Your Portfolio With WordPress presentation that I gave at <a href="http://newmediamanitoba.com/">New Media Manitoba </a>yesterday. I’m grateful that they gave me a chance to present, and doubly grateful that so many people came out on a hot summer night to hear me ramble about nerdy WordPress things.</p>
<p>Firstly, you can <a href="https://github.com/mattwiebe/My-Portfolio-Theme">grab the theme on GitHub</a>. I’d probably even submit it to the official <a href="http://wordpress.org/extend/themes/">WordPress.org themes directory</a>, except that it still doesn’t list child themes (it likely will in the future).</p>
<p>Secondly, you can <a href="http://speakerdeck.com/u/mattwiebe/p/power-your-portfolio-with-wordpress">grab the slides on Speaker Deck</a> (or view below). And, if you’re interested in watching me present, there’s the <a href="http://www.livestream.com/nmmlive/video?clipId=pla_071c77ab-9a49-449d-b12a-695aa87e0f3b">archived livestream video</a>.</p>
<p><iframe style="border:0; padding:0; margin:0; background:transparent;" frameBorder="0" allowTransparency="true" id="presentation_frame_4e8123902d853c0060001ac7" src="//speakerdeck.com/embed/4e8123902d853c0060001ac7" width="440" height="402"></iframe></p>
<p>Finally, here’s a few useful links from my presentation, and a few others for folks who want to go deeper:</p>
<ul>
<li><a href="http://wordpress.org/extend/plugins/more-fields ">More Fields plugin</a></li>
<li><a href="http://winnipegwpmeetup.wordpress.com/">Winnipeg WordPress Meetup</a></li>
<li><a href="http://wordpress.tv/2011/01/29/mark-jaquith-theme-plugin-security/">Plugin &amp; Theme Security Video</a> (by Mark Jaquith)</li>
<li><a href="http://markjaquith.wordpress.com/2009/06/12/escaping-api-updates-for-wordpress-2-8/">WP security &amp; escaping functions</a></li>
<li><a href="http://codex.wordpress.org/Data_Validation">WP Data Validation</a></li>
<li><a href="http://flex.madebymufffin.com/">FlexSlider</a> (the JavsScript library powering the portfolio slideshow)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://somadesign.ca/2011/wordpress-portfolio-presentation/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Some Cranky WordPress Plugins</title>
		<link>http://somadesign.ca/2011/some-cranky-wordpress-plugins/</link>
		<comments>http://somadesign.ca/2011/some-cranky-wordpress-plugins/#comments</comments>
		<pubDate>Mon, 06 Jun 2011 15:26:06 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[arial]]></category>
		<category><![CDATA[font stack]]></category>
		<category><![CDATA[helvetica]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://somadesign.ca/?p=725</guid>
		<description><![CDATA[It looks like I may carve out a niche for cranky WordPress plugins. This could either be seen as a personality flaw or as a perfect fit within open-source culture. In either case, WordPress makes it easy for irritable people to release plugins to change what they don’t like about it. I’ve done so twice [...]]]></description>
			<content:encoded><![CDATA[<p>It looks like I may carve out a niche for cranky WordPress plugins. This could either be seen as a personality flaw or as a perfect fit within open-source culture. In either case, WordPress makes it easy for irritable people to release plugins to change what they don’t like about it. I’ve done so twice recently.</p>
<h3>Kill Adminbar Search</h3>
<p>WP 3.1 introduced the admin bar, which is generally quite useful. However, because WordPress’s search is generally <em>not </em>useful, having the search field take up so much real estate is somewhat frustrating. So, I made a plugin to remove it. You can download <a href="http://wordpress.org/extend/plugins/kill-adminbar-search/">Kill Adminbar Search</a> from the plugins repo.</p>
<h3>Use Helvetica Dangit</h3>
<p>WP 3.2 (currently in <a href="http://wordpress.org/news/2011/05/wordpress-3-1-3/">beta 2</a>) has revamped the admin styles. It looks good, but we’ve made the grievous error of placing Arial before Helvetica in the font stack, which <a href="http://core.trac.wordpress.org/ticket/17324#comment:27">I protested</a>. What we should do instead is simply declare <code>font-family: sans-serif;</code> and be done with it: this would render Helvetica Neue on Macs, Arial on Windows, and whatever Helvetica-like default system sans-serif is set on any given Linux distro. But, since my plugin is optional, I’ve declared every Helvetica variant under the sun, because nobody should have to look at Arial if they don’t have to. Download <a href="http://wordpress.org/extend/plugins/use-helvetica-dangit/">Use Helvetica Dangit</a> from the plugins repo.</p>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://somadesign.ca/2011/some-cranky-wordpress-plugins/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Lessn Shortlinks WordPress Plugin</title>
		<link>http://somadesign.ca/2011/lessn-shortlinks-wordpress-plugin/</link>
		<comments>http://somadesign.ca/2011/lessn-shortlinks-wordpress-plugin/#comments</comments>
		<pubDate>Sat, 15 Jan 2011 19:00:00 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[alan hogan]]></category>
		<category><![CDATA[lessn]]></category>
		<category><![CDATA[lessnmore]]></category>
		<category><![CDATA[shaun inman]]></category>
		<category><![CDATA[shortlink]]></category>

		<guid isPermaLink="false">http://somadesign.ca/?p=650</guid>
		<description><![CDATA[I recently purchased the somad.es domain for use with my own URL shortener. (Vanity or owning my own URLs: you decide.) I decided to use Alan Hogan’s Lessn More, an improved fork of Shaun Inman’s Lessn. I then decided I wanted to integrate the shortlink into my WordPress install, but the existing WP Lessn plugin [...]]]></description>
			<content:encoded><![CDATA[<p>I recently purchased the <a href="http://somad.es/">somad.es</a> domain for use with my own URL shortener. (Vanity or owning my own URLs: you decide.) I decided to use Alan Hogan’s <a href="http://lessnmore.net/">Lessn More</a>, an improved fork of Shaun Inman’s <a href="http://shauninman.com/archive/2009/08/17/less_n">Lessn</a>. I then decided I wanted to integrate the shortlink into my WordPress install, but the existing <a href="http://wordpress.org/extend/plugins/wp-lessn/">WP Lessn</a> plugin isn’t very good. Its admin page doesn’t adhere to WP security <a href="http://codex.wordpress.org/WordPress_Nonces">best practices</a>, it doesn’t use WP’s <a href="http://codex.wordpress.org/HTTP_API">HTTP API</a>, and it doesn’t properly integrate with WP 3.0’s shortlink API. In short, it doesn’t <a title="My talk from the Jan 2011 Winnipeg WordPress meetup" href="http://somadesign.ca/2011/doing-things-the-wordpress-way/">do things the WP way</a>.</p>
<p>So, I made my own little plugin. I didn’t want another plugin settings page, so you have to hardcode your Lessn URL and API key. It integrates with the “Get Shortlink” button on your write/edit post screen, and the relevant shortlink HTTP header and meta elements are auto-inserted. Only the “post” post_type will get Lessn’d by default, but see the bottom of the plugin for how to add additional post_types.</p>
<p><div id="gist-774853" class="gist">

        <div class="gist-file">
          <div class="gist-data gist-syntax">
              <div class="highlight"><pre><div class='line' id='LC1'><span class="cp">&lt;?php</span></div><div class='line' id='LC2'><span class="cm">/*</span></div><div class='line' id='LC3'><span class="cm">	Plugin Name: Lessn Shortlinks</span></div><div class='line' id='LC4'><span class="cm">	Description: Integrates WP&#39;s shortlink functionality with the &lt;a href=&quot;http://lessnmore.net/&quot;&gt;Lessn More&lt;/a&gt; URL shortener. &lt;em&gt;Hasn&#39;t been tested with vanilla Lessn, but the API should be compatible.&lt;/em&gt; (Edit the file manually to configure)</span></div><div class='line' id='LC5'><span class="cm">	Version: 1.0</span></div><div class='line' id='LC6'><span class="cm">	Author: Matt Wiebe</span></div><div class='line' id='LC7'><span class="cm">	Author URI: http://somadesign.ca/</span></div><div class='line' id='LC8'><span class="cm">*/</span></div><div class='line' id='LC9'><br/></div><div class='line' id='LC10'><span class="sd">/**</span></div><div class='line' id='LC11'><span class="sd"> * SD_Lessn class: integrates WP&#39;s shortlink functionality with the Lessn More</span></div><div class='line' id='LC12'><span class="sd"> * URL shortener.</span></div><div class='line' id='LC13'><span class="sd"> * </span></div><div class='line' id='LC14'><span class="sd"> * @uses Lessn More @link http://lessnmore.net/</span></div><div class='line' id='LC15'><span class="sd"> * @author Matt Wiebe</span></div><div class='line' id='LC16'><span class="sd"> * @license GPL 2</span></div><div class='line' id='LC17'><span class="sd"> * </span></div><div class='line' id='LC18'><span class="sd"> **/</span></div><div class='line' id='LC19'><br/></div><div class='line' id='LC20'><span class="k">class</span> <span class="nc">SD_Lessn</span> <span class="p">{</span></div><div class='line' id='LC21'><br/></div><div class='line' id='LC22'>	<span class="k">const</span> <span class="no">API_KEY</span> <span class="o">=</span> <span class="s1">&#39;apikey&#39;</span><span class="p">;</span> <span class="c1">// your Lessn API key</span></div><div class='line' id='LC23'>	<span class="k">const</span> <span class="no">LESSN_API_BASE</span> <span class="o">=</span> <span class="s1">&#39;http://shorturl.com/-/&#39;</span><span class="p">;</span> <span class="c1">// the API base for your Lessn install</span></div><div class='line' id='LC24'>	<span class="k">const</span> <span class="no">META_KEY</span> <span class="o">=</span> <span class="s1">&#39;_lessnd_url&#39;</span><span class="p">;</span></div><div class='line' id='LC25'><br/></div><div class='line' id='LC26'>	<span class="k">private</span> <span class="nv">$allowed_types</span> <span class="o">=</span> <span class="k">array</span><span class="p">(</span><span class="s1">&#39;post&#39;</span><span class="p">);</span></div><div class='line' id='LC27'><br/></div><div class='line' id='LC28'>	<span class="k">function</span> <span class="nf">__construct</span><span class="p">()</span> <span class="p">{</span></div><div class='line' id='LC29'>		<span class="nx">add_action</span><span class="p">(</span><span class="s1">&#39;publish_post&#39;</span><span class="p">,</span> <span class="k">array</span><span class="p">(</span><span class="nv">$this</span><span class="p">,</span> <span class="s1">&#39;get_lessnd_url&#39;</span><span class="p">),</span> <span class="mi">10</span><span class="p">,</span> <span class="mi">1</span> <span class="p">);</span></div><div class='line' id='LC30'>		<span class="nx">add_filter</span><span class="p">(</span><span class="s1">&#39;get_shortlink&#39;</span><span class="p">,</span> <span class="k">array</span><span class="p">(</span><span class="nv">$this</span><span class="p">,</span> <span class="s1">&#39;get_shortlink&#39;</span><span class="p">),</span> <span class="mi">10</span><span class="p">,</span> <span class="mi">3</span> <span class="p">);</span></div><div class='line' id='LC31'>	<span class="p">}</span></div><div class='line' id='LC32'><br/></div><div class='line' id='LC33'>	<span class="k">public</span> <span class="k">function</span> <span class="nf">add_post_type</span><span class="p">(</span> <span class="nv">$post_type</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span> <span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC34'>		<span class="k">if</span> <span class="p">(</span> <span class="nv">$post_type</span> <span class="p">)</span></div><div class='line' id='LC35'>			<span class="nv">$this</span><span class="o">-&gt;</span><span class="na">allowed_types</span> <span class="o">=</span> <span class="nb">array_merge</span><span class="p">(</span> <span class="nv">$this</span><span class="o">-&gt;</span><span class="na">allowed_types</span><span class="p">,</span> <span class="p">(</span><span class="k">array</span><span class="p">)</span> <span class="nv">$post_type</span> <span class="p">);</span></div><div class='line' id='LC36'>	<span class="p">}</span></div><div class='line' id='LC37'><br/></div><div class='line' id='LC38'>	<span class="k">public</span> <span class="k">function</span> <span class="nf">get_lessnd_url</span><span class="p">(</span> <span class="nv">$post_id</span> <span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC39'>		<span class="k">if</span> <span class="p">(</span> <span class="s1">&#39;publish&#39;</span> <span class="o">!==</span> <span class="nx">get_post_status</span><span class="p">(</span><span class="nv">$post_id</span><span class="p">)</span> <span class="p">)</span></div><div class='line' id='LC40'>			<span class="k">return</span> <span class="k">false</span><span class="p">;</span></div><div class='line' id='LC41'><br/></div><div class='line' id='LC42'>		<span class="k">if</span> <span class="p">(</span> <span class="o">!</span> <span class="nb">in_array</span><span class="p">(</span> <span class="nx">get_post_type</span><span class="p">(</span><span class="nv">$post_id</span><span class="p">),</span> <span class="nv">$this</span><span class="o">-&gt;</span><span class="na">allowed_types</span> <span class="p">)</span> <span class="p">)</span></div><div class='line' id='LC43'>			<span class="k">return</span> <span class="k">false</span><span class="p">;</span></div><div class='line' id='LC44'><br/></div><div class='line' id='LC45'>		<span class="k">if</span> <span class="p">(</span> <span class="nv">$url</span> <span class="o">=</span> <span class="nx">get_post_meta</span><span class="p">(</span> <span class="nv">$post_id</span><span class="p">,</span> <span class="nx">self</span><span class="o">::</span><span class="na">META_KEY</span><span class="p">,</span> <span class="k">true</span><span class="p">)</span> <span class="p">)</span></div><div class='line' id='LC46'>			<span class="k">return</span> <span class="nv">$url</span><span class="p">;</span></div><div class='line' id='LC47'><br/></div><div class='line' id='LC48'>		<span class="nv">$params</span> <span class="o">=</span> <span class="k">array</span><span class="p">(</span></div><div class='line' id='LC49'>			<span class="s1">&#39;api&#39;</span> <span class="o">=&gt;</span> <span class="nx">self</span><span class="o">::</span><span class="na">API_KEY</span><span class="p">,</span></div><div class='line' id='LC50'>			<span class="s1">&#39;url&#39;</span> <span class="o">=&gt;</span> <span class="nx">get_permalink</span><span class="p">(</span><span class="nv">$post_id</span><span class="p">)</span></div><div class='line' id='LC51'>		<span class="p">);</span></div><div class='line' id='LC52'>		<span class="nv">$api_url</span> <span class="o">=</span> <span class="nx">add_query_arg</span><span class="p">(</span><span class="nv">$params</span><span class="p">,</span> <span class="nx">self</span><span class="o">::</span><span class="na">LESSN_API_BASE</span><span class="p">);</span></div><div class='line' id='LC53'><br/></div><div class='line' id='LC54'>		<span class="nv">$get</span> <span class="o">=</span> <span class="nx">wp_remote_get</span><span class="p">(</span><span class="nv">$api_url</span><span class="p">);</span></div><div class='line' id='LC55'><br/></div><div class='line' id='LC56'>		<span class="k">if</span> <span class="p">(</span> <span class="nx">is_wp_error</span><span class="p">(</span><span class="nv">$get</span><span class="p">)</span> <span class="p">)</span></div><div class='line' id='LC57'>			<span class="k">return</span> <span class="k">false</span><span class="p">;</span></div><div class='line' id='LC58'><br/></div><div class='line' id='LC59'>		<span class="nv">$lessnd_url</span> <span class="o">=</span> <span class="nx">wp_remote_retrieve_body</span><span class="p">(</span><span class="nv">$get</span><span class="p">);</span></div><div class='line' id='LC60'><br/></div><div class='line' id='LC61'>		<span class="k">if</span> <span class="p">(</span> <span class="nv">$lessnd_url</span> <span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC62'>			<span class="nx">update_post_meta</span><span class="p">(</span> <span class="nv">$post_id</span><span class="p">,</span> <span class="nx">self</span><span class="o">::</span><span class="na">META_KEY</span><span class="p">,</span> <span class="nv">$lessnd_url</span> <span class="p">);</span></div><div class='line' id='LC63'>			<span class="k">return</span> <span class="nv">$lessnd_url</span><span class="p">;</span></div><div class='line' id='LC64'>		<span class="p">}</span></div><div class='line' id='LC65'>		<span class="k">return</span> <span class="k">false</span><span class="p">;</span></div><div class='line' id='LC66'>	<span class="p">}</span></div><div class='line' id='LC67'><br/></div><div class='line' id='LC68'>	<span class="sd">/**</span></div><div class='line' id='LC69'><span class="sd">	 * @param int $id A post or blog id.  Default is 0, which means the current post or blog.</span></div><div class='line' id='LC70'><span class="sd">	 * @param string $contex Whether the id is a &#39;blog&#39; id, &#39;post&#39; id, or &#39;media&#39; id.  If &#39;post&#39;, the post_type of the post is consulted.  If &#39;query&#39;, the current query is consulted to determine the id and context. Default is &#39;post&#39;.</span></div><div class='line' id='LC71'><span class="sd">	 */</span></div><div class='line' id='LC72'><br/></div><div class='line' id='LC73'>	<span class="k">public</span> <span class="k">function</span> <span class="nf">get_shortlink</span><span class="p">(</span> <span class="nv">$shortlink</span><span class="p">,</span> <span class="nv">$id</span><span class="p">,</span> <span class="nv">$context</span> <span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC74'><br/></div><div class='line' id='LC75'>		<span class="k">if</span> <span class="p">(</span> <span class="s1">&#39;query&#39;</span> <span class="o">==</span> <span class="nv">$context</span> <span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC76'>			<span class="k">global</span> <span class="nv">$wp_query</span><span class="p">;</span></div><div class='line' id='LC77'>			<span class="k">if</span> <span class="p">(</span> <span class="nx">is_singular</span><span class="p">()</span> <span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC78'>				<span class="nv">$context</span> <span class="o">=</span> <span class="s1">&#39;post&#39;</span><span class="p">;</span></div><div class='line' id='LC79'>				<span class="nv">$id</span> <span class="o">=</span> <span class="nv">$wp_query</span><span class="o">-&gt;</span><span class="na">get_queried_object_id</span><span class="p">();</span></div><div class='line' id='LC80'>			<span class="p">}</span></div><div class='line' id='LC81'>		<span class="p">}</span></div><div class='line' id='LC82'><br/></div><div class='line' id='LC83'>		<span class="k">if</span> <span class="p">(</span> <span class="s1">&#39;post&#39;</span> <span class="o">!==</span> <span class="nv">$context</span> <span class="p">)</span></div><div class='line' id='LC84'>			<span class="k">return</span> <span class="nv">$shortlink</span><span class="p">;</span></div><div class='line' id='LC85'><br/></div><div class='line' id='LC86'>		<span class="c1">// Try Lessn&#39;d url.</span></div><div class='line' id='LC87'>		<span class="k">if</span> <span class="p">(</span> <span class="nv">$try_lessn</span> <span class="o">=</span> <span class="nv">$this</span><span class="o">-&gt;</span><span class="na">get_lessnd_url</span><span class="p">(</span><span class="nv">$id</span><span class="p">)</span> <span class="p">)</span></div><div class='line' id='LC88'>			<span class="k">return</span> <span class="nv">$try_lessn</span><span class="p">;</span></div><div class='line' id='LC89'><span class="c1">//		do_action(&#39;elog&#39;, $shortlink);</span></div><div class='line' id='LC90'>		<span class="k">return</span> <span class="nv">$shortlink</span><span class="p">;</span></div><div class='line' id='LC91'>	<span class="p">}</span></div><div class='line' id='LC92'><span class="p">}</span></div><div class='line' id='LC93'><br/></div><div class='line' id='LC94'><span class="nv">$sd_lessn</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">SD_Lessn</span><span class="p">;</span></div><div class='line' id='LC95'><br/></div><div class='line' id='LC96'><span class="c1">// uncomment line below to add support for the &quot;page&quot; post_type</span></div><div class='line' id='LC97'><span class="c1">// $sd_lessn-&gt;add_post_type(&#39;page&#39;);</span></div></pre></div>
          </div>

          <div class="gist-meta">
            <a href="https://gist.github.com/raw/774853/02dc00bcb4e60e64e79703b28c63d89b6c6b7214/sd_lessn.php" style="float:right;">view raw</a>
            <a href="https://gist.github.com/774853#file_sd_lessn.php" style="float:right;margin-right:10px;color:#666">sd_lessn.php</a>
            <a href="https://gist.github.com/774853">This Gist</a> brought to you by <a href="http://github.com">GitHub</a>.
          </div>
        </div>
</div>
</p>
<p>Now, I just need to figure out how to integrate shortlinks for humans rather than just machines.</p>
]]></content:encoded>
			<wfw:commentRss>http://somadesign.ca/2011/lessn-shortlinks-wordpress-plugin/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Doing Things the WordPress Way</title>
		<link>http://somadesign.ca/2011/doing-things-the-wordpress-way/</link>
		<comments>http://somadesign.ca/2011/doing-things-the-wordpress-way/#comments</comments>
		<pubDate>Mon, 10 Jan 2011 15:00:18 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[meetup]]></category>
		<category><![CDATA[winnipeg]]></category>
		<category><![CDATA[winnipeg wordpress meetup]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://somadesign.ca/?p=625</guid>
		<description><![CDATA[This past Friday marked the second Winnipeg WordPress meetup, and it was fantastic. It also marked my first time presenting on a tech topic, and I thank everyone for letting me ramble for a while! Len from WPCanada has a great writeup of the event and has high hopes for the future. My presentation was [...]]]></description>
			<content:encoded><![CDATA[<p>This past Friday marked the second <a href="http://winnipegwpmeetup.wordpress.com/">Winnipeg WordPress meetup</a>, and it was fantastic. It also marked my first time presenting on a tech topic, and I thank everyone for letting me ramble for a while! Len from WPCanada has a <a href="http://wpcanada.ca/2011/winnipeg-wordpress-meetup-a-huge-hit/">great writeup</a> of the event and has high hopes for the future.</p>
<p>My presentation was on <a title="Doing Things the WordPress Way" href="http://www.slideshare.net/mattwiebe/doing-things-the-wordpress-way">Doing Things the WordPress Way</a>, which covered a few things I’ve picked up along the way as a WP developer. A few people asked for the slides, so here they are:</p>
<p><object id="__sse6501060" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="440" height="370" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=wpsmarts-110109231530-phpapp01&amp;stripped_title=doing-things-the-wordpress-way&amp;userName=mattwiebe" /><param name="name" value="__sse6501060" /><param name="allowfullscreen" value="true" /><embed id="__sse6501060" type="application/x-shockwave-flash" width="440" height="370" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=wpsmarts-110109231530-phpapp01&amp;stripped_title=doing-things-the-wordpress-way&amp;userName=mattwiebe" name="__sse6501060" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><a title="Doing Things the WordPress Way" href="http://www.slideshare.net/mattwiebe/doing-things-the-wordpress-way">Doing Things the WordPress Way</a> (on Slideshare)</p>
<p>Big thanks to <a href="iandanielstewart.com/">Ian Stewart</a> for organizing the event, and to the <a href="http://www.digihedron.com/">Digihedron</a> crew for hosting us. Subscribe to the <a href="http://winnipegwpmeetup.wordpress.com/">Winnipeg WordPress meetup</a> blog for updates about future events.</p>
]]></content:encoded>
			<wfw:commentRss>http://somadesign.ca/2011/doing-things-the-wordpress-way/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Seth Godin Chooses The Erudite</title>
		<link>http://somadesign.ca/2010/seth-godin-chooses-the-erudite/</link>
		<comments>http://somadesign.ca/2010/seth-godin-chooses-the-erudite/#comments</comments>
		<pubDate>Fri, 10 Dec 2010 01:53:58 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[publishing]]></category>
		<category><![CDATA[seth godin]]></category>
		<category><![CDATA[the erudite]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://somadesign.ca/?p=599</guid>
		<description><![CDATA[Seth Godin should need no introduction to anyone on the web. What might need introduction is his new venture called the Domino Project, in which he’s partnering with Amazon to rethink the fatally flawed current publishing model. And, to get it up and running, he’s running WordPress and a lightly tweaked version of The Erudite. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://sethgodin.com/sg/">Seth Godin</a> should need no introduction to anyone on the web. What might need introduction is his new venture called <a href="http://www.thedominoproject.com/">the Domino Project</a>, in which he’s partnering with <a href="http://amazon.com/">Amazon</a> to <a href="http://sethgodin.typepad.com/seths_blog/2010/12/the-domino-project.html">rethink</a> the fatally flawed current publishing model. And, to get it up and running, he’s running <a href="http://wordpress.org/">WordPress</a> and a lightly tweaked version of <a href="http://somadesign.ca/projects/the-erudite/">The Erudite</a>. Fun to see it used on a high-profile site!</p>
<p>HT Rick from <a href="http://www.stylesheeter.com/">Stylesheeter</a></p>
]]></content:encoded>
			<wfw:commentRss>http://somadesign.ca/2010/seth-godin-chooses-the-erudite/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>The Erudite 2.7.7 Released</title>
		<link>http://somadesign.ca/2010/the-erudite-2-7-7-released/</link>
		<comments>http://somadesign.ca/2010/the-erudite-2-7-7-released/#comments</comments>
		<pubDate>Thu, 04 Nov 2010 16:28:24 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[the erudite]]></category>
		<category><![CDATA[theme directory]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress theme]]></category>

		<guid isPermaLink="false">http://somadesign.ca/?p=594</guid>
		<description><![CDATA[At long last: a new release of The Erudite that isn’t only available on my site, but also on the WordPress.org theme directory. As I previously wrote, this has been a massive pain in the ass due to the new theme requirements. 2.7.7 introduces an option for page comments, which are on by default in [...]]]></description>
			<content:encoded><![CDATA[<p>At long last: a new release of The Erudite that isn’t only available on my site, but also on the <a href="http://wordpress.org/extend/themes/the-erudite">WordPress.org theme directory</a>. As I <a href="http://somadesign.ca/2010/wordpress-org-theme-requirements-are-a-drag/">previously wrote</a>, this has been a massive pain in the ass due to the new theme requirements. 2.7.7 introduces an option for page comments, which are on by default in WP, but off by default in my theme because pages should not have them. It also added a Spanish translation thanks to Juanjo.</p>
<p>If you only upgrade through the WP admin panel, you can check the changelog on the <a href="http://somadesign.ca/projects/the-erudite/">project page</a> to see what’s changed since 2.7.2 (the last release approved on the theme directory).</p>
]]></content:encoded>
			<wfw:commentRss>http://somadesign.ca/2010/the-erudite-2-7-7-released/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>WordPress.org Theme Requirements Are a Drag</title>
		<link>http://somadesign.ca/2010/wordpress-org-theme-requirements-are-a-drag/</link>
		<comments>http://somadesign.ca/2010/wordpress-org-theme-requirements-are-a-drag/#comments</comments>
		<pubDate>Sat, 11 Sep 2010 20:06:33 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[theme requirements]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress theme]]></category>

		<guid isPermaLink="false">http://somadesign.ca/?p=582</guid>
		<description><![CDATA[I tweeted a while ago about my mixed feelings about the new WordPress.org theme requirements. They’ve already bitten me on the release of The Erudite 2.7.4, which was not approved by the theme directory folks for failing to meet a number of requirements. High standards are a great thing. Overall I think that the theme [...]]]></description>
			<content:encoded><![CDATA[<p>I <a href="http://twitter.com/mattwiebe/status/22331157646">tweeted</a> a while ago about my mixed feelings about the new <a href="http://codex.wordpress.org/Theme_Review">WordPress.org theme requirements</a>. They’ve already bitten me on the release of The Erudite 2.7.4, which was not approved by the theme directory folks for failing to meet a number of requirements.</p>
<p>High standards are a great thing. Overall I think that the theme team has done a good job with that document. But jeez, reading it makes me tired — it keeps going and going. It creates a massive load for theme developers and theme reviewers. It sure would be nice if the a lot of the items on the required list were on the recommended list.</p>
<p>Here’s a specific one: requiring the use of <code>comment_form()</code> is dumb. It was only introduced in 3.0, while my theme should currently be backwards compatible with 2.7 (with some degradation). Sure, <code>comment_form()</code> is a great function, and if I were writing The Erudite again, I’d use it. But requiring it? Dumb. Some numbers to back that up: as of right now, <a href="http://wordpress.org/about/stats/">only 39.8%</a> of WP users are on 3.0.</p>
<p>And what about an interesting theme like <a href="http://wordpress.org/extend/themes/quality-control">Quality Control</a>? Something tells me it fails on a number of requirements simply due to it not being a blog, but it was approved after the new requirements were in place. It must have been approved because it’s a cool use of WP despite the requirements.</p>
<p>But my biggest problem here is that the bar to participation in the WP community is being raised too high. If I were starting to write this theme again, I would take one look at the requirements and look for some other way to spend my time. This is not the way for a community to welcome new participants.</p>
<p>What I’m saying is that we need to embrace amateurism in the WordPress community. You don’t get to be a professional without being an amateur first, and the new guidelines just might prevent a whole lot of folks from bothering to start that journey. I understand that the WP community is trying to act like an adult these days, which is great. But let’s not lose that sense of discovery and exploration that allowed us to get started in the first place.</p>
<p>Finally, as a practical consideration, perhaps we could add a “blessed” (i.e. meets  recommended requirements) flag to the themes repo. Themes that do so are  implicitly more trustworthy, and will be promoted more heavily on the repo. This allows amateurs to get their theme out to a wider audience, while not having a “blessed” status clearly reveals that these amateur themes might not contain all the functionality that a “blessed” theme has.</p>
]]></content:encoded>
			<wfw:commentRss>http://somadesign.ca/2010/wordpress-org-theme-requirements-are-a-drag/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: enhanced
Object Caching 914/1076 objects using apc

Served from: somadesign.ca @ 2012-05-16 21:53:41 -->
