<?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>FlashingCursor &#187; WordPress</title>
	<atom:link href="http://flashingcursor.com/category/wordpress/feed" rel="self" type="application/rss+xml" />
	<link>http://flashingcursor.com</link>
	<description>Design - Development - WordPress</description>
	<lastBuildDate>Mon, 16 Apr 2012 22:23:50 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4-beta3-20629</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Add caching to your plugin - The WordPress Transients API</title>
		<link>http://flashingcursor.com/wordpress/add-caching-to-your-plugin-969</link>
		<comments>http://flashingcursor.com/wordpress/add-caching-to-your-plugin-969#comments</comments>
		<pubDate>Sat, 28 Jan 2012 13:56:08 +0000</pubDate>
		<dc:creator>Gil Rutkowski</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://flashingcursor.com/?p=969</guid>
		<description><![CDATA[Sooner or later, we all write something that could make use of some caching.  I&#8217;ve seen several plugins store cache data using the options API &#8212; though this will work, it&#8217;s probably not the right place to do this.  Instead, you can easily use the WordPress transient API.  Unlike the options API, the Transients API [...]]]></description>
			<content:encoded><![CDATA[<p>Sooner or later, we all write something that could make use of some caching.  I&#8217;ve seen several plugins store cache data using the options API &#8212; though this will work, it&#8217;s probably not the right place to do this.  Instead, you can easily use the WordPress transient API.  Unlike the options API, the Transients API gives you the option of an expiration.  Perfect for caching a query that needs updating, but doesn&#8217;t need run every time your code runs.  Here&#8217;s how it works:</p>
<pre class="brush: php; title: ; notranslate">
function hwp_cached_query() {

	if ( false === ( $hwp_query_results = get_transient( 'hwp_query_results' ) ) ) {
		$hwp_query_results = new WP_Query( 'cat=5&amp;order=random&amp;tag=tech&amp;post_meta_key=thumbnail' );
		set_transient( 'hwp_query_results', $hwp_query_results, 60*60*24 );
	}

	while ( $hwp_query_results-&gt;have_posts() ) : $hwp_query_results-&gt;the_post();
		echo '
&lt;ul&gt;
	&lt;li&gt;'; the_title(); echo '&lt;/li&gt;
&lt;/ul&gt;
';
	endwhile;

	// Reset Post Data
	wp_reset_postdata();
</pre>
<p>Quick breakdown:</p>
<pre class="brush: php; title: ; notranslate">
	if ( false === ( $hwp_query_results = get_transient( 'hwp_query_results' ) ) ) {
</pre>
<p>Here we check to see if the transient entry exists.</p>
<pre class="brush: php; title: ; notranslate">
		$hwp_query_results = new WP_Query( 'cat=5&amp;order=random&amp;tag=tech&amp;post_meta_key=thumbnail' );
		set_transient( 'hwp_query_results', $hwp_query_results, 60*60*24 );
</pre>
<p>If our cached data doesn&#8217;t exist, we&#8217;ll run our query and cache it. In this case, we&#8217;re calling our cached entry &#8216;hwp_query_results&#8217;, using the $hwp_query_results variable, and setting the expiration for 24 hours.</p>
]]></content:encoded>
			<wfw:commentRss>http://flashingcursor.com/wordpress/add-caching-to-your-plugin-969/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Change the &#8220;Enter Title Here&#8221; text in WordPress</title>
		<link>http://flashingcursor.com/wordpress/change-the-enter-title-here-text-in-wordpress-963</link>
		<comments>http://flashingcursor.com/wordpress/change-the-enter-title-here-text-in-wordpress-963#comments</comments>
		<pubDate>Fri, 20 Jan 2012 13:52:36 +0000</pubDate>
		<dc:creator>Gil Rutkowski</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://flashingcursor.com/?p=963</guid>
		<description><![CDATA[Though custom post types have a lot of label configuration options, the one glaring omission was the in-field &#8220;Enter Title Here&#8221; text that appears in the title field. Since the &#8220;title&#8221; area of a custom post type may not necessarily used for a &#8220;Title&#8221;, changing this will reduce confusion and make better sense from a [...]]]></description>
			<content:encoded><![CDATA[<p>Though custom post types have a lot of label configuration options, the one glaring omission was the in-field &#8220;Enter Title Here&#8221; text that appears in the title field. Since the &#8220;title&#8221; area of a custom post type may not necessarily used for a &#8220;Title&#8221;, changing this will reduce confusion and make better sense from a UX point-of-view. Well, guess what? There&#8217;s a filter for that!</p>
<pre class="brush: php; title: ; notranslate">
function hwp_enter_title_here( $title ){
	$screen = get_current_screen();

	if ( 'custom_post_type' == $screen-&gt;post_type ) {
		$title = 'Custom Post Type Title Text';
	}

	return $title;
}

add_filter( 'enter_title_here', 'hwp_enter_title_here' );</pre>
<p>Quick breakdown:</p>
<pre class="brush: php; title: ; notranslate">
	$screen = get_current_screen();
</pre>
<p>This gets our current admin screen attributes &#8212; we&#8217;ll use this to make sure we&#8217;re viewing our custom post type.</p>
<pre class="brush: php; title: ; notranslate">
	if ( 'custom_post_type' == $screen-&gt;post_type ) {
		$title = 'Custom Post Type Title Text';
	}
</pre>
<p>Here we check for our post type (replace &#8220;custom_post_type&#8221; with the name of your post type) and define the title text.</p>
<pre class="brush: php; title: ; notranslate">
	return $title;
</pre>
<p>Finally, our function returns the title field text to the filter.</p>
<pre class="brush: php; title: ; notranslate">
add_filter( 'enter_title_here', 'hwp_enter_title_here' );</pre>
<p>All we need to do is add our new function to the &#8216;enter_title_here&#8217; filter.</p>
]]></content:encoded>
			<wfw:commentRss>http://flashingcursor.com/wordpress/change-the-enter-title-here-text-in-wordpress-963/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress &#8211; Doomed to a Life of Conflict?</title>
		<link>http://flashingcursor.com/wordpress/wordpress-doomed-to-a-life-of-conflict-910</link>
		<comments>http://flashingcursor.com/wordpress/wordpress-doomed-to-a-life-of-conflict-910#comments</comments>
		<pubDate>Mon, 16 Jan 2012 22:39:37 +0000</pubDate>
		<dc:creator>Gil Rutkowski</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://flashingcursor.com/?p=910</guid>
		<description><![CDATA[A couple of weeks ago a post by Kevinjohn Gallagher, about his agency dropping WordPress as their &#8220;go-to&#8221; CMS, inexplicably went viral and the normal rumble of conflict in the WordPress community suddenly erupted into a roar. Once again, as if on cue, two camps quickly formed and the shit slinging ensued. At first, I had a very hard time [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of weeks ago a post by <a href="http://kevinjohngallagher.com/2012/01/wordpress-has-left-the-building/">Kevinjohn Gallagher</a>, about his agency dropping WordPress as their &#8220;go-to&#8221; CMS, inexplicably went viral and the normal rumble of conflict in the WordPress community suddenly erupted into a roar. Once again, as if on cue, two camps quickly formed and the shit slinging ensued.</p>
<p>At first, I had a very hard time understanding why such a fairly benign post spiraled into a civil war of words.  Truth is, I shouldn&#8217;t have had any trouble understanding at all.  It blew up for the same reason most conflicts do &#8212; the upper echelon has been ignoring the hoi polloi again.  Oh, and vice-versa.</p>
<p>We can get a better understanding why this the community blows up over and over if we look at a few key words and phrases that get tossed about in WordPress circles these days&#8230;</p>
<h3>Meritocracy</h3>
<p>Ah, yes, meritocracy&#8230; A term often used and abused by people like Matt Mullenweg, Jane Wells and others in the WordPress community to describe the hierarchy and management of the team.  I&#8217;ve posted a definition of the word so that we can be clear on its meaning.</p>
<blockquote><p>mer·i·toc·ra·cy  (mr-tkr-s)<br />
<em>n.</em><em>pl.</em><strong>mer·i·toc·ra·cies</strong><br />
<strong>1. </strong>A system in which advancement is based on individual ability or achievement.<br />
<strong>2. </strong><strong>a.  </strong>A group of leaders or officeholders selected on the basis of individual ability or achievement.  <strong>b. </strong>Leadership by such a group.</p>
<p>&#8211; The Dictionary</p></blockquote>
<p>Frankly, when I hear someone describe WordPress as a meritocracy, I can&#8217;t help but laugh a bit.  Ya see, I&#8217;ve spent a fair bit of time meeting developers over the last few years.  In fact, I&#8217;ve had the privilege of sitting down with a number of regular core contributors and even a couple of core committers.  Though I won&#8217;t name names, 9 out of 10 agree that, although ability and achievement do play a part in the &#8220;meritocracy&#8221;, it&#8217;s mostly a game of politics, ass kissing and playing favorites.  So, basically, if you&#8217;re not at least 99% on-board with the upper management, there is no place for you in the core WordPress group.</p>
<p>So, is WordPress really a meritocracy?  It&#8217;s pretty obvious from the outside looking in, and apparently from the inside looking in, that ability and intelligence are required but often trumped by favoritism and your ability to suppress any opinions you have that might not fall in line with the powers that be.</p>
<h3>The vocal minority</h3>
<p>Another term that&#8217;s been used quite a bit as of late.  The vocal minority is mentioned on the <a href="http://wordpress.org/about/philosophy/">WordPress Philosophy</a> page and as it&#8217;s presented there, it makes perfect sense:</p>
<blockquote><p>There&#8217;s a good rule of thumb within internet culture called the 1% rule. It states that &#8220;the number of people who create content on the internet represents approximately 1% (or less) of the people actually viewing that content&#8221;.</p></blockquote>
<p>In context, this is a great rule of thumb.  The statement is made regarding content creation and individuals on the web.  The problem is, it&#8217;s being used quite a bit to describe developers that use WordPress for their clients.  Once we alter the context of who the vocal minority is, it makes no sense at all.</p>
<p>Fact is that developers rarely speak for one person.  They each work with clients, typically dozens of them, and some have a client-base of thousands.  These developers probably have a wider and better perspective on how people want to use WordPress than many of those in the WordPress core group, so when a small handfull of developers start to rally around a feature that&#8217;s been removed, or disagree with a change that&#8217;s been made to the Admin UI, they&#8217;re more than likely not a vocal minority and probably speaking for more of the user community than those making decisions choose to perceive.</p>
<blockquote><p>&#8230;we look to engage more of those users who are not so vocal online. We do this by meeting and talking to users at WordCamps across the globe, this gives us a better balance of understanding&#8230;</p></blockquote>
<p>I&#8217;ve attended a few WordCamps and I&#8217;ve been to many WordPress centric meetups and events.  I don&#8217;t believe this statement to be true at all.  Perhaps I&#8217;m wrong, but every time I&#8217;ve had the opportunity to join in with a group of users and whichever core group members were there, the issues of the &#8220;vocal minority&#8221; are often the same issues that become central topics at WordCamps.  Every time I&#8217;ve gone out for drinks with fellow developers, their needs and wants seem to bare an uncanny resemblance to those that are dismissed as one-off needs of the &#8220;vocal minority&#8221;.</p>
<h3>Patches Welcome</h3>
<p>The ever more popular &#8220;Patches Welcome&#8221; response that core team members fling around is rarely realistic.</p>
<p>Often times a patch is outside the ability or comfort level of your average developer. Combine that with the fact that patches are often ignored or met with an angry us-vs-them mentality, the message of &#8220;patches welcome&#8221; is viewed more as a <em>fuck you</em> than an invitation to actually submit code.</p>
<h3>It&#8217;s &#8220;Us&#8221; vs. &#8220;Them&#8221;</h3>
<p>Not really something I&#8217;ve heard coming from the community &#8212; but it doesn&#8217;t surprise me when I hear it directed towards the community by highly regarded core contributors and committers.</p>
<p>Fact is that most of the community really appreciates what WordPress has done for them.  Whether a community member is a blogger just talkin&#8217; about life, a hobby enthusiast that shares their passion and makes a buck or two on the side,  a freelancer earning their living installing, customizing or building really big things on WordPress &#8211; they all love the fact that WordPress exists.</p>
<p>Most of them, however, don&#8217;t think their gratefulness should extend to the point of blindly agreeing with core when they feel poor decisions are made; this seems to be a sensitive issue for many in core.   Disagreement is often met with aggressive and sometimes downright abusive responses.  I can&#8217;t count the number of times I&#8217;ve heard the phrase &#8220;Vote with your feet&#8221;.</p>
<h3>Vote with your feet</h3>
<p>Well, I guess we can finish off where we started.</p>
<blockquote><p>If you don’t like the filter, vote with your feet or with a plugin. -<em>Matt Mullenweg</em></p></blockquote>
<p>&#8220;Vote with your feet&#8221; was a very popular phrase with WordPress A-Listers over the last couple years, but judging by the reaction to Kevinjohn and his vocal decision to ditch WordPress, I think what they meant to say is &#8220;Vote with your feet and please don&#8217;t say anything bad on your way out the door because we can&#8217;t deal with any sort of negative criticism&#8221;&#8230;  Not quite as catchy as &#8220;Vote with your feet&#8221;, eh?<em></em></p>
<p>Fact:  Kevinjohn is most definitely not the only one that&#8217;s making the tough decision to walk.  Slowly, but surely, agencies and freelancers are looking at alternatives for their clients.</p>
<h3>Doomed to a life of Conflict?</h3>
<p>So, do I really think WordPress is doomed to a life of conflict?  Frankly&#8230; Yes.</p>
<p>But I really hope I&#8217;m proven wrong.</p>
]]></content:encoded>
			<wfw:commentRss>http://flashingcursor.com/wordpress/wordpress-doomed-to-a-life-of-conflict-910/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>New Year, New Look. - We&#039;re now running Generate by StudioPress</title>
		<link>http://flashingcursor.com/wordpress/new-year-new-look-868</link>
		<comments>http://flashingcursor.com/wordpress/new-year-new-look-868#comments</comments>
		<pubDate>Sun, 01 Jan 2012 07:15:40 +0000</pubDate>
		<dc:creator>Gil Rutkowski</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://flashingcursor.com/?p=868</guid>
		<description><![CDATA[The past year has been AMAZING. Great new clients, fantastic new projects and a jam-packed schedule. As with all good things, the great stuff going on with clients and projects has caused one negative side-effect: This cobblers kid has been wearing the same worn out kicks for over a year. Well, in honor of the [...]]]></description>
			<content:encoded><![CDATA[<p>The past year has been AMAZING. Great new clients, fantastic new projects and a jam-packed schedule.</p>
<p>As with all good things, the great stuff going on with clients and projects has caused one negative side-effect:<br />
<em>This cobblers kid has been wearing the same worn out kicks for over a year</em>.</p>
<p>Well, in honor of the new year, we&#8217;ve remedied our neglect with a great new look based on <em><a title="Generate - StudioPress Genesis Child Theme" href="http://www.shareasale.com/r.cfm?b=353079&amp;u=413153&amp;m=28169&amp;urllink=&amp;afftrack=">Generate</a></em>, a righteous new <a href="http://www.shareasale.com/r.cfm?b=242709&amp;u=413153&amp;m=28169&amp;urllink=&amp;afftrack=">Genesis child theme</a> from StudioPress.  It&#8217;s clean, it&#8217;s simple and it&#8217;s responsive.</p>
<p>Stay tuned &#8212; more changes and some really big news are just around the corner!</p>
]]></content:encoded>
			<wfw:commentRss>http://flashingcursor.com/wordpress/new-year-new-look-868/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Akismet For Free! It never stopped being free&#8230;</title>
		<link>http://flashingcursor.com/wordpress/akismet-for-free-it-never-stopped-being-free-829</link>
		<comments>http://flashingcursor.com/wordpress/akismet-for-free-it-never-stopped-being-free-829#comments</comments>
		<pubDate>Thu, 24 Mar 2011 00:44:15 +0000</pubDate>
		<dc:creator>Gil Rutkowski</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://flashingcursor.com/?p=829</guid>
		<description><![CDATA[Ok, so &#8212; in an obvious effort to generate some extra income for Akismet, they changed their signup screen and hidden the free account in plain sight. Can&#8217;t really blame them for wanting to produce some additional income from this awesome service, but I really hate the way they did it.  Instead of asking people [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, so &#8212; in an obvious effort to generate some extra income for Akismet, they changed their signup screen and hidden the free account in plain sight.</p>
<p><img class="size-large wp-image-830 alignleft" title="akismet free api key" src="http://flashingcursor.com/wp-content/uploads/2011/03/akismet-free-api-key-630x436.png" alt="" width="630" height="436" /></p>
<p>Can&#8217;t really blame them for wanting to produce some additional income from this awesome service, but I really hate the way they did it.  Instead of asking people to pitch in by suggesting a donation, they used a little UI trick to hide the free signup &amp; donation form right under the 3 paying options.</p>
]]></content:encoded>
			<wfw:commentRss>http://flashingcursor.com/wordpress/akismet-for-free-it-never-stopped-being-free-829/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Black Friday WordPress Theme Sale (EXTENDED!)</title>
		<link>http://flashingcursor.com/wordpress/black-friday-wordpress-theme-sale-790</link>
		<comments>http://flashingcursor.com/wordpress/black-friday-wordpress-theme-sale-790#comments</comments>
		<pubDate>Fri, 26 Nov 2010 05:07:35 +0000</pubDate>
		<dc:creator>Gil Rutkowski</dc:creator>
				<category><![CDATA[Themes]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://flashingcursor.com/?p=790</guid>
		<description><![CDATA[It&#8217;s black Friday!  People are going a bit crazy over the deals &#8212; I just passed a BestBuy near my house around 8:00pm and there were people lined up along the side of the building, some of them even had tents setup. Almost looked like a party worth joining, if it wasn&#8217;t for the 30 [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s black Friday!  People are going a bit crazy over the deals &#8212; I just passed a BestBuy near my house around 8:00pm and there were people lined up along the side of the building, some of them even had tents setup. Almost looked like a party worth joining, if it wasn&#8217;t for the 30 degree weather. Instead, I decided to hold a little back Friday of my own, from the warmth and comfort of my couch!</p>
<p>So, in honor of Black Friday, I&#8217;ve reduced the price of my current <a href="http://wp4.us/studiopress">Genesis</a> <a title="Genesis WordPress Child Themes" href="http://www.themegarden.com/gil-rutkowski/endeavor/">child themes</a> to $19.95 each! No codes, no coupons &#8212; just buy. <a href="http://www.themegarden.com/gil-rutkowski/">Themes</a> are on sale now and will remain on sale &#8217;til Midnight on <del>Friday</del> Monday!</p>
<h2 class="mceTemp">Endeavor Genesis Child Theme</h2>
<div class="mceTemp"><a href="http://www.themegarden.com/gil-rutkowski/endeavor/"><img class="size-large wp-image-794 alignnone" title="Endeavor WordPress Child Theme for Genesis Framework" src="http://flashingcursor.com/wp-content/uploads/2010/11/Endeavor-WordPress-Child-Theme-for-Genesis-Framework-630x582.png" alt="" width="630" height="582" /></a></div>
<blockquote>
<div class="mceTemp"><a href="http://www.themegarden.com/gil-rutkowski/endeavor/">Endeavor</a> is our newest WordPress theme for the StudioPress Genesis theme framework.  A custom jQuery slider widget makes this one shine and brings the content you&#8217;d like hi-lighted to your visitors attention with a smooth slide-in effect. Check out the <a href="http://www.themegarden.com/gil-rutkowski/endeavor/">demo and buy at ThemeGarden</a>.</div>
</blockquote>
<h2 class="mceTemp">Photo-Genic Genesis Child Theme</h2>
<h2 class="mceTemp"><a href="http://www.themegarden.com/gil-rutkowski/photo-genic/"><img class="size-large wp-image-217 alignnone" title="Screenshot - Photo-Genic Home Page" src="http://flashingcursor.com/wp-content/uploads/2010/08/Screenshot-Photo-Genic-Home-Page-630x669.png" alt="" width="630" height="669" /></a></h2>
<blockquote>
<div class="mceTemp"><a href="http://www.themegarden.com/gil-rutkowski/photo-genic/">PhotoGenic</a> is a basic portfolio style child theme for Genesis.  Some simple, but effective jQuery bring the homepage and selected category pages to life.  Check out the <a href="http://www.themegarden.com/gil-rutkowski/photo-genic/">demo and buy at ThemeGarden</a>.</div>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://flashingcursor.com/wordpress/black-friday-wordpress-theme-sale-790/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Intro to Post Formats in WordPress 3.1</title>
		<link>http://flashingcursor.com/wordpress/intro-to-post-formats-in-wordpress-3-1-739</link>
		<comments>http://flashingcursor.com/wordpress/intro-to-post-formats-in-wordpress-3-1-739#comments</comments>
		<pubDate>Mon, 08 Nov 2010 05:29:44 +0000</pubDate>
		<dc:creator>Gil Rutkowski</dc:creator>
				<category><![CDATA[Themes]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://flashingcursor.com/?p=739</guid>
		<description><![CDATA[WordPress 3.1 will introduce a simple new feature called &#8220;Post Formats&#8221; that should make theme developers very, very happy people. Although the feature is simple, in the hands of a creative designer it allows for some pretty major styling options with a single line of code.  If a designer also happens to have some minimal [...]]]></description>
			<content:encoded><![CDATA[<p>WordPress 3.1 will introduce a simple new feature called &#8220;Post Formats&#8221; that should make theme developers very, very happy people. Although the feature is simple, in the hands of a creative designer it allows for some pretty major styling options with a single line of code.  If a designer also happens to have some minimal PHP savvy, it has some pretty tremendous creative potential.</p>
<p>Basically, Post Formats are just meta information and some front-end style additions to allow a theme author to customize individual posts both in &#8220;the Loop&#8221; and on single post pages.  Yes, it&#8217;s something that some theme authors have already been doing using categories or tags and some custom code &#8212; but this is easier and it also allows for some standardization and portability between themes which I think is the most important part.</p>
<p>At the time of this writing Post Formats is still in its early incarnation, so some things may change before the release of version 3.1.  That said, I think the feature is at a stage where we can start playing with it without much risk of major changes.</p>
<p><span style="font-size: 15px; font-weight: bold;">The basics:  Activating Post Formats</span></p>
<pre class="brush: php; title: ; notranslate">add_theme_support( 'post-formats', array( 'aside', 'gallery' ) );</pre>
<p><img class="size-full wp-image-751 alignright" title="post formats meta box" src="http://flashingcursor.com/wp-content/uploads/2010/11/post-formats-meta-box.png" alt="Post Formats in Publish Meta Box" width="285" height="226" /></p>
<p>That&#8217;s it!  That single line of code is all that&#8217;s needed to activate Post Formats in your theme.</p>
<p>Once active, a few things will automatically happen.</p>
<p>On the back-end, users will now be presented with a <em>Format</em> option in the Publish meta box of the post editor screen.</p>
<p>On the front-end, a couple of things happen. The post_class() function that most themes use to will start adding &#8216;format-&#8217; classes to each post wrapper and the body_class() function will add &#8216;single-format-&#8217; to the page body class.</p>
<p>A quick example of how to make use of this new class would could be as simple as this:</p>
<pre class="brush: plain; title: ; notranslate">#content .format-default h2 {
   font-size: 32px;
   font-color: #333333;
}
#content .format-aside h2 {
   display: none;
}</pre>
<p>In this example, we&#8217;re not doing much more than changing the title formatting of two post formats, but as you can imagine, this could be applied to every element of each post.</p>
<p><strong>Supported Arguments</strong></p>
<p>Post formats has just one argument.  The supported post formats.  Because this feature is intended to be standardized and portable between themes, custom formats are not an option. Currently supported (per the codex):</p>
<ul>
<li>aside &#8211; Typically styled without a title. Similar to a Facebook status update.</li>
<li>chat &#8211; A chat transcript.</li>
<li>gallery &#8211; A gallery of images.</li>
<li>link &#8211; A link to another site.</li>
<li>image &#8211; A single image.</li>
<li>quote &#8211; A quotation.</li>
<li>status &#8211; A short status update, usually limited to 140 characters. Similar to a Twitter status update.</li>
<li>video &#8211; A single video.</li>
</ul>
<p>Enable support for each post format by adding it to the array in add_theme_support.</p>
<p><strong>Additional Functions:</strong></p>
<p>At the moment, the post formats feature only brings one new function to the table:</p>
<pre class="brush: php; title: ; notranslate">get_post_format( $post-&gt;ID )</pre>
<p>This returns the post format of the current post &#8211; very useful in a custom loop to take your customization&#8217;s further than you could with a pure CSS solution.</p>
<p><strong>More Info</strong></p>
<p>There&#8217;s already been a fair bit of discussion about why custom post formats aren&#8217;t being supported.  Frankly, the logic behind this is simple and solid:  the feature is designed to be portable and standardized.  Allowing for a custom option steps all over that logic &#8212; the instant &#8216;custom&#8217; becomes an option, standards and portability go out the window.  As much as I&#8217;d like to see every feature in WordPress as customizable as possible, this is one case where I think it&#8217;ll be more globally beneficial to keep options broad but standardized.</p>
<p>If you can think of post formats that are missing, get yourself over to this <a href="http://core.trac.wordpress.org/ticket/14746">trac ticket (#14746)</a> and make your case for inclusion.</p>
<p>UPDATE:  Or join in here: <a href="http://wpdevel.wordpress.com/2010/11/11/list-of-post-formats/">http://wpdevel.wordpress.com/2010/11/11/list-of-post-formats/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://flashingcursor.com/wordpress/intro-to-post-formats-in-wordpress-3-1-739/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>WordPress themes and plugins DO NOT inherit the GPL v2</title>
		<link>http://flashingcursor.com/wordpress/wordpress-themes-and-plugins-do-not-inherit-the-gpl-v2-152</link>
		<comments>http://flashingcursor.com/wordpress/wordpress-themes-and-plugins-do-not-inherit-the-gpl-v2-152#comments</comments>
		<pubDate>Wed, 21 Jul 2010 15:39:45 +0000</pubDate>
		<dc:creator>Gil Rutkowski</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://flashingcursor.com/?p=152</guid>
		<description><![CDATA[Last week, the WordPress scene once again exploded with debate about the GPL v2.  The fuse?  A WordPress developer was removed from the CodePoet.com directory because he actively supported the commercial theme &#8220;Thesis&#8221; .  The community ruckus  spawned several articles about the subject, including this article I wrote as a response to the situation. This post is an update [...]]]></description>
			<content:encoded><![CDATA[<p>Last week, the WordPress scene once again exploded with debate about the GPL v2.  The fuse?  A WordPress developer was removed from the CodePoet.com directory because he actively supported the commercial theme &#8220;Thesis&#8221;  <a class="simple-footnote" title="a commercial theme written by Chris Pearson, which Automattic, Matt Mullenweg and several others claim to be in “blatant violation of the GPL”" id="return-note-152-1" href="#note-152-1"><sup>1</sup></a>.  The community ruckus  spawned several articles about the subject, including <a title="Extending the GPL visavis WordPress" href="http://flashingcursor.com/wordpress/extending-gpl-licensed-code-139">this article</a> I wrote as a response to the situation.</p>
<p>This post is an update to my <a href="http://flashingcursor.com/wordpress/extending-gpl-licensed-code-139">previous article</a>.  Though I think I made a valid argument, I no longer think it&#8217;s accurate and it&#8217;s doesn&#8217;t cover the &#8220;whole truth&#8221; which I&#8217;m going to do here.</p>
<p>While reading all the articles that have been written recently, I came to an epiphany!  Most of these articles, including my own, make one critical error:  They missed facts and focused on beliefs.</p>
<p>I&#8217;ll have to thank Matt Mullenweg for pointing out this fantastic quote:</p>
<blockquote><p>&#8220;In reality, we often base our opinions on our <em>beliefs</em>, which can have an uneasy relationship with facts. And rather than facts driving beliefs, our beliefs can dictate the facts we chose to accept. They can cause us to twist facts so they fit better with our preconceived notions. Worst of all, they can lead us to uncritically accept bad information just because it reinforces our beliefs. This reinforcement makes us more confident we’re right, and even less likely to listen to any new information.”</p>
<p>– Joe Keohane in <a href="http://www.boston.com/bostonglobe/ideas/articles/2010/07/11/how_facts_backfire/?page=full">How facts backfire</a>.</p></blockquote>
<p>One of the most well written articles on the subject of Derivative Works and WordPress would probably be Mark Jaquith&#8217;s &#8220;Why WordPress Themes are Derivative of WordPress&#8221; <a class="simple-footnote" title="http://markjaquith.wordpress.com/2010/07/17/why-wordpress-themes-are-derivative-of-wordpress" id="return-note-152-2" href="#note-152-2"><sup>2</sup></a>.  It spends most of it&#8217;s space explaining why WordPress themes should be considered &#8220;derivative works&#8221; without ever quoting a single line of the GPL v2.  He spent 2,000+ words on defining what makes something derivative but he missed one fact that qualifies, or in this case, disqualifies his entire opinion.</p>
<p>I <a href="http://markjaquith.wordpress.com/2010/07/17/why-wordpress-themes-are-derivative-of-wordpress/#comment-95370">commented</a>:</p>
<blockquote><p>Your article does a detailed job of describing your opinion. I truly appreciate hearing your point of view.</p>
<p>That said, I can’t help but notice that you don’t mention which part of GPLv2 you’re basing this opinion on. I think it’d be helpful to the readers to see what part of the license brings you to your conclusions.</p></blockquote>
<p>Mark responded with the following:</p>
<blockquote><p>The crux of it, to me, is this:</p>
<blockquote><p>These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works</p></blockquote>
<p>I do not consider themes independent and separate works. They form one work, when <strong>combined with WordPress</strong>, and necessarily contain WordPress code and WordPress-derivative code.</p></blockquote>
<p>BAM!  There it was.  The qualifier.  Not the quote from the GPL v2, but his words:  &#8221;when combined with WordPress&#8221;.  As Matt Mulenweg&#8217;s post quoting Joe Keohane helped me realize, Mark Jaquith twisted some facts by omitting this one statement from his entire article.  Perhaps he did this intentionally, or maybe it was just his beliefs driving his facts.</p>
<p>Mark made some very valid points throughout his article and it is VERY well written.  Points about how themes are run, how they interact with WordPress the same way that WordPress interacts with itself and how a theme uses the same functions as the core uses.</p>
<p>Yes, valid and convincing points indeed, except none of his points qualified until after a theme is distributed.  The GPL v2 is a distribution license, after all.  Until a theme is combined with WordPress, none of his points are valid.  If you go back and re-read his post, adding &#8220;when combined with WordPress&#8221; to each point, the article takes on a completely different meaning than what it&#8217;s title implies.</p>
<p>Now lets take a second to review James Vasile&#8217;s &#8220;official legal opinion&#8221; <a class="simple-footnote" title="I&#8217;m referring to his opinion and not the introduction which I find wholly inaccurate - http://wordpress.org/news/2009/07/themes-are-gpl-too/" id="return-note-152-3" href="#note-152-3"><sup>3</sup></a> as posted on WordPress.org back in July of 2009.  Since his legal opinion tends to be the de facto go-to when issues of WordPress and commercial themes come into question, I think it&#8217;s a very important read for everyone.  Since Mark and several others pointed to this Legal Opinion, I decided to read it one more time &#8212; really trying to absorb it this time, opening my mind to any new information that I may have missed in the past.</p>
<p>Now, I&#8217;m guessing I can&#8217;t be the first person to notice this &#8212; and I&#8217;m sure someone will point it out (please do).  James Vasile qualifies his entire legal argument with the following statement:</p>
<blockquote><p>On the basis of that version of WordPress, and considering those themes<strong> as if they had been added to WordPress by a third party</strong>, it is our opinion that the themes presented, and any that are substantially similar, contain elements that are derivative works of the WordPress software as well as elements that are potentially separate works.</p></blockquote>
<p>As James sates, it&#8217;s his <strong>official legal opinion</strong> is that themes <strong>AS IF THEY HAD BEEN ADDED TO WORDPRESS BY A THIRD PARTY</strong> are derivative works.</p>
<p>How the HELL did I miss this the first 10 time I read it?  Perhaps because I wasn&#8217;t expecting the go-to, &#8220;Official Opinion&#8221;, to support my opinion of commercial themes and plugins as they are currently distributed.  I read right over that statement because I was looking at the information and trying to find ways to refute it rather than agree with it.</p>
<p>So, there ya go &#8211; I now officially agree with the official WordPress.org published legal opinion of James Vasile.</p>
<p>WordPress themes and plugins that do not contain actual code from within WordPress and that are distributed without WordPress are NOT derivative works.  They do not become derivative works until a third party places them within the codebase of WordPress.  As we all know, people selling commercial plugins almost NEVER distribute them with WordPress and if they&#8217;re on the up-and-up, they&#8217;re not distributing copy pasta <a class="simple-footnote" title="Nerd Slang for software that contains copy and pasted code from other peoples work" id="return-note-152-4" href="#note-152-4"><sup>4</sup></a> that could possibly cause their code to inherit the GPL v2.</p>
<p>Now, many of you may wonder why I&#8217;m so adamant about this subject.  Those of you that know me, know that I wholeheartedly support Open Source and what it stands for.  WordPress and other Open Source projects have been putting food on my table for over a decade.  Why would I speak out against people like Matt Mullenweg and other GPL evangelists?</p>
<p>Well, the answer to that is very simple:  I believe in freedom in its purest form.</p>
<p>Just as much as I appreciate the work of people like Mark Jaquith, Matt Mullenweg, Andrew Nacin and all the many other contributors to WordPress, I also appreciate the fact that not everyone is able to put food on their table as a side-effect of freely contributing to a project such as WordPress.  I understand that some people might be creating original work that simply doesn&#8217;t have as much broad appeal or is amazingly innovative but simple, and the only way they&#8217;re time and effort will be repaid is by keeping the creation their own.</p>
<p>Yes, there are plenty of people that code commercial software that could contribute to the open source community and still make money, but it&#8217;s not my place, nor do I think it&#8217;s the intent of the GPL, to force those people to do the right thing.</p>
<p><strong>Other good reads:</strong></p>
<p>For a ton of <a href="http://www.chipbennett.net/2010/07/wordpress-themes-gpl-and-copyright-case-law/">research and potentially related case law</a>, Chip Bennett did a very in depth write-up on this same topic, from a slightly different angle.</p>
<p><strong>A short note on Chris Pearson:</strong></p>
<p>Since I started this post with mention of Thesis, I feel I need to add a note about it.  As I don&#8217;t want to make Thesis a focus here, I&#8217;ll keep it brief.</p>
<p>Chris Pearson allowed code from within WordPress and other GPL&#8217;ed plugins into his code-base.  Because of this I believe he has, at least to some extent, violated the GPL.  If he had kept it clean and used only his own code in the making of Thesis, I would probably be supporting him and would be rejoicing a precedent-setting lawsuit against him.  As it stands I cannot support him, nor do I find any joy or purpose (other than to compel him to re-release his code under the GPL) in any legal action against him.  Thats is all.  I will not respond, and will probably delete any comments in direct regards to Chris or Thesis.</p>
<div class="simple-footnotes"><p class="notes">Notes:</p><ol><li id="note-152-1">a commercial theme written by Chris Pearson, which Automattic, Matt Mullenweg and several others claim to be in “blatant violation of the GPL” <a href="#return-note-152-1">&#8617;</a></li><li id="note-152-2"><a href="http://markjaquith.wordpress.com/2010/07/17/why-wordpress-themes-are-derivative-of-wordpress/#comment-95370">http://markjaquith.wordpress.com/2010/07/17/why-wordpress-themes-are-derivative-of-wordpress</a> <a href="#return-note-152-2">&#8617;</a></li><li id="note-152-3">I&#8217;m referring to his opinion and not the introduction which I find wholly inaccurate - <a href="http://wordpress.org/news/2009/07/themes-are-gpl-too/">http://wordpress.org/news/2009/07/themes-are-gpl-too/</a> <a href="#return-note-152-3">&#8617;</a></li><li id="note-152-4">Nerd Slang for software that contains copy and pasted code from other peoples work <a href="#return-note-152-4">&#8617;</a></li></ol></div>]]></content:encoded>
			<wfw:commentRss>http://flashingcursor.com/wordpress/wordpress-themes-and-plugins-do-not-inherit-the-gpl-v2-152/feed</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Extending GPL Licensed Code</title>
		<link>http://flashingcursor.com/wordpress/extending-gpl-licensed-code-139</link>
		<comments>http://flashingcursor.com/wordpress/extending-gpl-licensed-code-139#comments</comments>
		<pubDate>Wed, 14 Jul 2010 19:59:43 +0000</pubDate>
		<dc:creator>Gil Rutkowski</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://flashingcursor.com/?p=139</guid>
		<description><![CDATA[So &#8212; once again, WordPress GPL wars have erupted on the Twitter. Today, it started with an independent WordPress consultant being removed from the CodePoet.com website. CodePoet is a directory of WordPress consultants brought to you by Automattic, the company behind WordPress.com. The reason cited  was that the consultant promoted the Thesis theme, a commercial theme [...]]]></description>
			<content:encoded><![CDATA[<p>So &#8212; once again, WordPress GPL wars have erupted on the Twitter.</p>
<p>Today, it started with an independent WordPress consultant being removed from the CodePoet.com website.</p>
<blockquote><p><a href="http://codepoet.com">CodePoet</a> is a directory of WordPress consultants brought to you by <a href="http://automattic.com/">Automattic</a>, the company behind WordPress.com.</p></blockquote>
<p>The reason cited  was that the consultant promoted the Thesis theme, a commercial theme written by Chris Pearson, which Automattic, Matt Mullenweg and several others claim to be in &#8220;blatant violation of the GPL&#8221;.</p>
<p>As these things go, members of the community immediately dug their trenches and started throwing verbal hand grenades around.  Very few people had any real valid points to make; Understandable as I&#8217;m quite sure  most people haven&#8217;t taken the time to read the GPL much less understand it enough to try to interpret it.  I don&#8217;t know why, but this WP GPL fight always brings up humorous memories of 2 groups of high school aged girls arguing over which actor in the Twilight series is hotter: Edward or Jacob.  Weird, hu?  Anyway, I digress &#8230;</p>
<p>First of all, lets take a quick second to review my point of view on the GPL and how it applies to WordPress extensions.  Mind you, this is my interpretation of it &#8212; not anyone else&#8217;s.  Furthermore, if I were to start selling premium or commercial themes or plugins for WordPress, there is a very good chance I&#8217;d release under a GPL compliant license.</p>
<ul>
<li>WordPress code is release under the GPL, so obviously modifying it&#8217;s code and then reselling the code would be in violation of copyright law.</li>
<li>WordPress provides an API &#8211; an interface that allows it to be extended to work with 3rd party code as well as allow 3rd party code to interface with it.</li>
<li>Many 3rd party, commercial, plugins can and do work without WordPress.</li>
</ul>
<p>So, those things said &#8212; I&#8217;m feeling a bit torn.  I think it&#8217;s a fringe area of the license and it requires someone unbiased, with a lot more contract law experience, like a Judge, to make the legal distinctions.  I do however feel like I sway towards non-gpl extensions being legal and not in violation of the GPL.</p>
<p>I&#8217;ll explain why with the following example:</p>
<p>WordPress, as well as countless other GPL licensed projects offer an interface for external applications.  Does the GPL extend to commercial 3rd party projects, such as FTP Clients, software media players or email clients?</p>
<p>Lets use an email client as a comparison to a WordPress theme.  Why?  On it&#8217;s exterior, it may seem like an apples to oranges comparison, but if we dig deeper these two things are much more similar than they seem.  You see, an email client doesn&#8217;t do much more than take information stored on a server, format it&#8217;s display and allow you to view and navigate it in a particular way.  In that same fashion, a WordPress theme does the same thing.  It takes an an authors content and formats how it&#8217;s displayed, and in most cases, gives you a method of navigating the content.</p>
<p>If we apply the logic that all extensions of WordPress are covered under the GPL, then we would have to apply that same logic to software like Microsoft Outlook and Internet Explorer, not to mention the countless other products that interface with and extend GPL licensed software.</p>
<p>In the Pearson vs. Mullenweg scenario, who has more to loose?  Matt believes that the whole open source community would take a hit if it went to court and lost.  It&#8217;s an exaggeration, but sure, this same battle has gone on within other GPL projects and they might have to concede that 3rd party extensions that don&#8217;t use actual GPL licensed code might be in the right to sell their wares.  On the other hand, if the GPL side of the argument won, what would happen to all those commercial clients that interface with GPL code?</p>
]]></content:encoded>
			<wfw:commentRss>http://flashingcursor.com/wordpress/extending-gpl-licensed-code-139/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Not so Judicious capital_P</title>
		<link>http://flashingcursor.com/wordpress/not-so-judicious-capital_p-108</link>
		<comments>http://flashingcursor.com/wordpress/not-so-judicious-capital_p-108#comments</comments>
		<pubDate>Tue, 13 Jul 2010 22:17:58 +0000</pubDate>
		<dc:creator>Gil Rutkowski</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://flashingcursor.com/?p=108</guid>
		<description><![CDATA[So &#8211; after all the hype about the capital_P_dangit &#8220;feature&#8221; in 3.0 surfaced, the core team did decide to make a change.  They&#8217;ve implemented a &#8220;more judicious&#8221; version of the filter to help &#8220;fix&#8221; some of the technical glitches the original code caused.  Today I&#8217;ll take a quick peek at that code so we can [...]]]></description>
			<content:encoded><![CDATA[<p>So &#8211; after all the hype about the capital_P_dangit &#8220;feature&#8221; in 3.0 surfaced, the core team did decide to make a change.  They&#8217;ve implemented a &#8220;more judicious&#8221; version of the filter to help &#8220;fix&#8221; some of the technical glitches the original code caused.  Today I&#8217;ll take a quick peek at that code so we can see just how effective the changes are.  In this example, I&#8217;ll be using the very same, new and improved code.</p>
<p>Here we have the &#8220;new code&#8221; &#8211; I haven&#8217;t altered a single line of it nor have I disabled the capital_P_dangit() filter in this installation of WordPress (version 3.0.1 from the SVN).</p>
<p>function capital_P_dangit( $text ) {<br />
// Simple replacement for titles<br />
if ( &#8216;the_title&#8217; === current_filter() )<br />
return str_replace( &#8216;WordPress&#8217;, &#8216;WordPress&#8217;, $text );<br />
// Still here? Use the more judicious replacement<br />
static $dblq = false;<br />
if ( false === $dblq )<br />
$dblq = _x(&#8216;“&#8217;, &#8216;opening curly quote&#8217;);<br />
return str_replace(<br />
array( &#8216; WordPress&#8217;, &#8216;‘Wordpress&#8217;, $dblq . &#8216;WordPress&#8217;, &#8216;&gt;Wordpress&#8217;, &#8216;(WordPress&#8217; ),<br />
array( &#8216; WordPress&#8217;, &#8216;‘WordPress&#8217;, $dblq . &#8216;WordPress&#8217;, &#8216;&gt;WordPress&#8217;, &#8216;(WordPress&#8217; ),<br />
$text );<br />
}</p>
<p>Check out the screencast for a quick overview of the new filter &#8212; or read on.<br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="560" height="420" 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://www.youtube.com/v/xWA3ANDNUqE&amp;hl=en_US&amp;fs=1?color1=0x3a3a3a&amp;color2=0x999999" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="560" height="420" src="http://www.youtube.com/v/xWA3ANDNUqE&amp;hl=en_US&amp;fs=1?color1=0x3a3a3a&amp;color2=0x999999" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Now, if you don&#8217;t code &#8212; you might not understand why, but if you cut and paste this code expecting it to work, it won&#8217;t.  See, the code snippet I pasted into the post is not the same as the code you&#8217;re looking at here.  The filter has changed some capitalization and rendered it useless.  I intended to give you a working code snippet, I made sure the snippet worked, but WordPress has broken by transparently &#8220;correcting an error in my spelling&#8221;.</p>
<p>WordPress_my_intent() &lt;- This is just an example of what a function could be called &#8212; but this too has been altered.  So, if I were to use an incorrectly capitalized &#8220;WordPress&#8221; in my function names, perhaps in code snippets I wrote last year, I then upgraded to 3.0, none of my snippets would work for anyone.</p>
<p>And what about not technical articles where I was trying to make a point &#8212; for whatever reason &#8212; by spelling WordPress incorrectly?</p>
<p>Perhaps the next revision of this junk code, that should NOT be in the core, will include some advanced mind-reading fuzzy logic.</p>
]]></content:encoded>
			<wfw:commentRss>http://flashingcursor.com/wordpress/not-so-judicious-capital_p-108/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: basic

Served from: flashingcursor.com @ 2012-05-18 07:40:34 -->
