<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Nathan Rice</title>
	
	<link>http://www.nathanrice.net</link>
	<description>Web Design, WordPress Themes, and Blogging</description>
	<lastBuildDate>Thu, 02 Jul 2009 07:13:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9-rare</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" /><meta xmlns="http://pipes.yahoo.com" name="pipes" content="noprocess" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/nathanricenet" type="application/rss+xml" /><feedburner:emailServiceId>nathanricenet</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Fnathanricenet" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fnathanricenet" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2Fnathanricenet" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/nathanricenet" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fnathanricenet" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fnathanricenet" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fnathanricenet" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><item>
		<title>Final Word on WordPress Themes and the GPL?</title>
		<link>http://feedproxy.google.com/~r/nathanricenet/~3/GMkCnklD1GY/</link>
		<comments>http://www.nathanrice.net/blog/final-word-on-wordpress-themes-and-the-gpl/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 07:09:10 +0000</pubDate>
		<dc:creator>Nathan Rice</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Planet WordPress]]></category>

		<guid isPermaLink="false">http://www.nathanrice.net/?p=596</guid>
		<description><![CDATA[Matt Mullenweg, the founder and lead developer of the WordPress blogging platform, emailed the Software Freedom Center recently asking about the legality of WordPress themes being licensed under copyright not compatible with the GPL, and they&#8217;ve now responded, which Matt has published on the WordPress Development Blog.
The conclusion? The PHP files in WordPress themes must [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://ma.tt/">Matt Mullenweg</a>, the founder and lead developer of the WordPress blogging platform, emailed the <a href="http://en.wikipedia.org/wiki/Software_Freedom_Law_Center">Software Freedom Center</a> recently asking about the legality of WordPress themes being licensed under copyright not compatible with the <abbr title="GNU General Public License">GPL</abbr>, and they&#8217;ve now responded, which Matt <a href="http://wordpress.org/development/2009/07/themes-are-gpl-too/">has published</a> on the <a href="http://wordpress.org/development/">WordPress Development Blog</a>.</p>
<p>The conclusion? <strong>The PHP files in WordPress themes must inherit the </strong><abbr title="GNU General Public License"><strong>GPL</strong></abbr><strong>, but <abbr title="Cascading Stylesheets">CSS</abbr> and Images do not.</strong> From the email:<br />
<span id="more-596"></span></p>
<blockquote><p>The PHP elements, taken together, are clearly derivative of WordPress code.</p></blockquote>
<p>Obviously, since many premium theme developers, including <a href="http://ithemes.nathanrice.net/">iThemes</a>, have <a href="http://www.nathanrice.net/blog/ithemes-wordpress-and-the-gpl/">adopted the <abbr title="GNU General Public License">GPL</abbr></a> completely for their themes, including <abbr title="Cascading Stylesheets">CSS</abbr> and Images, this news doesn&#8217;t make a big difference for us.</p>
<p>But because neither side can claim they were <em>100%</em> correct, the declaration is bittersweet to those on both sides of the issue.</p>
<p>Those claiming that themes must be completely covered by the <abbr title="GNU General Public License">GPL</abbr> can no longer claim that:</p>
<blockquote><p>&#8230; the images and <abbr title="Cascading Stylesheets">CSS</abbr> are not [subject to the requirements of the <abbr title="GNU General Public License">GPL</abbr>]. Third-party developers of such themes may apply restrictive copyrights to these elements if they wish.</p></blockquote>
<p>But those claiming that they can license their themes &#8212; <em>in their entirety</em> &#8212; under a restrictive license seem to have been in the wrong as well. <strong>Or were they?</strong></p>
<p>In the last paragraph of the email, it seems there is, at the very least, a potential loophole.</p>
<blockquote><p>Finally, we note that it might be possible to design a valid WordPress theme that avoids the factors that subject it to WordPress’s copyright, but such a theme would have to forgo almost all the WordPress functionality that makes the software useful.</p></blockquote>
<p>If it&#8217;s possible, though not ideal, for a WordPress theme to run independent of WordPress itself, then one must assume (at least from the wording of that paragraph) that the PHP code isn&#8217;t necessarily required to be subject to the requirements of the <abbr title="GNU General Public License">GPL</abbr>.</p>
<p>Obviously, this is the first time anyone has been able to speak about the issue with authority, so this is helpful. But I&#8217;m afraid this story isn&#8217;t over yet.</p>
<p>I, obviously, support licensing themes (free or paid) under the <abbr title="GNU General Public License">GPL</abbr>. But despite this latest news, I&#8217;m still very reluctant to say that the legality of the issue has been completely cleared up. There are still too many questions, and not nearly enough answers. One thing is for sure, theme authors have been adopting the <abbr title="GNU General Public License">GPL</abbr> all over the place lately. And WordPress just launched their <a href="http://wordpress.org/extend/themes/commercial/">commercial <abbr title="GNU General Public License">GPL</abbr> theme directory</a> today. Perhaps the legality of all this <abbr title="GNU General Public License">GPL</abbr> talk doesn&#8217;t even matter any more.</p>
<p><em>What do you think? </em></p>


<h3>Related posts:</h3><ol><li><a href='http://www.nathanrice.net/blog/pagerank-technorati-and-free-wordpress-themes/' rel='bookmark' title='Permanent Link: PageRank, Technorati, and Free WordPress Themes'>PageRank, Technorati, and Free WordPress Themes</a></li><li><a href='http://www.nathanrice.net/blog/ithemes-wordpress-and-the-gpl/' rel='bookmark' title='Permanent Link: iThemes, WordPress, and the GPL'>iThemes, WordPress, and the GPL</a></li><li><a href='http://www.nathanrice.net/blog/premium-wordpress-themes/' rel='bookmark' title='Permanent Link: Premium WordPress Themes?'>Premium WordPress Themes?</a></li><li><a href='http://www.nathanrice.net/blog/ie-double-margin-bug/' rel='bookmark' title='Permanent Link: IE Double Margin Bug'>IE Double Margin Bug</a></li><li><a href='http://www.nathanrice.net/blog/community-self-respect-and-free-wordpress-themes/' rel='bookmark' title='Permanent Link: Community, Self-Respect, and Free WordPress Themes'>Community, Self-Respect, and Free WordPress Themes</a></li></ol><img src="http://feeds.feedburner.com/~r/nathanricenet/~4/GMkCnklD1GY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.nathanrice.net/blog/final-word-on-wordpress-themes-and-the-gpl/feed/</wfw:commentRss>
		<slash:comments>33</slash:comments>
		<feedburner:origLink>http://www.nathanrice.net/blog/final-word-on-wordpress-themes-and-the-gpl/</feedburner:origLink></item>
		<item>
		<title>What Do You Want to Know About WordPress?</title>
		<link>http://feedproxy.google.com/~r/nathanricenet/~3/Pw53SVskXDk/</link>
		<comments>http://www.nathanrice.net/blog/what-do-you-want-to-know-about-wordpress/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 13:00:49 +0000</pubDate>
		<dc:creator>Nathan Rice</dc:creator>
				<category><![CDATA[Asides]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Planet WordPress]]></category>

		<guid isPermaLink="false">http://www.nathanrice.net/?p=591</guid>
		<description><![CDATA[If you have a question about WordPress that you want me to answer here on the blog, leave it in the comments and I might do a post on it.]]></description>
			<content:encoded><![CDATA[<p>Over the next few weeks, I want to take reader-submitted questions about <a href="http://wordpress.org/">WordPress</a> and answer them here on the blog. Have a question about themes? Plugins? Simple or complicated &#8212; it doesn&#8217;t matter!</p>
<p>If I pick your question, I&#8217;ll answer it (in as much detail as necessary) here on the blog, and link to you as the source of the question.</p>
<p>Hopefully this will be a BIG help to everyone out there, and make for some really good conversation! Leave your questions <a href="http://www.nathanrice.net/blog/what-do-you-want-to-know-about-wordpress/">in the comments</a>.</p>


<h3>Related posts:</h3><ol><li><a href='http://www.nathanrice.net/blog/is-my-theme-27-compatible/' rel='bookmark' title='Permanent Link: Is My Theme 2.7 Compatible?'>Is My Theme 2.7 Compatible?</a></li><li><a href='http://www.nathanrice.net/blog/7-must-have-plugins/' rel='bookmark' title='Permanent Link: 7 Must-Have Plugins'>7 Must-Have Plugins</a></li><li><a href='http://www.nathanrice.net/blog/wordpress-23-theme-backward-compatibility/' rel='bookmark' title='Permanent Link: WordPress 2.3 Theme Backward Compatibility'>WordPress 2.3 Theme Backward Compatibility</a></li><li><a href='http://www.nathanrice.net/blog/ultimate-guide-to-wordpress-seo-google-sitemaps/' rel='bookmark' title='Permanent Link: Ultimate Guide to WordPress SEO &#8211; Google Sitemaps'>Ultimate Guide to WordPress SEO &#8211; Google Sitemaps</a></li><li><a href='http://www.nathanrice.net/blog/comment-link-in-singlephp/' rel='bookmark' title='Permanent Link: Comment Link in single.php'>Comment Link in single.php</a></li></ol><img src="http://feeds.feedburner.com/~r/nathanricenet/~4/Pw53SVskXDk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.nathanrice.net/blog/what-do-you-want-to-know-about-wordpress/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		<feedburner:origLink>http://www.nathanrice.net/blog/what-do-you-want-to-know-about-wordpress/</feedburner:origLink></item>
		<item>
		<title>iThemes, WordPress, and the GPL</title>
		<link>http://feedproxy.google.com/~r/nathanricenet/~3/idxnpJeQ9UU/</link>
		<comments>http://www.nathanrice.net/blog/ithemes-wordpress-and-the-gpl/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 13:48:01 +0000</pubDate>
		<dc:creator>Nathan Rice</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Planet WordPress]]></category>
		<category><![CDATA[gpl]]></category>
		<category><![CDATA[ithemes]]></category>
		<category><![CDATA[premium wordpress themes]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.nathanrice.net/?p=572</guid>
		<description><![CDATA[Since starting iThemes back in early 2008, one thing Cory, and I when I joined the team, were justifiably concerned with was protecting our products, and of course our hard work, from being stolen or used without permission. This was our livelihood, so we couldn&#8217;t fool around.
Even though we both believed that we would have [...]]]></description>
			<content:encoded><![CDATA[<p>Since starting <a href="http://ithemes.nathanrice.net/">iThemes</a> back in early 2008, one thing <a href="http://corymiller.com/">Cory</a>, and I when I joined the team, were justifiably concerned with was protecting our products, and of course our hard work, from being stolen or used without permission. This was our livelihood, so we couldn&#8217;t fool around.</p>
<p>Even though we both believed that we would have been within our rights to copyright the entire work, we decided that we would license all WordPress code in our themes (function calls, loops, etc.) as <a href="http://www.gnu.org/copyleft/gpl.html">GPL</a>, and protect our images, stylesheets, etc., under a copyright. We felt it was a good compromise.<span id="more-572"></span></p>
<p>Ever since then, we&#8217;ve been internally debating the subject, going back and forth over the benefits vs. risks involved with licensing our themes completely under the <a href="http://www.gnu.org/copyleft/gpl.html">GPL</a>, and <strong>have finally decided, in the interest of our users, and the WordPress community at large, that we should cover all our themes, in their entirety, with the <a href="http://www.gnu.org/copyleft/gpl.html">GPL</a> license.</strong></p>
<h2>What This Means for Us</h2>
<p>Not much is going to change here. We&#8217;ll still continue to bring <a href="http://ithemes.nathanrice.net/">premium WordPress themes</a> to our customers on a regular basis. For us, this was about respecting the license of the platform upon which we build our themes, <a href="http://wordpress.org/">WordPress</a>.</p>
<h2>What This Means for Future Customers</h2>
<p>Again, not much is going to change there either. <a href="http://ithemes.nathanrice.net/">The themes</a> will still be the product, and they will continue to be &#8220;for sale&#8221;. However, because we are adopting a less restrictive license, there are a couple of changes that will have to happen:</p>
<ul>
<li>All our themes will be &#8220;multiple use&#8221;</li>
<li>Prices will likely drop</li>
<li>Our support model will likely change</li>
</ul>
<p>But for previous customers, don&#8217;t worry, nothing much is going to change for you. The only difference is that if you purchase a &#8220;single use&#8221; package sometime in the past, you are now free to use the theme on as many sites as you would like.</p>
<h2>Yes, iThemes Is Now 100% GPL Compliant</h2>
<p>So there you go. Though it wasn&#8217;t a huge change from our previous license, we do want to celebrate. <strong>Ultimately, this is good for everyone.</strong> We understand that there will likely be some questions and concerns, so please don&#8217;t hesitate to let us know in the <a href="http://www.nathanrice.net/ithemes-wordpress-and-the-gpl/#respond">comments</a> below, or <a href="http://ithemes.com/contact/">sending an email</a> to us. We&#8217;ll do our best to answer everyone who emails us.</p>
<p>You can also go and read the <a href="http://ithemes.com/ithemes-is-going-gpl/">official announcement from iThemes</a>.</p>
<p><strong>What do you think?</strong> Do you consider this a good move? A bad move? Let me know in the comments below. I&#8217;m <strong>very interested</strong> in what everyone thinks.</p>


<h3>Related posts:</h3><ol><li><a href='http://www.nathanrice.net/blog/ithemes-developers-package/' rel='bookmark' title='Permanent Link: iThemes Developers Package'>iThemes Developers Package</a></li><li><a href='http://www.nathanrice.net/blog/final-word-on-wordpress-themes-and-the-gpl/' rel='bookmark' title='Permanent Link: Final Word on WordPress Themes and the GPL?'>Final Word on WordPress Themes and the GPL?</a></li><li><a href='http://www.nathanrice.net/blog/ithemes-cyber-monday-25-off-everything/' rel='bookmark' title='Permanent Link: iThemes Cyber Monday &#8211; 25% off EVERYTHING'>iThemes Cyber Monday &#8211; 25% off EVERYTHING</a></li><li><a href='http://www.nathanrice.net/blog/creating-a-blog-page-with-paging/' rel='bookmark' title='Permanent Link: Creating a &#8220;Blog Page&#8221; &#8212; With Paging'>Creating a &#8220;Blog Page&#8221; &#8212; With Paging</a></li><li><a href='http://www.nathanrice.net/blog/7-must-have-plugins/' rel='bookmark' title='Permanent Link: 7 Must-Have Plugins'>7 Must-Have Plugins</a></li></ol><img src="http://feeds.feedburner.com/~r/nathanricenet/~4/idxnpJeQ9UU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.nathanrice.net/blog/ithemes-wordpress-and-the-gpl/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		<feedburner:origLink>http://www.nathanrice.net/blog/ithemes-wordpress-and-the-gpl/</feedburner:origLink></item>
		<item>
		<title>An Introduction to WordPress Action Hooks</title>
		<link>http://feedproxy.google.com/~r/nathanricenet/~3/fRJTodNUMZc/</link>
		<comments>http://www.nathanrice.net/blog/an-introduction-to-wordpress-action-hooks/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 10:00:47 +0000</pubDate>
		<dc:creator>Nathan Rice</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Planet WordPress]]></category>
		<category><![CDATA[action hooks]]></category>
		<category><![CDATA[actions]]></category>
		<category><![CDATA[hooks]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.nathanrice.net/?p=486</guid>
		<description><![CDATA[If you&#8217;re going to be doing any level of WordPress development, themes or plugins, you will invariably run into the need to take advantage of the WordPress Action Hook system. But the more I am able to talk to people in the community, the more I realize that people simply don&#8217;t understand the concept very [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re going to be doing <i>any</i> level of WordPress development, <em>themes or plugins</em>, you will invariably run into the need to take advantage of the <strong>WordPress Action Hook</strong> system. <strong>But the more I am able to talk to people in the community, the more I realize that people simply don&#8217;t understand the concept very well, or at all.</strong></p>
<p>In fact, one of the biggest barriers to using what is referred to as a <a href="http://codex.wordpress.org/Theme_Frameworks">Theme Framework</a> or creating their own plugins is the fact that they rely heavily on Action Hooks to function properly.</p>
<p>Understanding this concept accelerated my level of development skills immediately after I figured out what hooks were, and how they worked. And today, I want to help you find that path too.<span id="more-486"></span></p>
<h2>So, What Are WordPress Action Hooks?</h2>
<p>This can be a very easy, and a somewhat difficult thing to explain. <strong>Action hooks are essentially placeholders. Wherever an action hook is placed, it will execute any code that has been &#8220;hooked&#8221; to it.</strong></p>
<p>So, let&#8217;s try to visualize this with some default WordPress action hooks that are in most themes. You can find <code>wp_head</code> and <code>wp_footer</code> in just about every single theme available, and most people don&#8217;t realize <strong>these are action hooks</strong>. They&#8217;re simply placeholders that plugins can use to insert code into the <code>&lt;head&gt;<!--formatted--></code> and footer of the theme. Often times, they use these action hooks to insert things like <code>CSS</code> or Analytics code. They create a function that generates the code, and then &#8220;hook&#8221; that function to either <code>wp_head</code> or <code>wp_footer</code>.</p>
<p>If I could wrap up the concept in one sentence, it would be this: <strong>WordPress action hooks are a means of providing a way for other developers to insert their own code in specific locations within your code, in order to change or expand the functionality of your code.</strong></p>
<h2>Why Action Hooks Are Necessary</h2>
<p>Like any other major piece of software, WordPress evolves. Every few months a new version is released.</p>
<p>Let&#8217;s assume that action hooks didn&#8217;t exist, but you wanted to change or extend some function of WordPress. In order to do this, you have to modify core WordPress files. And when it comes time to upgrade, you&#8217;re left with a choice: do the upgrade and lose all my modifications, or stay with the old version.</p>
<p>But <strong>if you use action hooks to modify how WordPress works, you can upgrade knowing that your mods are in a separate file which makes the changes the correct way, and you won&#8217;t be in danger of having those mods overwritten during the upgrade.</strong></p>
<h2>How Do Action Hooks Work?</h2>
<p>Going back to the example of the <code>wp_head</code> and <code>wp_footer</code> actions, let&#8217;s assume that you wanted to insert some <code>CSS</code> in your <code>&lt;head&gt;<!--formatted--></code> section of your theme so that you can override the link colors.</p>
<p>(don&#8217;t worry about the &#8220;what&#8221; so much. the &#8220;how&#8221; is much more important here).</p>
<p><strong>The first thing you need to do is create a function that inserts the code.</strong> Because action hooks only allow functions to be &#8220;hooked&#8221; to them, we&#8217;ll need to create a function that generates the code:</p>
<pre>
function insert_some_css() {
	echo &lt;&lt;&lt;CSS
&lt;style type="text/css"&gt;
	a {
		color: #08FF00; /* green */
		text-decoration: none;
	}
	a:hover {
		color: #FF0000; /* red */
		text-decoration: underline;
	}
&lt;/style&gt;
	CSS;
}
</pre>
<p>So, once you have your function constructed, it&#8217;s time to &#8220;hook&#8221; the function to the <code>wp_head</code> action hook. It&#8217;s pretty easy:</p>
<pre>
add_action('wp_head', 'insert_some_css');
</pre>
<p>In layman&#8217;s terms, that line of code is saying, &#8220;Whenever the <code>wp_head</code> action shows up in the theme code, execute the <code>insert_some_css</code> function.&#8221;</p>
<p>My final code usually looks something like this:</p>
<pre>
add_action('wp_head', 'insert_some_css');
function insert_some_css() {
	echo &lt;&lt;&lt;CSS
&lt;style type="text/css"&gt;
	a {
		color: #08FF00; /* green */
		text-decoration: none;
	}
	a:hover {
		color: #FF0000; /* red */
		text-decoration: underline;
	}
&lt;/style&gt;
	CSS;
}
</pre>
<p>It&#8217;s really not a difficult concept, if you think about it. <strong>All you need to do is find an action hook that you want to use to output some code, create a function, and hook the function to that action using the <code>add_action</code> code I gave you above.</strong></p>
<p class="note">As always, be sure any PHP code is placed between opening and closing PHP tags, or it will not execute.</p>
<h2>Creating Your Own Action Hooks</h2>
<p>While WordPress <a href="http://codex.wordpress.org/Plugin_API/Action_Reference">does provide</a> you with a LOT of action hooks that you can take advantage of, you can <a href="http://codex.wordpress.org/Function_Reference/do_action">create your own</a> too, <strong>giving your theme or plugin the same benefit of letting other people make changes to your code, without having to edit your code.</strong></p>
<p>So, if you want to provide an action hook that will execute any functions that are &#8220;hooked&#8221; to it, just use this code:</p>
<pre>
&lt;?php do_action('my_action_hook_name'); ?&gt;
</pre>
<p>Of course, change the <code>my_action_hook_name</code> to something unique that describes the location and/or purpose of the action hook.</p>
<p>And now, anyone can come along and hook their own function to your newly created action hook.</p>
<h2>Other Sources on Action Hooks</h2>
<ul>
<li>Ian Stewart explains <a href="http://themeshaper.com/action-hooks-wordpress-child-themes/">action hooks for Child Themes</a></li>
<li>Raymond Selda <a href="http://www.raymondselda.com/understanding-action-hooks-in-wordpress/">explains the concept</a>, with examples</li>
<li>The Codex page for <a href="http://codex.wordpress.org/Plugin_API">Plugin API</a> has some good info</li>
<li>The Codex lists <a href="http://codex.wordpress.org/Plugin_API/Action_Reference">all the default actions hooks</a> you can use</li>
</ul>
<p>So, now you know what the fuss is all about. Take it for a spin, and let me know what you think of it in the comments. And if you have any questions, I&#8217;d be happy to try to answer them.</p>


<h3>Related posts:</h3><ol><li><a href='http://www.nathanrice.net/blog/browser-detection-and-the-body_class-function/' rel='bookmark' title='Permanent Link: Browser Detection and the body_class() Function'>Browser Detection and the body_class() Function</a></li><li><a href='http://www.nathanrice.net/themes/stripped/' rel='bookmark' title='Permanent Link: Stripped Theme Released'>Stripped Theme Released</a></li><li><a href='http://www.nathanrice.net/blog/how-to-redirect-a-page-using-custom-fields-in-wordpress/' rel='bookmark' title='Permanent Link: How To Redirect a Page Using Custom Fields in WordPress'>How To Redirect a Page Using Custom Fields in WordPress</a></li><li><a href='http://www.nathanrice.net/blog/wordpress-single-post-templates/' rel='bookmark' title='Permanent Link: WordPress Single Post Templates'>WordPress Single Post Templates</a></li><li><a href='http://www.nathanrice.net/blog/elegantblue-11-bug-fixes/' rel='bookmark' title='Permanent Link: ElegantBlue 1.1: Bug Fixes'>ElegantBlue 1.1: Bug Fixes</a></li></ol><img src="http://feeds.feedburner.com/~r/nathanricenet/~4/fRJTodNUMZc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.nathanrice.net/blog/an-introduction-to-wordpress-action-hooks/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		<feedburner:origLink>http://www.nathanrice.net/blog/an-introduction-to-wordpress-action-hooks/</feedburner:origLink></item>
		<item>
		<title>How To Redirect a Page Using Custom Fields in WordPress</title>
		<link>http://feedproxy.google.com/~r/nathanricenet/~3/y_81O_Xeanw/</link>
		<comments>http://www.nathanrice.net/blog/how-to-redirect-a-page-using-custom-fields-in-wordpress/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 10:00:05 +0000</pubDate>
		<dc:creator>Nathan Rice</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Planet WordPress]]></category>
		<category><![CDATA[custom fields]]></category>
		<category><![CDATA[redirect]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress themes]]></category>

		<guid isPermaLink="false">http://www.nathanrice.net/?p=502</guid>
		<description><![CDATA[Today, I wanted to share a very quick tip that will allow you to insert an internal or external URL in a custom field for a page, and when a user visits that page, they will be redirected to the URL you put in the custom field.
Why would you need to do this? Well, if [...]]]></description>
			<content:encoded><![CDATA[<p>Today, I wanted to share a very quick tip that will allow you to insert an internal or external URL in a custom field for a page, and when a user visits that page, they will be redirected to the URL you put in the custom field.</p>
<p>Why would you need to do this? Well, if you want to add a link to your navigation menu, instead of editing code, you could just create a new page, and have that page redirect your users to the URL you specified. I&#8217;ve had clients in that situation before, and this code has come in pretty handy for them.<span id="more-502"></span></p>
<h2>Adding the URL to the Custom Field</h2>
<p>The first thing you need to do is create a new page, or edit an old one. Scroll down past the page content to a section labeled <i>Custom Fields</i>.</p>
<p>You should see something like this:</p>
<p><a href="http://www.nathanrice.net/wp-content/uploads/2009/06/custom-field.jpg"><img src="http://www.nathanrice.net/wp-content/uploads/2009/06/custom-field.jpg" alt="custom-field" title="custom-field" width="580" height="183" class="alignnone size-full wp-image-545" /></a></p>
<p>If instead of seeing a text box on the left, you see a dropdown menu, just click the link that says <i>Enter new</i> and it will bring up the text box.</p>
<p>In that first text box (labeled <i>Name</i>), type in the word <i>redirect</i>, and in the second box (labeled <i>Value</i>, type the URL you want to redirect this page to.  Then, click the <i>Add Custom Field</i> button.</p>
<p>Finally, either save or publish the page.</p>
<h2>Editing Your Theme</h2>
<p><strong>After you&#8217;ve done this, you&#8217;ll need to add some code that will actually detect that you&#8217;ve created a custom field, and do the redirect.</strong> This will require a very minor edit to your theme, but don&#8217;t worry, it&#8217;s only 3 lines of code, and all you have to do is paste it in and save.</p>
<p>Open up your theme folder and look for a file called <code>page.php</code>. Open it up in your favorite text editor (not word processor) and look at the very top and locate this code (or something very similar):</p>
<pre>
&lt;?php get_header(); ?&gt;
</pre>
<p>All you need to do is change that, to this:</p>
<pre>
&lt;?php
global $post; // &lt; -- globalize, just in case
$field = get_post_meta($post-&gt;ID, 'redirect', true);
if($field) wp_redirect(clean_url($field), 301);
get_header();
?&gt;
</pre>
<p>As you might have noticed, we&#8217;re using one of the <a href="http://www.nathanrice.net/blog/5-useful-wordpress-functions-you-didnt-know-existed/">5 WordPress Functions You Didn&#8217;t Know Existed</a> in this little code snippet, <code>clean_url()</code>. This just does some basic sanitation of the URL, just in case you pasted it in incorrectly. We&#8217;re also using the <code>wp_redirect()</code> function (<a href="http://phpxref.com/xref/wordpress/wp-includes/pluggable.php.source.html#l823">source</a> &amp; <a href="http://codex.wordpress.org/Function_Reference/wp_redirect">Codex</a>), which we didn&#8217;t cover in the <a href="http://www.nathanrice.net/blog/5-useful-wordpress-functions-you-didnt-know-existed/">5 WordPress Functions You Didn&#8217;t Know Existed</a> post, but it is definitely a good one. It takes a URL input, along with the type of redirect (in our case, a <a href="http://en.wikipedia.org/wiki/URL_redirection#HTTP_status_codes_3xx">301 permanent redirect</a>), and does the redirect for us.</p>
<p><strong>And that&#8217;s it. You&#8217;re done.</strong> Now, when a user visits your site and clicks on that page, they will be taken to the URL you specified in the custom field.</p>
<h2>Isn&#8217;t There a Plugin for This?</h2>
<p><strong>Yes, and I wrote it.</strong> If you don&#8217;t want to mess around with editing code, you can completely skip that step, and instead, download and install my <a href="http://www.nathanrice.net/plugins/">Custom Field Redirect</a> WordPress plugin. Also, WordPress developer extraordinaire Mark Jaquith has a similar plugin called <a href="http://txfx.net/code/wordpress/page-links-to/">Page Links To</a>. Either one will work fine for redirecting a page to a different URL.</p>


<h3>Related posts:</h3><ol><li><a href='http://www.nathanrice.net/blog/an-easy-way-to-get-the-contents-of-a-custom-field/' rel='bookmark' title='Permanent Link: An Easy Way To Get the Contents of a Custom Field'>An Easy Way To Get the Contents of a Custom Field</a></li><li><a href='http://www.nathanrice.net/blog/creating-a-blog-page-with-paging/' rel='bookmark' title='Permanent Link: Creating a &#8220;Blog Page&#8221; &#8212; With Paging'>Creating a &#8220;Blog Page&#8221; &#8212; With Paging</a></li><li><a href='http://www.nathanrice.net/blog/ultimate-guide-to-wordpress-seo-optimized-titles/' rel='bookmark' title='Permanent Link: Ultimate Guide to WordPress SEO &#8211; Optimized Titles'>Ultimate Guide to WordPress SEO &#8211; Optimized Titles</a></li><li><a href='http://www.nathanrice.net/blog/definitive-sticky-posts-guide-for-wordpress-27/' rel='bookmark' title='Permanent Link: Definitive Sticky Posts Guide for WordPress 2.7'>Definitive Sticky Posts Guide for WordPress 2.7</a></li><li><a href='http://www.nathanrice.net/blog/wordpress-single-post-templates/' rel='bookmark' title='Permanent Link: WordPress Single Post Templates'>WordPress Single Post Templates</a></li></ol><img src="http://feeds.feedburner.com/~r/nathanricenet/~4/y_81O_Xeanw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.nathanrice.net/blog/how-to-redirect-a-page-using-custom-fields-in-wordpress/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		<feedburner:origLink>http://www.nathanrice.net/blog/how-to-redirect-a-page-using-custom-fields-in-wordpress/</feedburner:origLink></item>
		<item>
		<title>10 Sites That Produce Quality WordPress Content</title>
		<link>http://feedproxy.google.com/~r/nathanricenet/~3/A4xCs_boMow/</link>
		<comments>http://www.nathanrice.net/blog/10-sites-that-produce-quality-wordpress-content/#comments</comments>
		<pubDate>Fri, 05 Jun 2009 04:59:58 +0000</pubDate>
		<dc:creator>Nathan Rice</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[wordpress blogs]]></category>
		<category><![CDATA[WordPress News]]></category>
		<category><![CDATA[wordpress resources]]></category>
		<category><![CDATA[wordpress tutorials]]></category>

		<guid isPermaLink="false">http://www.nathanrice.net/?p=484</guid>
		<description><![CDATA[Sometimes, it&#8217;s hard to find good sources of quality WordPress content around the net. The problem is, many times good sites go unnoticed because of a lack of good marketing. Sometimes, even, good sites get sold off to bad owners. It happens.
I track a lot of WordPress content daily, so I&#8217;m happy to sort through [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes, it&#8217;s hard to find good sources of quality WordPress content around the net. The problem is, many times good sites go unnoticed because of a lack of good marketing. Sometimes, even, <a href="http://wpdesigner.com/">good sites get sold off to bad owners</a>. It happens.</p>
<p>I track a lot of WordPress content daily, so I&#8217;m happy to sort through the noise for you. My list is lean and mean, and I don&#8217;t mind sharing. <strong>Be sure to subscribe to the RSS feeds and/or follow them on twitter too.</strong></p>
<p>Here are 10 sites I highly recommend if you are looking to expand your understanding of WordPress, or keep up with what&#8217;s going on in the community.<span id="more-484"></span></p>
<h2>1. wpazo.com</h2>
<p><a href="http://wpazo.com/">Visit Site</a> &#8212; <a href="http://twitter.com/wpazo">@wpazo</a> on twitter<br />
Started by Ian Stewart (<a href="http://twitter.com/iandstewart">@iandstweart</a>), this site doesn&#8217;t produce content, but rather scours the internet and finds the good stuff for you. The blog is fairly young, but I&#8217;ve been incredibly impressed with the caliber and frequency of content it promotes. Your humble blog author has been featured several times in the last few days, so you know Ian&#8217;s got good taste. :-)</p>
<h2>2. WPEngineer.com</h2>
<p><a href="http://wpengineer.com/">Visit Site</a> &#8212; <a href="http://twitter.com/wpengineer">@wpengineer</a> on twitter<br />
WPEngineer is definitely one of my favorites. They feature new posts on a fairly regular basis, and the content is solid and understandable. They cover both simple and more technical content, but it&#8217;s done in a very understandable way.</p>
<h2>3. WPRecipes.com</h2>
<p><a href="http://www.wprecipes.com/">Visit Site</a> &#8212; <a href="http://twitter.com/catswhocode">@catswhocode</a> on twitter<br />
I love this concept. Take an idea (a recipe) and write a short, concise, extremely useful article explaining how to do it. I wouldn&#8217;t even call it an article. It&#8217;s basically one sentence describing what they&#8217;re trying to accomplish, and a code blog that demonstrates how to accomplish it. No fluff.</p>
<h2>4. WPTavern.com</h2>
<p><a href="http://www.wptavern.com/">Visit Site</a> &#8212; <a href="http://twitter.com/wptavern">@wptavern</a> on twitter<br />
Jeff Chandler (<a href="http://twitter.com/jeffr0">@jeffr0</a>) has done an amazing job of forming a vibrant and growing community around this concept. His site features both a blog and a forum where WordPress news, ideas, themes, plugins, and everything else WordPress gets discussed. This is definitely a resource you want to keep up with.</p>
<h2>5. JustinTadlock.com</h2>
<p><a href="http://justintadlock.com">Visit Site</a> &#8212; <a href="http://twitter.com/justintadlock">@justintadlock</a> on twitter<br />
Though he doesn&#8217;t produce content too often, when he does, it&#8217;s almost always useful. Definitely not for the faint of heart, Justin&#8217;s articles are going to dig deep into WordPress coding, but you&#8217;ll definitely learn something new. Justin is also the author of the <a href="http://themehybrid.com/">Hybrid theme</a>, a WordPress theme framework which, no doubt, powers thousands of WordPress blogs.</p>
<h2>6. WeblogToolsCollection.com</h2>
<p><a href="http://weblogtoolscollection.com/">Visit Site</a> &#8212; <a href="http://twitter.com/laughinglizard">@laughinglizard</a> on twitter<br />
<strong>The big daddy</strong>. WLTC is no doubt the most popular blog about WordPress out there. Mark Gosh and his team produce <em>DAILY</em> content on WordPress news, events, themes, plugins, and tutorials. It&#8217;s pretty much got everything you might want. If you&#8217;re not already subscribed, then you&#8217;ve probably been living in a bomb shelter since 1999. Come on out, and give WLTC a look-see.</p>
<h2>7. PlanetOzh.com</h2>
<p><a href="http://planetozh.com/blog/">Visit Site</a> &#8212; <a href="http://twitter.com/ozh">@ozh</a> on twitter<br />
Ozh is probably best known for his plugin development, but he also writes tutorials on his process and methodology, which is invaluable for someone looking to get into plugin development. I personally owe a good portion of what I know about plugin development to Ozh. I used his source code to teach myself. Great guy. Great content. Great site.</p>
<h2>8. ProBlogDesign.com</h2>
<p><a href="http://www.problogdesign.com/">Visit Site</a> &#8212; <a href="http://twitter.com/problogdesign">@problogdesign</a> on twitter<br />
While not technically a blog about WordPress, Michael does write WordPress tips and tutorials quite often, making this a resource worth having in your feed reader. Every tutorial I&#8217;ve ever read from them is clear and easy to follow. I&#8217;m a subscriber, and you should be too.</p>
<h2>9. ThemeShaper.com</h2>
<p><a href="http://themeshaper.com/">Visit Site</a> &#8212; <a href="http://twitter.com/iandstewart">@iandstewart</a> on twitter<br />
The home of the <a href="http://themeshaper.com/thematic/">Thematic</a> theme framework for WordPress, Ian has built a large community of users and fans there. Many of the tutorials are Thematic specific, but they often apply to WordPress in general too. At the very least, you&#8217;ll meet a cool guy and download a slick theme.</p>
<h2>10. WP-Fun.co.uk</h2>
<p><a href="http://wp-fun.co.uk/">Visit Site</a> &#8212; <a href="http://twitter.com/andrew_rickmann">@andrew_rickmann</a> on twitter<br />
WordPress coding guru Andrew Rickman runs this blog. More technical in nature, WP-Fun does cover deeper topics, but in an understandable way, and also does plugin reviews, talks about open source philosophy, and other things that I think you&#8217;ll enjoy. Plus, Andrew is another very cool person you&#8217;ll be glad you met.</p>


<h3>Related posts:</h3><ol><li><a href='http://www.nathanrice.net/blog/my-thoughts-on-the-centralization-of-wordpress-content/' rel='bookmark' title='Permanent Link: Centralization of WordPress Content'>Centralization of WordPress Content</a></li><li><a href='http://www.nathanrice.net/blog/wordpress-27-admin-sneek-peek/' rel='bookmark' title='Permanent Link: WordPress 2.7 Admin Sneek-Peek'>WordPress 2.7 Admin Sneek-Peek</a></li><li><a href='http://www.nathanrice.net/blog/where-ive-been-and-whats-next/' rel='bookmark' title='Permanent Link: Where I&#8217;ve been, and What&#8217;s Next'>Where I&#8217;ve been, and What&#8217;s Next</a></li><li><a href='http://www.nathanrice.net/blog/premium-or-freemium/' rel='bookmark' title='Permanent Link: Premium or Freemium?'>Premium or Freemium?</a></li><li><a href='http://www.nathanrice.net/blog/community-self-respect-and-free-wordpress-themes/' rel='bookmark' title='Permanent Link: Community, Self-Respect, and Free WordPress Themes'>Community, Self-Respect, and Free WordPress Themes</a></li></ol><img src="http://feeds.feedburner.com/~r/nathanricenet/~4/A4xCs_boMow" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.nathanrice.net/blog/10-sites-that-produce-quality-wordpress-content/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
		<feedburner:origLink>http://www.nathanrice.net/blog/10-sites-that-produce-quality-wordpress-content/</feedburner:origLink></item>
		<item>
		<title>Centralization of WordPress Content</title>
		<link>http://feedproxy.google.com/~r/nathanricenet/~3/fN74th9pxYc/</link>
		<comments>http://www.nathanrice.net/blog/my-thoughts-on-the-centralization-of-wordpress-content/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 19:10:29 +0000</pubDate>
		<dc:creator>Nathan Rice</dc:creator>
				<category><![CDATA[Asides]]></category>
		<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.nathanrice.net/?p=516</guid>
		<description><![CDATA[Over at WPTavern.com, there is an interesting discussing going on about the fragmentation of quality WordPress content on different blogs. It was proposed that a central location for this information be started to aggregate all the good tutorials. Here are my thoughts.


Related posts:10 Sites That Produce Quality WordPress ContentPremium WordPress Themes?Welcome to NathanRice.netUltimate Guide to [...]]]></description>
			<content:encoded><![CDATA[<p>Over at <a href="http://www.wptavern.com">WPTavern.com</a>, there is an <a href="http://www.wptavern.com/is-wordpress-information-too-fragmented">interesting discussing</a> going on about the fragmentation of quality WordPress content on different blogs. It was proposed that a central location for this information be started to aggregate all the good tutorials. <a href="http://www.wptavern.com/is-wordpress-information-too-fragmented#comment-1596">Here are my thoughts</a>.</p>


<h3>Related posts:</h3><ol><li><a href='http://www.nathanrice.net/blog/10-sites-that-produce-quality-wordpress-content/' rel='bookmark' title='Permanent Link: 10 Sites That Produce Quality WordPress Content'>10 Sites That Produce Quality WordPress Content</a></li><li><a href='http://www.nathanrice.net/blog/premium-wordpress-themes/' rel='bookmark' title='Permanent Link: Premium WordPress Themes?'>Premium WordPress Themes?</a></li><li><a href='http://www.nathanrice.net/blog/welcome-to-nathanricenet/' rel='bookmark' title='Permanent Link: Welcome to NathanRice.net'>Welcome to NathanRice.net</a></li><li><a href='http://www.nathanrice.net/blog/ultimate-guide-to-wordpress-seo-google-webmaster-tools/' rel='bookmark' title='Permanent Link: Ultimate Guide to WordPress SEO &#8211; Google Webmaster Tools'>Ultimate Guide to WordPress SEO &#8211; Google Webmaster Tools</a></li><li><a href='http://www.nathanrice.net/blog/talking-wordpress-not-bad-at-all/' rel='bookmark' title='Permanent Link: Talking WordPress: Not Bad At All!'>Talking WordPress: Not Bad At All!</a></li></ol><img src="http://feeds.feedburner.com/~r/nathanricenet/~4/fN74th9pxYc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.nathanrice.net/blog/my-thoughts-on-the-centralization-of-wordpress-content/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.nathanrice.net/blog/my-thoughts-on-the-centralization-of-wordpress-content/</feedburner:origLink></item>
		<item>
		<title>5 Useful WordPress Functions You Didn’t Know Existed</title>
		<link>http://feedproxy.google.com/~r/nathanricenet/~3/XmrRbDgPwJw/</link>
		<comments>http://www.nathanrice.net/blog/5-useful-wordpress-functions-you-didnt-know-existed/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 10:00:13 +0000</pubDate>
		<dc:creator>Nathan Rice</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Planet WordPress]]></category>
		<category><![CDATA[clean_url]]></category>
		<category><![CDATA[get_rss]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress functions]]></category>
		<category><![CDATA[wpautop]]></category>
		<category><![CDATA[wp_loginout]]></category>
		<category><![CDATA[wp_mail]]></category>
		<category><![CDATA[wp_rss]]></category>

		<guid isPermaLink="false">http://www.nathanrice.net/?p=492</guid>
		<description><![CDATA[Deep within the source code of WordPress lies an endless list of useful functions just waiting for you to use them in your theme or plugin. The problem is, most people don&#8217;t know they exist, probably because the Codex is ridiculously underdeveloped, and most people hate looking through source code. Luckily for you, reading the [...]]]></description>
			<content:encoded><![CDATA[<p>Deep within the <a href="http://phpxref.com/xref/wordpress/nav.html?index.html">source code</a> of WordPress lies an endless list of <a href="http://phpxref.com/xref/wordpress/nav.html?_functions/index.html">useful functions</a> just waiting for you to use them in your theme or plugin. The problem is, most people don&#8217;t know they exist, probably because <a href="http://codex.wordpress.org/">the Codex</a> is ridiculously underdeveloped, and most people hate looking through source code. Luckily for you, reading the WordPress source code is a hobby of mine.</p>
<p>So, I compiled a list of some of my favorites. Some are simple and can be used by pretty much everyone; others have less common uses; but, all of them are incredibly useful.<span id="more-492"></span></p>
<h2>1. wp_mail()</h2>
<p>The <code>wp_mail()</code> function is essentially a super-easy function that allows you to easily send an email to anyone you want by just passing a few simple arguments. For example:</p>
<pre>
&lt;?php
$to = 'user@example.com';
$subject = 'Hello from my blog!';
$message = 'Check it out -- my blog is emailing you!'

$mail = wp_mail($to, $subject, $message);

if($mail) echo 'Your message has been sent!';
else echo 'There was a problem sending your message. Please try again.';
?&gt;
</pre>
<p>You can also specify third and fourth parameter, <code>$headers</code> and <code>$attachments</code>. <strong>Seriously, this function takes all of the heavy lifting out of sending pretty much any kind of email you can think of.</strong></p>
<p>You can check out the function reference on the Codex <a href="http://codex.wordpress.org/Function_Reference/wp_mail">here</a>, or you can check out the source code for the function <a href="http://phpxref.com/xref/wordpress/wp-includes/pluggable.php.source.html#l222">here</a> (which I highly recommend).</p>
<h2>2. wp_loginout()</h2>
<p>This function gives us the ability to display a &#8220;Login&#8221; link on our theme, so we can easily log in without having to manually type in the <code>/wp-admin/</code> or <code>/wp-login.php</code> URL. But it goes beyond just that. If we&#8217;re already logged in, instead of displaying a &#8220;Login&#8221; link, it displays a &#8220;Logout&#8221; link that allows us to log out of our account without having to visit the dashboard.</p>
<p>This function is incredibly useful for theme authors, since it does all the logic for you. <strong>If you&#8217;re still manually adding the link to login our logout, you&#8217;re wasting your time.</strong> Do yourself a favor and use <code>wp_loginout()</code>.</p>
<p>You can check out the template tag reference on the Codex <a href="http://codex.wordpress.org/Template_Tags/wp_loginout">here</a>, or you can check out the source code for the function <a href="http://phpxref.com/xref/wordpress/wp-includes/general-template.php.source.html#l121">here</a>.</p>
<h2>3. clean_url()</h2>
<p>This function takes a URL input and tests it to make sure it is structured correctly. It can add the <code>http://</code> to the front of a URL if it&#8217;s missing, it converts ampersands to their correct HTML character, and a few other things that fix poorly structured URLs.</p>
<p>There are use-cases a-plenty, but the one that comes to my mind is the ability to let a user enter a URL in a theme options or plugin settings page, and NOT require them to &#8220;include <code>http://</code>&#8220;. If the function did nothing else, that alone would make it useful to me.</p>
<p>You can check out the function reference on the Codex <a href="http://codex.wordpress.org/Function_Reference/clean_url">here</a>, or you can check out the source code for the function <a href="http://phpxref.com/xref/wordpress/wp-includes/formatting.php.source.html#l1656">here</a>.</p>
<h2>4. wpautop()</h2>
<p>This function is converts line breaks in strings of text to <code>&lt;br /&gt;<!--formatted--></code> tags, and makes a double line break into a new paragraph by ending the first paragraph, <code>&lt;/p&gt;<!--formatted--></code>, and starting a new one, <code>&lt;p&gt;<!--formatted--></code>. It also opens and closes the entire string with paragraph tags, so the whole thing is formatted correctly.</p>
<p><strong>If you are ever storing strings of text in a database that you need to display on the front end, but wondered how to turn those line breaks into valid HTML during output, this is the function for you.</strong> In fact, this is the function WordPress uses to format posts when outputting <code>the_content()</code>.</p>
<p>You can check out the function reference on the Codex <a href="http://codex.wordpress.org/Function_Reference/wpautop">here</a>, or you can check out the source code for the function <a href="http://phpxref.com/xref/wordpress/wp-includes/formatting.php.source.html#l102">here</a>.</p>
<h2>5. wp_rss() / get_rss()</h2>
<p>These functions can pull in data from an RSS feed, parse it, and (depending on how you handle it) can display the data in a useful format like a list with links.</p>
<p>I&#8217;ve used these functions on several client sites where they wanted me to pull in stories from other news sources to be displayed in a section of their website. <strong>All you need to do is provide an RSS feed address, and the function(s) do(es) the hard work.</strong></p>
<p>One caveat is that you do need to do a PHP include before you can use these functions. It&#8217;s only one extra line of code though:</p>
<pre>
&lt;?php
include_once(ABSPATH . WPINC . '/rss.php'); // < -- this is the include call
wp_rss('http://example.com/rss/feed/goes/here', 5); // <-- this is the function
?&gt;
</pre>
<p>You can check out the function reference for wp_rss() <a href="http://codex.wordpress.org/Function_Reference/wp_rss">here</a>, or get_rss() <a href="http://codex.wordpress.org/Function_Reference/get_rss">here</a>, or you can view the source code for each of the functions <a href="http://phpxref.com/xref/wordpress/wp-includes/rss.php.source.html#l875">here</a>.</pre>


<h3>Related posts:</h3><ol><li><a href='http://www.nathanrice.net/blog/whats-my-feedburner-id/' rel='bookmark' title='Permanent Link: What&#8217;s My Feedburner ID?'>What&#8217;s My Feedburner ID?</a></li><li><a href='http://www.nathanrice.net/blog/wordpress-23-theme-backward-compatibility/' rel='bookmark' title='Permanent Link: WordPress 2.3 Theme Backward Compatibility'>WordPress 2.3 Theme Backward Compatibility</a></li><li><a href='http://www.nathanrice.net/blog/elegantblue-11-bug-fixes/' rel='bookmark' title='Permanent Link: ElegantBlue 1.1: Bug Fixes'>ElegantBlue 1.1: Bug Fixes</a></li><li><a href='http://www.nathanrice.net/blog/how-to-redirect-a-page-using-custom-fields-in-wordpress/' rel='bookmark' title='Permanent Link: How To Redirect a Page Using Custom Fields in WordPress'>How To Redirect a Page Using Custom Fields in WordPress</a></li><li><a href='http://www.nathanrice.net/blog/an-introduction-to-wordpress-action-hooks/' rel='bookmark' title='Permanent Link: An Introduction to WordPress Action Hooks'>An Introduction to WordPress Action Hooks</a></li></ol><img src="http://feeds.feedburner.com/~r/nathanricenet/~4/XmrRbDgPwJw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.nathanrice.net/blog/5-useful-wordpress-functions-you-didnt-know-existed/feed/</wfw:commentRss>
		<slash:comments>63</slash:comments>
		<feedburner:origLink>http://www.nathanrice.net/blog/5-useful-wordpress-functions-you-didnt-know-existed/</feedburner:origLink></item>
		<item>
		<title>Browser Detection and the body_class() Function</title>
		<link>http://feedproxy.google.com/~r/nathanricenet/~3/f1HllDUzrlA/</link>
		<comments>http://www.nathanrice.net/blog/browser-detection-and-the-body_class-function/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 10:00:09 +0000</pubDate>
		<dc:creator>Nathan Rice</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Planet WordPress]]></category>

		<guid isPermaLink="false">http://www.nathanrice.net/?p=469</guid>
		<description><![CDATA[We can use built-in WordPress browser detection and the new body_class() function to target specific browsers with unique CSS styles.]]></description>
			<content:encoded><![CDATA[<p>Yesterday, I wrote an article introducing and unwrapping the new <a title="WordPress Body Class Function" href="http://www.nathanrice.net/blog/wordpress-2-8-and-the-body_class-function/">WordPress body class</a> function that will be included in WordPress 2.8. <strong>Today, I want to take it a step further by giving you a practical example of how you you can use the function to make things easier for yourself.</strong></p>
<p>One of the more frustrating things about coding for the web is the fact that different browsers often render the same code differently than one another. <strong>Wouldn&#8217;t it be nice if we could apply certain CSS styles to just the browsers that need it?</strong> With the new <code>body_class()</code> function, and a little code magic on our part, and you&#8217;ll be able to do just that.</p>
<p class="alert">It should be noted that this article will be a bit more involved than some of the others on this site. There will be a lot of assumptions made about your level of coding experience.</p>
<p><span id="more-469"></span></p>
<h2>Leveraging the Tools WordPress Provides</h2>
<p>Many people don&#8217;t know this, but <strong>WordPress <a href="http://phpxref.com/xref/wordpress/wp-includes/vars.php.source.html#l60">provides several global variables</a> that we can use to do browser detection.</strong> <em>Once again, browsing around the WordPress source code pays off.</em></p>
<p>The variables WordPress provides are as follows:</p>
<ul>
<li>$is_lynx</li>
<li>$is_gecko</li>
<li>$is_IE</li>
<li>$is_winIE</li>
<li>$is_macIE</li>
<li>$is_opera</li>
<li>$is_NS4</li>
<li>$is_safari</li>
<li>$is_chrome</li>
<li>$is_iphone</li>
</ul>
<p>Each variable has a value of <em>FALSE</em> by default, and is switched to <em>TRUE</em> if the condition is true. For example, if the user loads a page using Firefox, the <em>$is_gecko</em> gets a value of <em>TRUE</em>.</p>
<p>This list may not be as extensive as we might like (browser versions, platforms, etc.), but it is a really good start.</p>
<h2>Building the Browser Detection Function</h2>
<p>Now that we know that WordPress is doing simple browser detection for us, we can use this data to add classes to the output of the <code>body_class()</code> function. And in order to add those classes, we&#8217;re going to use a method that I outlined yesterday &#8212; we&#8217;re going to filter the classes using the body_class filter. Here&#8217;s the final code &#8212; I&#8217;ll explain what&#8217;s going on afterwards.</p>
<pre>
&lt;?php
add_filter('body_class','browser_body_class');
function browser_body_class($classes) {
	global $is_lynx, $is_gecko, $is_IE, $is_opera, $is_NS4, $is_safari, $is_chrome, $is_iphone;

	if($is_lynx) $classes[] = 'lynx';
	elseif($is_gecko) $classes[] = 'gecko';
	elseif($is_opera) $classes[] = 'opera';
	elseif($is_NS4) $classes[] = 'ns4';
	elseif($is_safari) $classes[] = 'safari';
	elseif($is_chrome) $classes[] = 'chrome';
	elseif($is_IE) $classes[] = 'ie';
	else $classes[] = 'unknown';

	if($is_iphone) $classes[] = 'iphone';
	return $classes;
}
?&gt;
</pre>
<p><strong>The first thing you&#8217;ll notice is that we had to globalize all the conditional variables.</strong> This is something PHP requires in order to use variables that are defined outside the function.</p>
<p>Once we&#8217;re able to use the variables, we use a simple <code>IF ... ELSEIF ... ELSE</code> statement to check if the different conditions are true. If they are true, then we add the corresponding class. If they are not true, then we move along.</p>
<p>You&#8217;ll also notice that I checked the value of the <em>$is_iphone</em> variable in a different <code>IF</code> statement. That is because when browsing with an iPhone, you are also using Safari. Therefore, if I had checked the <code>$is_iphone</code> variable in the first <code>IF</code> statement, either the &#8220;safari&#8221; or &#8220;iphone&#8221; class wouldn&#8217;t have gotten added to the <code>$classes[]</code> array.</p>
<p>If, for whatever reason, the server can&#8217;t detect what type of browser the user is using, it will add an &#8220;unknown&#8221; class to the <code>$classes[]</code> array.</p>
<p>Finally, we return the <code>$classes</code> array with the new browser classes added to it.</p>
<h2>The Result</h2>
<p>The final result will look something like this, if you view the source code of your page:</p>
<pre>
&lt;body class="home blog logged-in <b>safari</b>"&gt;
</pre>
<h2>How to Use the Browser Body Class</h2>
<p>Now that we have the <code>&lt;body&gt;<!--formatted--></code> tag outputting a class for the browser we&#8217;re using, <strong>we can use CSS to target particular styles to elements being viewed in certain browsers.</strong> For instance, let&#8217;s say this was my default link style:</p>
<pre>
a {
	color: blue;
	text-decoration: underline;
}
</pre>
<p>Now, let&#8217;s make the links a different color when a user views the site in FireFox:</p>
<pre>
.gecko a {
	color: <strong>red</strong>;
	text-decoration: underline;
}
</pre>
<p>Notice, all I had to do was prepend the browser class-selector to the style, and now, any time someone using FireFox visits my site, all their links will be red, instead of blue.</p>
<p>One of the most useful applications I&#8217;ve discovered is the ability to target Internet Explorer with certain styles. It&#8217;s great to be able to just apply slightly different styles to certain elements in order to account for the <a href="http://www.positioniseverything.net/explorer.html">many bugs</a> in Internet Explorer.</p>
<p>So there you go! You can now use the new <a href="http://www.nathanrice.net/blog/wordpress-2-8-and-the-body_class-function/" title="WordPress body class">WordPress body class</a> function, and the built-in browser detection in WordPress to add new CSS classes to your <code>&lt;body&gt;.<!--formatted--></code></p>
<h2>Further Reading</h2>
<p>Here are some other resources that you might find useful when trying to do browser detection, if you want to make your function even more thorough:</p>
<ul>
<li>The PHP <a href="http://us2.php.net/get_browser">get_browser()</a> function</li>
<li>Using the <a href="http://www.easytutorials.org/php_browser_detection.html">$SERVER['HTTP_USER_AGENT']</a> variable</li>
</ul>


<h3>Related posts:</h3><ol><li><a href='http://www.nathanrice.net/blog/wordpress-2-8-and-the-body_class-function/' rel='bookmark' title='Permanent Link: WordPress 2.8 and the body_class() Function'>WordPress 2.8 and the body_class() Function</a></li><li><a href='http://www.nathanrice.net/blog/know-your-audience-the-browser-war/' rel='bookmark' title='Permanent Link: Know Your Audience: The Browser War'>Know Your Audience: The Browser War</a></li><li><a href='http://www.nathanrice.net/blog/an-easy-way-to-get-the-contents-of-a-custom-field/' rel='bookmark' title='Permanent Link: An Easy Way To Get the Contents of a Custom Field'>An Easy Way To Get the Contents of a Custom Field</a></li><li><a href='http://www.nathanrice.net/blog/definitive-sticky-posts-guide-for-wordpress-27/' rel='bookmark' title='Permanent Link: Definitive Sticky Posts Guide for WordPress 2.7'>Definitive Sticky Posts Guide for WordPress 2.7</a></li><li><a href='http://www.nathanrice.net/blog/web-safe-fonts/' rel='bookmark' title='Permanent Link: Web-Safe Fonts For Your Blog'>Web-Safe Fonts For Your Blog</a></li></ol><img src="http://feeds.feedburner.com/~r/nathanricenet/~4/f1HllDUzrlA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.nathanrice.net/blog/browser-detection-and-the-body_class-function/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		<feedburner:origLink>http://www.nathanrice.net/blog/browser-detection-and-the-body_class-function/</feedburner:origLink></item>
		<item>
		<title>New Design Launches Today</title>
		<link>http://feedproxy.google.com/~r/nathanricenet/~3/g-NBw2srHlM/</link>
		<comments>http://www.nathanrice.net/blog/new-design-launches-today/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 17:24:05 +0000</pubDate>
		<dc:creator>Nathan Rice</dc:creator>
				<category><![CDATA[Asides]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[nathan rice]]></category>
		<category><![CDATA[reboot]]></category>
		<category><![CDATA[redesign]]></category>

		<guid isPermaLink="false">http://www.nathanrice.net/?p=467</guid>
		<description><![CDATA[If you&#8217;re used to reading this site via feed reader, you might want to take some time out today and take a gander at the new design. Let me know what you think. I&#8217;m quite smitten by it.


Related posts:New Design On the WayGood Design Starts With the HomepageWhat&#8217;s My Feedburner ID?Welcome to NathanRice.netKnow Your Audience: [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re used to reading this site via feed reader, you might want to take some time out today and take a gander at <a href="http://www.nathanrice.net/">the new design</a>. Let me know what you think. I&#8217;m quite smitten by it.</p>


<h3>Related posts:</h3><ol><li><a href='http://www.nathanrice.net/blog/new-design-on-the-way/' rel='bookmark' title='Permanent Link: New Design On the Way'>New Design On the Way</a></li><li><a href='http://www.nathanrice.net/blog/good-design-starts-with-the-homepage/' rel='bookmark' title='Permanent Link: Good Design Starts With the Homepage'>Good Design Starts With the Homepage</a></li><li><a href='http://www.nathanrice.net/blog/whats-my-feedburner-id/' rel='bookmark' title='Permanent Link: What&#8217;s My Feedburner ID?'>What&#8217;s My Feedburner ID?</a></li><li><a href='http://www.nathanrice.net/blog/welcome-to-nathanricenet/' rel='bookmark' title='Permanent Link: Welcome to NathanRice.net'>Welcome to NathanRice.net</a></li><li><a href='http://www.nathanrice.net/blog/know-your-audience-the-browser-war/' rel='bookmark' title='Permanent Link: Know Your Audience: The Browser War'>Know Your Audience: The Browser War</a></li></ol><img src="http://feeds.feedburner.com/~r/nathanricenet/~4/g-NBw2srHlM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.nathanrice.net/blog/new-design-launches-today/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<feedburner:origLink>http://www.nathanrice.net/blog/new-design-launches-today/</feedburner:origLink></item>
		<item>
		<title>WordPress 2.8 and the body_class() Function</title>
		<link>http://feedproxy.google.com/~r/nathanricenet/~3/302ZOl4ZQv0/</link>
		<comments>http://www.nathanrice.net/blog/wordpress-2-8-and-the-body_class-function/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 12:00:46 +0000</pubDate>
		<dc:creator>Nathan Rice</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Planet WordPress]]></category>
		<category><![CDATA[body_class]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[dynamic classes]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress 2.8]]></category>

		<guid isPermaLink="false">http://www.nathanrice.net/?p=415</guid>
		<description><![CDATA[WordPress 2.8 introduces the body_class() function, and this article goes through the basics of implementing, and utilizing the new feature.]]></description>
			<content:encoded><![CDATA[<p>Back on February 7th, I was casually browsing the <a href="http://core.svn.wordpress.org/trunk/">WordPress trunk code</a>, and discovered a very cool new function in the <a href="http://core.svn.wordpress.org/trunk/wp-includes/post-template.php">wp-includes/post-template.php</a> file.</p>
<p>Beginning in WordPress 2.8, themes will be able to take advantage of the <code>body_class()</code> function to place location-specific classes on the opening <code>&lt;body&gt;<!--formatted--></code> tag, usually located in the <code>header.php</code> file of most themes.</p>
<p>Why is this significant? Easy &#8230; this opens up the ability to change the look of nearly everything with <code>CSS</code> only.</p>
<p>Before we get into the application of the <code>body_class()</code> function, let&#8217;s cover some technical details first.<span id="more-415"></span></p>
<h2>What body_class() Generates</h2>
<p>The <code>body_class()</code> function operates in nearly the exact same manner as the <code>post_class()</code> function that <a href="http://codex.wordpress.org/Migrating_Plugins_and_Themes_to_2.7#Post_Classes">was introduced in WordPress 2.7</a>. The only differences are the classes it generates. <strong>The <code>body_class()</code> function will generate the classes mostly based on where your viewer is on your site.</strong>  For instance, if a viewer is on your homepage and you haven&#8217;t set a static page for your homepage, then the classes the function might generate might look like this:</p>
<pre>&lt;body class="home blog"&gt;</pre>
<p>Notice, those are two separate classes, either of which you can use as a <a href="http://css.maxdesign.com.au/selectutorial/">selector</a>.</p>
<p>However, if you are on a particular post, the body tag might look like this:</p>
<pre>&lt;body class="single postid-64"&gt;</pre>
<p>And if you are currently looking at a page, then <code>body_class()</code> will generate something like this:</p>
<pre>&lt;body class="page page-id-3 parent-page-id-0 page-template-default"&gt;</pre>
<p>Essentially, <code>body_class()</code> will generate dynamic <code>CSS</code> classes based on the type of content, and under what circumstances, you are currently browsing. For instance, if you are a registered user, and are currently logged in, <code>body_class()</code> will generate a <code>logged-in</code> class on the body tag.</p>
<p>The following is a full list of possible body classes (HT: <a href="http://wpengineer.com/wordpress-28-body_class-automatic_feed_links/">WPEngineer.com</a>):</p>
<ul>
<li>rtl</li>
<li>home</li>
<li>blog</li>
<li>archive</li>
<li>date</li>
<li>search</li>
<li>paged</li>
<li>attachment</li>
<li>error404</li>
<li>single postid-(id)</li>
<li>attachmentid-(id)</li>
<li>attachment-(mime-type)</li>
<li>author</li>
<li>author-(user_nicename)</li>
<li>category</li>
<li>category-(slug)</li>
<li>tag</li>
<li>tag-(slug)</li>
<li><a href="http://core.trac.wordpress.org/changeset/10950">page</a></li>
<li>page-parent</li>
<li>page-child parent-pageid-(id)</li>
<li>page-template page-template-(template file name)</li>
<li>search-results</li>
<li>search-no-results</li>
<li>logged-in</li>
<li>paged-(page number)</li>
<li>single-paged-(page number)</li>
<li>page-paged-(page number)</li>
<li>category-paged-(page number)</li>
<li>tag-paged-(page number)</li>
<li>date-paged-(page number)</li>
<li>author-paged-(page number)</li>
<li>search-paged-(page number)</li>
</ul>
<h2>How To Add body_class() to My Theme</h2>
<p>This is actually the easy part. Assuming you are running WordPress 2.8 (currently in beta, soon to be released), all you have to do is add a new template tag. You&#8217;ll need to locate which template file generates the opening <code>&lt;body&gt;<!--formatted--></code> tag. This is usually the <code>header.php</code> file.</p>
<p>After you&#8217;ve located the <code>&lt;body&gt;<!--formatted--></code> tag, just change it to this:</p>
<pre>&lt;body &lt;?php body_class(); ?&gt;&gt;</pre>
<p>Save the file (and upload to your server, if necessary), and you&#8217;re done!</p>
<h2>Using Dynamic Body Classes</h2>
<p>So, we now have body classes. What&#8217;s the big deal? I&#8217;ll explain:</p>
<p>With the exception of the <code>HTML</code> element, the <code>&lt;body&gt;<!--formatted--></code> tag wraps around all other <code>HTML</code> code. Therefore, by having classes on <code>&lt;body&gt;<!--formatted--></code> allows us to target any other element on the page, specific to the current <code>&lt;body&gt;<!--formatted--></code> class.</p>
<p>It may just be easier to explain by example.</p>
<p>Let&#8217;s say that I have a <code>&lt;div id="content"&gt;<!--formatted--></code> that renders on the left, and a <code>&lt;div id="sidebar"&gt;<!--formatted--></code> that renders on the right, both within a 960px wide <code>&lt;div id="container"&gt;<!--formatted--></code>. The content div is 600px wide, and the sidebar is 360px wide. But, when viewing a single post (as opposed to the homepage), I have told my theme to <em>not</em> display the sidebar. Now, we&#8217;re left with just a content column. Unfortunately, our container is 960px wide, and our content div is only 600px wide.</p>
<p>We&#8217;re stuck with a large blank space where the sidebar used to be. How do we fix that? With a <code>&lt;body&gt;<!--formatted--></code> class, it&#8217;s easy. We just target the <code>&lt;div id="content"&gt;<!--formatted--></code> when it is being displayed on a single post. It would looks something like this in <code>CSS</code>:</p>
<pre>.single #content {
	width: 960px;
}</pre>
<p>By doing this, we&#8217;re saying &#8220;if we&#8217;re viewing a single post, make the <code>#content</code> div 960px wide&#8221;.</p>
<p><strong>We&#8217;re basically adding a simple conditional system to <code>CSS</code>.</strong></p>
<h2>Adding Classes to body_class()</h2>
<p>In some cases, you will want to add your own class(es) to the list of classes that <code>body_class()</code> generates. If you find yourself in this situation, here are a couple of ways to do it.</p>
<p>The first, and easiest, way to add a class to the list of classes the function generates is to <strong>simply pass your custom class as a function argument to <code>body_class()</code></strong>. Here&#8217;s how you would do that:</p>
<pre>
&lt;body &lt;?php body_class('my-class'); ?&gt;&gt;
</pre>
<p>By doing this, we&#8217;ve now told the <code>body_class()</code> function to add &#8216;my-class&#8217; to the list of classes to output.</p>
<p><strong>The second, and harder (but more flexible) way is to use take advantage of a WordPress Filter to add new body class(es).</strong> In this case, we&#8217;ll be using the <code>body_class</code> filter provided in the <code>get_body_class()</code> function. If you don&#8217;t understand how filters work, I&#8217;ll do a post on that in the future. Until then, see if you can just follow along. You may pick it up pretty easily.</p>
<p>Here&#8217;s an example of how to add a class by using a filter:</p>
<pre>
&lt;?php
add_filter('body_class','my_body_classes');
function my_body_classes($classes, $class) {
	// add 'my-class' to the $classes array
	$classes[] = 'my-class';
	// return the $classes array
	return $classes;
}
?&gt;
</pre>
<p>By using this method, we allow ourselves to use <a href="http://codex.wordpress.org/Conditional_Tags">conditionals</a>, and other cool things, that we would not be able to use with the first method.</p>
<h2>Further Reading</h2>
<p>If you want to know more about the <code>body_class()</code> function, here are a few resources I&#8217;d recommend:</p>
<ul>
<li>Study the <a href="http://xref.yoast.com/trunk/wp-includes/post-template.php.source.html#l360">source code</a> for the get_body_class() function.</li>
<li>Check out <a href="http://op111.net/71">Demetris&#8217;s thoughts</a> on the new WordPress 2.8 features.</li>
<li>Browse the <a href="http://codex.wordpress.org/Version_2.8">WordPress 2.8 Overview</a> at the Codex.</li>
<li>Take a look at the <a href="http://core.trac.wordpress.org/ticket/7939">trac ticket</a> that got the ball rolling.</li>
<li>WPEngineer.com has <a href="http://wpengineer.com/wordpress-28-body_class-automatic_feed_links/">a good summary</a> of the body_class() function.</li>
<li>PerishablePress has <a href="http://perishablepress.com/press/2009/05/26/dynamic-body-class-id-php-wordpress/">some good stuff</a> on body_class() usage.</li>
</ul>


<h3>Related posts:</h3><ol><li><a href='http://www.nathanrice.net/blog/browser-detection-and-the-body_class-function/' rel='bookmark' title='Permanent Link: Browser Detection and the body_class() Function'>Browser Detection and the body_class() Function</a></li><li><a href='http://www.nathanrice.net/blog/creating-a-blog-page-with-paging/' rel='bookmark' title='Permanent Link: Creating a &#8220;Blog Page&#8221; &#8212; With Paging'>Creating a &#8220;Blog Page&#8221; &#8212; With Paging</a></li><li><a href='http://www.nathanrice.net/blog/wordpress-single-post-templates/' rel='bookmark' title='Permanent Link: WordPress Single Post Templates'>WordPress Single Post Templates</a></li><li><a href='http://www.nathanrice.net/blog/definitive-sticky-posts-guide-for-wordpress-27/' rel='bookmark' title='Permanent Link: Definitive Sticky Posts Guide for WordPress 2.7'>Definitive Sticky Posts Guide for WordPress 2.7</a></li><li><a href='http://www.nathanrice.net/blog/ultimate-guide-to-wordpress-seo-meta-descriptions/' rel='bookmark' title='Permanent Link: Ultimate Guide to WordPress SEO &#8211; META Descriptions'>Ultimate Guide to WordPress SEO &#8211; META Descriptions</a></li></ol><img src="http://feeds.feedburner.com/~r/nathanricenet/~4/302ZOl4ZQv0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.nathanrice.net/blog/wordpress-2-8-and-the-body_class-function/feed/</wfw:commentRss>
		<slash:comments>53</slash:comments>
		<feedburner:origLink>http://www.nathanrice.net/blog/wordpress-2-8-and-the-body_class-function/</feedburner:origLink></item>
		<item>
		<title>New Design On the Way</title>
		<link>http://feedproxy.google.com/~r/nathanricenet/~3/SPLZvOzkAGo/</link>
		<comments>http://www.nathanrice.net/blog/new-design-on-the-way/#comments</comments>
		<pubDate>Thu, 28 May 2009 14:32:02 +0000</pubDate>
		<dc:creator>Nathan Rice</dc:creator>
				<category><![CDATA[Asides]]></category>
		<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.nathanrice.net/?p=449</guid>
		<description><![CDATA[A new design for NathanRice.net is on the way soon. You can click here to see a preview of the new design. Feel free to give me your thoughts on the new design in the comments or on twitter (@nathanrice).


Related posts:Good Design Starts With the HomepageNew Design Launches TodayPremium or Freemium?ElegantBlue 1.1: Bug FixesWhere I&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<p>A new design for NathanRice.net is on the way soon. <a href="http://tr.im/mDbU">You can click here</a> to see a preview of the new design. Feel free to give me your thoughts on the new design in the comments or on twitter (<a href="http://twitter.com/nathanrice">@nathanrice</a>).</p>


<h3>Related posts:</h3><ol><li><a href='http://www.nathanrice.net/blog/good-design-starts-with-the-homepage/' rel='bookmark' title='Permanent Link: Good Design Starts With the Homepage'>Good Design Starts With the Homepage</a></li><li><a href='http://www.nathanrice.net/blog/new-design-launches-today/' rel='bookmark' title='Permanent Link: New Design Launches Today'>New Design Launches Today</a></li><li><a href='http://www.nathanrice.net/blog/premium-or-freemium/' rel='bookmark' title='Permanent Link: Premium or Freemium?'>Premium or Freemium?</a></li><li><a href='http://www.nathanrice.net/blog/elegantblue-11-bug-fixes/' rel='bookmark' title='Permanent Link: ElegantBlue 1.1: Bug Fixes'>ElegantBlue 1.1: Bug Fixes</a></li><li><a href='http://www.nathanrice.net/blog/where-ive-been-and-whats-next/' rel='bookmark' title='Permanent Link: Where I&#8217;ve been, and What&#8217;s Next'>Where I&#8217;ve been, and What&#8217;s Next</a></li></ol><img src="http://feeds.feedburner.com/~r/nathanricenet/~4/SPLZvOzkAGo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.nathanrice.net/blog/new-design-on-the-way/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.nathanrice.net/blog/new-design-on-the-way/</feedburner:origLink></item>
		<item>
		<title>3 New Plugins by Yours Truly</title>
		<link>http://feedproxy.google.com/~r/nathanricenet/~3/DSFLjtbvceE/</link>
		<comments>http://www.nathanrice.net/blog/3-new-plugins-by-yours-truly/#comments</comments>
		<pubDate>Thu, 19 Feb 2009 05:43:52 +0000</pubDate>
		<dc:creator>Nathan Rice</dc:creator>
				<category><![CDATA[Asides]]></category>
		<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.nathanrice.net/?p=409</guid>
		<description><![CDATA[That title couldn&#8217;t be worse for my WordPress SEO goals, but it&#8217;s late and I don&#8217;t care!
Over the last several weeks, I&#8217;ve been a busy working on a few little gems that you might find useful.  I certainly do.
I&#8217;ve created a new WordPress Plugins page here as a placeholder. Eventually, each plugin will have its [...]]]></description>
			<content:encoded><![CDATA[<p>That title couldn&#8217;t be worse for my <a title="WordPress SEO" href="http://www.nathanrice.net/blog/wordpress-seo-the-ultimate-guide-to-wordpress-theme-search-engine-optimization/">WordPress SEO</a> goals, but it&#8217;s late and I don&#8217;t care!</p>
<p>Over the last several weeks, I&#8217;ve been a busy working on a few little gems that you might find useful.  I certainly do.</p>
<p>I&#8217;ve created a new <a title="WordPress Plugins" href="http://www.nathanrice.net/plugins/">WordPress Plugins</a> page here as a placeholder. Eventually, each plugin will have its own page.  Check them out and let me know what you think.</p>


<h3>Related posts:</h3><ol><li><a href='http://www.nathanrice.net/blog/7-must-have-plugins/' rel='bookmark' title='Permanent Link: 7 Must-Have Plugins'>7 Must-Have Plugins</a></li><li><a href='http://www.nathanrice.net/blog/respect-requires-altruism/' rel='bookmark' title='Permanent Link: Respect Requires Altruism'>Respect Requires Altruism</a></li><li><a href='http://www.nathanrice.net/blog/wordpress-single-post-templates/' rel='bookmark' title='Permanent Link: WordPress Single Post Templates'>WordPress Single Post Templates</a></li><li><a href='http://www.nathanrice.net/blog/ultimate-guide-to-wordpress-seo-google-sitemaps/' rel='bookmark' title='Permanent Link: Ultimate Guide to WordPress SEO &#8211; Google Sitemaps'>Ultimate Guide to WordPress SEO &#8211; Google Sitemaps</a></li><li><a href='http://www.nathanrice.net/blog/3-ways-to-optimize-your-blog-homepage/' rel='bookmark' title='Permanent Link: 3 Ways to Optimize Your Blog Homepage'>3 Ways to Optimize Your Blog Homepage</a></li></ol><img src="http://feeds.feedburner.com/~r/nathanricenet/~4/DSFLjtbvceE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.nathanrice.net/blog/3-new-plugins-by-yours-truly/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		<feedburner:origLink>http://www.nathanrice.net/blog/3-new-plugins-by-yours-truly/</feedburner:origLink></item>
		<item>
		<title>Where I’ve been, and What’s Next</title>
		<link>http://feedproxy.google.com/~r/nathanricenet/~3/tQWSeuBYdVI/</link>
		<comments>http://www.nathanrice.net/blog/where-ive-been-and-whats-next/#comments</comments>
		<pubDate>Fri, 30 Jan 2009 12:00:48 +0000</pubDate>
		<dc:creator>Nathan Rice</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.nathanrice.net/?p=400</guid>
		<description><![CDATA[In case you were wondering, here's what I'm up to, and what's coming up on the blog.]]></description>
			<content:encoded><![CDATA[<p>So, yes, I admit it.  I&#8217;ve been mostly silent here on the blog for a while.  But I promise, it&#8217;s going to change soon. Trust me.</p>
<p>In the mean time, I wanted to let everyone know what&#8217;s going on, and what&#8217;s coming up.<span id="more-400"></span></p>
<h2>A Redesign</h2>
<p>A brand new, typographically delicious elegant eye-candy is on the way.  I&#8217;ve commissioned the services of the very talented <a title="Blankenship" href="http://joshuablankenship.com/blog/">Blankenship</a> to give me a design I can be proud of, and he won&#8217;t disappoint.</p>
<p>The new design will be content-focused.  <a title="WordPress Tutorials" href="http://www.nathanrice.net/category/blog/tutorials/">Tutorials</a> will be easier to read, and therefore, I&#8217;ll be writing more of them.  It&#8217;s pretty much what I do best.  And when I have a design that can handle all the neat-o tutorials I have waiting in the hopper, expect to see a flood.  <strong>You WILL understand WordPress better by being subscribed to this blog, I can assure you.</strong></p>
<h2>A Cool Plugin</h2>
<p>Currently in its beta-testing stage, this new plugin will give WordPress theme authors more flexibility than you can imagine.  Here&#8217;s what <a href="http://ptahdunbar.com/">Ptah Dunbar</a> says about it:</p>
<blockquote><p>WTF Nathan, this plugin is AWESOME! &#8230;<br />
That&#8217;s a brilliant idea &#8230; Do you know how much flexibility you&#8217;ve just given to theme authors/bloggers?! I would of never thought of this.</p></blockquote>
<p>I can&#8217;t reveal what the plugin is just yet.  But believe me, if you&#8217;re a WordPress theme author, you will LOVE it, because it will make your themes SO much more flexible.  And on top of it all, it&#8217;s modular, so you can include it in your theme, so users don&#8217;t have to install the plugin. SWEET!</p>
<h2>A Plugin/e-Book Combo</h2>
<p>A couple of months ago, this blog landed on the map because of one of the most useful, readable, understandable lesson in <a title="WordPress SEO" href="http://www.nathanrice.net/blog/wordpress-seo-the-ultimate-guide-to-wordpress-theme-search-engine-optimization/">WordPress SEO</a> you&#8217;ve EVER seen.  Most of you are probably subscribed to this blog BECAUSE of that series of posts.</p>
<p><strong>Well, I&#8217;m about to make your life even easier.</strong></p>
<p>I&#8217;m putting together an e-Book that has all the information in the WordPress SEO series &#8230; AND MORE!!! Some of the content of that series needs to be updated and clarified, and now you&#8217;ll be able to get the content in the very handy e-Book format.</p>
<p>PLUS &#8230; I&#8217;ll throw in (at no extra charge) a ROCKIN&#8217; plugin that will handle a good portion of the SEO heavy lifting that you either don&#8217;t want to do, or don&#8217;t know how to do.  This plugin will take your theme to the next level, and will definitely get your websites higher rankings from our Google Overlords.</p>
<p>And, an entire chapter of the e-Book will be dedicated to showing you how to use the plugin.  <strong>With this combo, you will literally have the SEO 1-2 punch that will get you where you want to go.</strong> Go ahead &#8230; say hello to the increased traffic.</p>
<h2>And Yes, Some Theme Love</h2>
<p>Yeah, <a title="Free WordPress Themes" href="http://www.elevatethemes.com/">Elevate</a> is still crunching.  But the good news is that <a href="http://www.elevatethemes.com/themes/skyye-news-theme/">Skyye News Theme</a> is done, and available for download for free.  Plus, I&#8217;ve gone ahead and opened up the <a href="http://www.elevatethemes.com/members/support/">support forums</a>, AT NO CHARGE.  Yep, click the <a href="http://www.elevatethemes.com/members/signup.php?product_id=1">signup button</a> to get your account.  <strong>IT&#8217;S FREE</strong>.</p>
<p>The Instructional Package will be available for Skyye News soon, as will the new themes.  Oh yeah, I know you like that.</p>
<p>So, you picked a good time to be a subscriber.  This is definitely the place you want to be over the next couple of months.  Good to have you aboard.</p>
<p>Oh, by the way, if you haven&#8217;t done so already, you owe it to yourself to jump in the conversation with me over on Twitter (<a href="http://twitter.com/nathanrice">@nathanrice</a>).  I love connecting with people there, and that&#8217;s where you&#8217;ll find me all day.  Believe me, I&#8217;m worth following.</p>


<h3>Related posts:</h3><ol><li><a href='http://www.nathanrice.net/blog/know-your-audience-the-browser-war/' rel='bookmark' title='Permanent Link: Know Your Audience: The Browser War'>Know Your Audience: The Browser War</a></li><li><a href='http://www.nathanrice.net/blog/10-sites-that-produce-quality-wordpress-content/' rel='bookmark' title='Permanent Link: 10 Sites That Produce Quality WordPress Content'>10 Sites That Produce Quality WordPress Content</a></li><li><a href='http://www.nathanrice.net/blog/welcome-to-nathanricenet/' rel='bookmark' title='Permanent Link: Welcome to NathanRice.net'>Welcome to NathanRice.net</a></li><li><a href='http://www.nathanrice.net/blog/ultimate-guide-to-wordpress-seo-google-sitemaps/' rel='bookmark' title='Permanent Link: Ultimate Guide to WordPress SEO &#8211; Google Sitemaps'>Ultimate Guide to WordPress SEO &#8211; Google Sitemaps</a></li><li><a href='http://www.nathanrice.net/blog/proximity-gets-some-new-features/' rel='bookmark' title='Permanent Link: Proximity Gets Some New Features'>Proximity Gets Some New Features</a></li></ol><img src="http://feeds.feedburner.com/~r/nathanricenet/~4/tQWSeuBYdVI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.nathanrice.net/blog/where-ive-been-and-whats-next/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.nathanrice.net/blog/where-ive-been-and-whats-next/</feedburner:origLink></item>
		<item>
		<title>iThemes Cyber Monday – 25% off EVERYTHING</title>
		<link>http://feedproxy.google.com/~r/nathanricenet/~3/FwympfkcwZU/</link>
		<comments>http://www.nathanrice.net/blog/ithemes-cyber-monday-25-off-everything/#comments</comments>
		<pubDate>Mon, 01 Dec 2008 17:36:16 +0000</pubDate>
		<dc:creator>Nathan Rice</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Planet WordPress]]></category>
		<category><![CDATA[cyber monday]]></category>
		<category><![CDATA[ithemes]]></category>

		<guid isPermaLink="false">http://www.nathanrice.net/?p=393</guid>
		<description><![CDATA[The Monday following Black Friday has come to be know as Cyber Monday. Online retailers offer deep discounts on their products, and iThemes is no exception!
So if you&#8217;re in the mood for a high quality Premium WordPress Theme for 25% off, head over to iThemes and go nuts.  That&#8217;s 25% off your entire order, no [...]]]></description>
			<content:encoded><![CDATA[<p>The Monday following Black Friday has come to be know as Cyber Monday. Online retailers offer deep discounts on their products, and <a href="http://bit.ly/OH63">iThemes</a> is no exception!</p>
<p>So if you&#8217;re in the mood for a high quality Premium WordPress Theme for 25% off, <a href="http://bit.ly/OH63">head over to iThemes</a> and go nuts.  That&#8217;s 25% off your entire order, no limits &#8230; and yes, that even includes the Theme Club &#8230; a full <strong>$100 off</strong>!!!</p>
<p>Just use the coupon code <strong>CYBERMONDAY</strong> at checkout to receive the discount.</p>
<p>Act fast &#8230; the deal ends at 12am (midnight) tonight.</p>


<h3>Related posts:</h3><ol><li><a href='http://www.nathanrice.net/blog/ithemes-developers-package/' rel='bookmark' title='Permanent Link: iThemes Developers Package'>iThemes Developers Package</a></li><li><a href='http://www.nathanrice.net/blog/ithemes-wordpress-and-the-gpl/' rel='bookmark' title='Permanent Link: iThemes, WordPress, and the GPL'>iThemes, WordPress, and the GPL</a></li><li><a href='http://www.nathanrice.net/blog/free-installation-for-newspixel-this-week-only/' rel='bookmark' title='Permanent Link: Free Installation for NewsPixel &#8212; This Week Only!'>Free Installation for NewsPixel &#8212; This Week Only!</a></li><li><a href='http://www.nathanrice.net/blog/newspixel-a-newspaper-wordpress-theme-that-rocks/' rel='bookmark' title='Permanent Link: NewsPixel &#8211; A Newspaper WordPress Theme that Rocks!'>NewsPixel &#8211; A Newspaper WordPress Theme that Rocks!</a></li><li><a href='http://www.nathanrice.net/blog/digest/' rel='bookmark' title='Permanent Link: Digest'>Digest</a></li></ol><img src="http://feeds.feedburner.com/~r/nathanricenet/~4/FwympfkcwZU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.nathanrice.net/blog/ithemes-cyber-monday-25-off-everything/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.nathanrice.net/blog/ithemes-cyber-monday-25-off-everything/</feedburner:origLink></item>
		<item>
		<title>Definitive Sticky Posts Guide for WordPress 2.7</title>
		<link>http://feedproxy.google.com/~r/nathanricenet/~3/-WXi9u0-IK0/</link>
		<comments>http://www.nathanrice.net/blog/definitive-sticky-posts-guide-for-wordpress-27/#comments</comments>
		<pubDate>Tue, 11 Nov 2008 12:00:32 +0000</pubDate>
		<dc:creator>Nathan Rice</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Planet WordPress]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[WordPress Tips]]></category>
		<category><![CDATA[is_sticky]]></category>
		<category><![CDATA[post_class]]></category>
		<category><![CDATA[sticky post styling]]></category>
		<category><![CDATA[sticky posts]]></category>
		<category><![CDATA[wordpress 2.7]]></category>

		<guid isPermaLink="false">http://www.nathanrice.net/?p=201</guid>
		<description><![CDATA[WordPress 2.7 sticky posts are more complex than we thought. This post simplifies it.]]></description>
			<content:encoded><![CDATA[<p>As the blogosphere is abuzz about all the cool new features in WordPress 2.7, I&#8217;ve seen very few (if any) good posts on the new <a href="http://codex.wordpress.org/Version_2.7#Sticky_Posts">Sticky Posts feature</a> that will allow you to take any story, or stories, you&#8217;ve published and place them at the top of your homepage without editing the timestamp.  <strong>This new feature will allow you to take posts that you&#8217;re especially proud of and display them for all the world to see for as long as you want</strong>.</p>
<p>But for many theme and plugin developers, and even users who may want to do a little DIY theme hacking, there is very little documentation for getting the feature set up to do the things you want it to.  That&#8217;s where this guide comes in.<span id="more-201"></span></p>
<h2>Turing a Post into a Sticky Post</h2>
<p><img class="alignnone size-full wp-image-202" style="float:right; margin: 0 0 5px 5px;" title="picture-1" src="http://www.nathanrice.net/wp-content/uploads/2008/11/picture-1.png" alt="picture-1" width="289" height="207" />In the 2.7 Post edit panel, over in the <a href="http://www.nathanrice.net/blog/mark-jaquith-explains-the-27-publish-module/">publish module</a>, you&#8217;ll notice a little checkbox.  When you check this box and publish the post (or save an already published post), that post will then be pulled to the top of your homepage.</p>
<p>Also, it is worth noting that a post can be made &#8220;sticky&#8221; using the &#8220;Quick Edit&#8221; panel as well.  In WordPress 2.7, simple click the Posts -&gt; Edit link, then click the &#8220;Quick Edit&#8221; link.</p>
<p>This will bring up a panel that lets you edit common features of a post like its categories, tags, title, slug, date, author, etc.  But it also allows you to change whether or not a post is a sticky post.</p>
<p><a href="http://www.nathanrice.net/wp-content/uploads/2008/11/picture-2.png"><img class="alignnone size-full wp-image-203" title="picture-2" src="http://www.nathanrice.net/wp-content/uploads/2008/11/picture-2.png" alt="picture-2" width="492" height="115" /></a></p>
<p><strong>This is especially handy when you need to &#8220;unsticky&#8221; a post in order to let another post take it&#8217;s place at the top of the homepage</strong>.  Imagine how tedious it would be to have to pull up the full Edit Post panel just to &#8220;unsticky&#8221; a post.  It would get very annoying, so I&#8217;m glad to see the developers opted to include this option in the Quick Edit panel as well.</p>
<h2>Styling a Sticky Post</h2>
<p><strong>If you&#8217;re like me, you probably want to have a way to let your readers know that, although the post is at the top of your homepage, it may not necessarily be the latest post you&#8217;ve published.</strong> Luckily, WordPress 2.7 introduces the new <code>post_class()</code> template tag that will give a class of &#8220;sticky&#8221; to any post that has been made into a sticky post.  Here&#8217;s how you would use it.</p>
<p><em>(By the way, it would be worth your while to take a look at the <a href="http://codex.wordpress.org/Template_Tags/post_class">Codex page for post_class</a> when it becomes available. The function can really give you some cool flexibility in how different posts are styled. I suppose that&#8217;s another post for another day.)</em></p>
<p>If you&#8217;re familiar with the loop, you&#8217;ll probably recognize the following code (or some variation of it):</p>
<pre>&lt;?php if(have_posts()) : while(have_posts()) : the_post(); ?&gt;
&lt;h3&gt;&lt;a href="&lt;?php the_permalink(); ?&gt;"&gt;&lt;?php the_title(); ?&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;?php the_content(); ?&gt;
&lt;?php endwhile; endif; ?&gt;</pre>
<p>In order to use the new <code>post_class()</code> template tag, just be sure to wrap the content of each post that the loop outputs in a new div.  The code would looks something like this:</p>
<pre>&lt;?php if(have_posts()) : while(have_posts()) : the_post(); ?&gt;
&lt;div &lt;?php post_class(); ?&gt;&gt;
&lt;h3&gt;&lt;a href="&lt;?php the_permalink(); ?&gt;"&gt;&lt;?php the_title(); ?&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;?php the_content(); ?&gt;
&lt;/div&gt;
&lt;?php endwhile; endif; ?&gt;</pre>
<p>Depending on what type of post it is, it will output different kinds of stuff.  For instance, if you view the source code for my homepage, you&#8217;ll see my posts wrapped in these divs already.  For the post <a href="http://www.nathanrice.net/blog/community-self-respect-and-free-wordpress-themes/">Community, Self-Respect, and Free WordPress Themes</a>, the div class generator created this:</p>
<pre>&lt;div class="post hentry category-blog category-general category-planet-wordpress category-wordpress-news tag-elevate-themes tag-free-wordpress-theme tag-free-wordpress-themes tag-wordpress"&gt;</pre>
<p>Now, if that post had been marked &#8220;sticky&#8221;, then you would have seen the word &#8220;sticky&#8221; show up in that list too.  You can use any of those classes to style a post differently, but in this case, we&#8217;re just looking to differentiate the sticky posts. By adding a new class declaration in our <code>CSS</code> file, we can make a sticky post look any way we want:</p>
<pre>.sticky {
    background: white;
    border: 2px solid black;
}</pre>
<p>The possibilities are really endless &#8212; it&#8217;s all up to you!</p>
<h2>Sticky Styling in Other Templates</h2>
<p>As far as I know, the sticky feature does not actually affect any other templates besides the homepage post listing.  The only possible exception would be the search results (see the <a href="http://trac.wordpress.org/ticket/7457">Trac ticket</a> for more information).</p>
<p>However, there is one caveat as pointed out by <a href="http://wpengineer.com/strange-things-with-sticky-posts/">Michael at WPEngineer.com</a> &#8212; sticky posts don&#8217;t simply get &#8220;pulled to the front of the line&#8221;.  In fact, <strong>if you&#8217;re browsing through someone&#8217;s archives, and you are using the <code>post_class()</code> template tag, your sticky posts will get that sticky styling, just as though they were at the top of the homepage</strong>.</p>
<p>To remedy this, you&#8217;ll want to figure out a way to only apply that special sticky style to sticky posts that are on the homepage.  That means we&#8217;ll want to exclude things like category and date archives, page 2 of the blog homepage (<a href="http://www.nathanrice.net/page/2/">example</a>), and any other templates that you might use (tags, single posts, etc.).</p>
<p>In order to accomplish this, you&#8217;ll need to figure out a way to add a class or ID to the body tag of your theme.  <a title="Body Class and ID" href="http://www.darrenhoyt.com/2007/12/23/use-body-idclass-to-control-wordpress-page-elements/">Darren Hoyt</a> has a good post on how to do that is pretty good, but I&#8217;ll try to write up a post later that will teach you how to mimic the post_class function for your body tag.</p>
<p>So, once your body has a class or ID, just modify your <code>CSS</code> a little to reflect your desire for the sticky style to only be applied to the homepage:</p>
<pre>#home .sticky {
    background: white;
    border: 2px solid black;
}</pre>
<p>Easy enough?</p>
<h2>is_sticky() Conditional Tag</h2>
<p>Along with the ability to use the <code>post_class()</code> to identifiy sticky posts, you can also use the <code>is_sticky()</code> conditional tag to check to see if a post is sticky or not.  Here&#8217;s a practical example (to be used within the loop):</p>
<pre>&lt;?php
if (is_sticky()) echo 'This is a sticky post!';
?&gt;</pre>
<p>The <code>is_sticky()</code> conditional tag returns a Boolean value of <code>TRUE</code> or <code>FALSE</code> depending on whether or not the post is a sticky post.  Use your imagination to determine the different applications this tag can help you achieve.</p>
<h2>A Custom Loop to Return All Sticky Posts</h2>
<p>If you&#8217;re a hardcore theme developer and want to use a custom loop to return only posts that have been marked as sticky, you can use this very handy code provided by <a href="http://ottodestruct.com/blog/">Otto</a> at the <a href="http://wordpress.org/support/topic/208037?replies=5">Support forums</a>:</p>
<pre>query_posts(array('post__in'=&gt;get_option('sticky_posts')));</pre>
<p>This code goes before the loop. It qualifies the loop by telling it to only return posts that have been marked &#8220;sticky&#8221;.  You can use all the other parameters of the <code>query_posts()</code> loop qualifier as well, but that <code>post__in</code> part is the part that actually tells the loop to only return the sticky posts.</p>
<h2>A Custom Loop to Ignore Sticky Posts</h2>
<p>Generally speaking, sticky posts will show up at the top of ever single loop you use on your homepage.  So <strong>for complex themes that use multiple loops on the homepage to return different data, each and every one of those loops will return the same sticky post(s)</strong>.  And it seems like even loop qualifiers like the <code>query_posts()</code> argument <code>post__not_in</code> don&#8217;t work on excluding posts.  No matter what you do, those sticky posts will be at the top of all your loops.</p>
<p>Thankfully, once again <a href="http://ottodestruct.com/blog/">Otto</a> comes to the rescue with some more handy code.</p>
<p>If you want your loop to ignore the sticky status of posts, just use this code before the loop:</p>
<pre>query_posts('caller_get_posts=1');</pre>
<p>Again, this parameter can be used with any of the other arguments for <code>query_posts()</code>.  <strong>And this code doesn&#8217;t simply exclude posts marked sticky &#8230; it actually ignores the sticky status altogether</strong>.  So if a person marks a post as sticky, by using this <code>query_posts()</code> parameter, you can have your loop act normally, not pulling that post to the top unless it is the latest post published (depending on the other query_posts parameters).</p>
<h2>Getting Rid of Stickies Completely</h2>
<p>Finally, if your theme doesn&#8217;t take advantage of the sticky option at all, and you just want to prohibit users from making a post sticky in the first place, you can just wipe out the field in the options table that holds all the sticky post IDs by placing this code in your theme&#8217;s functions.php file between &lt;?php ?&gt; tags: [HT: <a href="http://wpengineer.com/strange-things-with-sticky-posts/">WPEngineer.com</a>]</p>
<pre>update_option('sticky_posts', array());</pre>
<p>This empties the field and get&#8217;s rid of all sticky post IDs that the user may have saved.  This could easily save you the trouble of having to support users that insist on checking the sticky checkbox despite your warnings.  It&#8217;s just a way for you to nip the problem in the bud.</p>
<p><em>However, use it with caution.  Users don&#8217;t normally like it when you remove their data.</em></p>
<p>Well, that about wraps it up.  <strong>Everything you need to know about the Sticky Post feature in WordPress 2.7</strong>. If you have any other tips or questions, please feel free to let me know in the comments below.  I&#8217;d love to hear your thoughts about this new feature.</p>


<h3>Related posts:</h3><ol><li><a href='http://www.nathanrice.net/blog/ultimate-guide-to-wordpress-seo-keyword-rich-permalinks/' rel='bookmark' title='Permanent Link: Ultimate Guide to WordPress SEO &#8211; Keyword-Rich Permalinks'>Ultimate Guide to WordPress SEO &#8211; Keyword-Rich Permalinks</a></li><li><a href='http://www.nathanrice.net/blog/ultimate-guide-to-wordpress-seo-meta-keywords/' rel='bookmark' title='Permanent Link: Ultimate Guide to WordPress SEO &#8211; META Keywords'>Ultimate Guide to WordPress SEO &#8211; META Keywords</a></li><li><a href='http://www.nathanrice.net/blog/ultimate-guide-to-wordpress-seo-meta-descriptions/' rel='bookmark' title='Permanent Link: Ultimate Guide to WordPress SEO &#8211; META Descriptions'>Ultimate Guide to WordPress SEO &#8211; META Descriptions</a></li><li><a href='http://www.nathanrice.net/blog/creating-a-blog-page-with-paging/' rel='bookmark' title='Permanent Link: Creating a &#8220;Blog Page&#8221; &#8212; With Paging'>Creating a &#8220;Blog Page&#8221; &#8212; With Paging</a></li><li><a href='http://www.nathanrice.net/blog/wordpress-single-post-templates/' rel='bookmark' title='Permanent Link: WordPress Single Post Templates'>WordPress Single Post Templates</a></li></ol><img src="http://feeds.feedburner.com/~r/nathanricenet/~4/-WXi9u0-IK0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.nathanrice.net/blog/definitive-sticky-posts-guide-for-wordpress-27/feed/</wfw:commentRss>
		<slash:comments>85</slash:comments>
		<feedburner:origLink>http://www.nathanrice.net/blog/definitive-sticky-posts-guide-for-wordpress-27/</feedburner:origLink></item>
		<item>
		<title>Is My Theme 2.7 Compatible?</title>
		<link>http://feedproxy.google.com/~r/nathanricenet/~3/YGSjMlE1So0/</link>
		<comments>http://www.nathanrice.net/blog/is-my-theme-27-compatible/#comments</comments>
		<pubDate>Mon, 03 Nov 2008 13:00:35 +0000</pubDate>
		<dc:creator>Nathan Rice</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Planet WordPress]]></category>
		<category><![CDATA[WordPress News]]></category>
		<category><![CDATA[compatibility]]></category>
		<category><![CDATA[Themes]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress 2.7]]></category>

		<guid isPermaLink="false">http://www.nathanrice.net/?p=194</guid>
		<description><![CDATA[Will the upcoming release of WordPress 2.7 break your theme?  Take a look to find the answer to the question that no one has quite answered yet.]]></description>
			<content:encoded><![CDATA[<p>Let me go ahead and answer the question that a LOT of people are going to be asking over the next several weeks as the release of WordPress 2.7 draws closer.  Yes. Your theme, more than likely, will be compatible with WordPress 2.7.</p>
<p>That is to say, it won&#8217;t break under 2.7.  However, this latest version of WordPress does add a good many NEW features to themes that, unless properly accounted for, your theme probably won&#8217;t be taking advantage of immediately.<span id="more-194"></span></p>
<p>For instance, threaded comments.  Even if you turn on threaded comments in your new 2.7 Admin settings, unless your theme is using the new <a href="http://wpdevel.wordpress.com/2008/09/11/take-one-of-wp_list_comments-with-thre/">wp_list_comments()</a> function in its comments.php file, you won&#8217;t see any threaded comments.  A minor detail, but it is worth noting.</p>
<p>So, while 2.7 will most likely NOT break your theme, you should also keep in mind that it probably won&#8217;t be take advantage of the newest 2.7 theme features &#8212; at least not at first.  Check back with your theme&#8217;s developer to see if they have plan for adding the new features into your theme in the future.</p>


<h3>Related posts:</h3><ol><li><a href='http://www.nathanrice.net/blog/premium-wordpress-theme-proximity-news-theme/' rel='bookmark' title='Permanent Link: Premium WordPress Theme &#8211; Proximity News Theme'>Premium WordPress Theme &#8211; Proximity News Theme</a></li><li><a href='http://www.nathanrice.net/blog/deepblue-theme-released/' rel='bookmark' title='Permanent Link: DeepBlue Theme Released!'>DeepBlue Theme Released!</a></li><li><a href='http://www.nathanrice.net/blog/newspixel-a-newspaper-wordpress-theme-that-rocks/' rel='bookmark' title='Permanent Link: NewsPixel &#8211; A Newspaper WordPress Theme that Rocks!'>NewsPixel &#8211; A Newspaper WordPress Theme that Rocks!</a></li><li><a href='http://www.nathanrice.net/themes/elegantblue/' rel='bookmark' title='Permanent Link: ElegantBlue Theme Released!'>ElegantBlue Theme Released!</a></li><li><a href='http://www.nathanrice.net/blog/7-must-have-plugins/' rel='bookmark' title='Permanent Link: 7 Must-Have Plugins'>7 Must-Have Plugins</a></li></ol><img src="http://feeds.feedburner.com/~r/nathanricenet/~4/YGSjMlE1So0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.nathanrice.net/blog/is-my-theme-27-compatible/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		<feedburner:origLink>http://www.nathanrice.net/blog/is-my-theme-27-compatible/</feedburner:origLink></item>
		<item>
		<title>Mark Jaquith Explains the 2.7 Publish Module</title>
		<link>http://feedproxy.google.com/~r/nathanricenet/~3/ewvTfuZPSpI/</link>
		<comments>http://www.nathanrice.net/blog/mark-jaquith-explains-the-27-publish-module/#comments</comments>
		<pubDate>Mon, 03 Nov 2008 11:00:51 +0000</pubDate>
		<dc:creator>Nathan Rice</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Planet WordPress]]></category>
		<category><![CDATA[WordPress News]]></category>
		<category><![CDATA[mark jaquith]]></category>
		<category><![CDATA[publish module]]></category>
		<category><![CDATA[wordpress 2.7]]></category>

		<guid isPermaLink="false">http://www.nathanrice.net/?p=192</guid>
		<description><![CDATA[Mark Jaquith, lead WordPress developer, explains the new WordPress 2.7 publish module.]]></description>
			<content:encoded><![CDATA[<p>Over the weekend, I noticed that Mark Jaquith (of b5media and a lead core WordPress developer) has put together a VERY <a href="http://markjaquith.wordpress.com/2008/11/01/wordpress-27-feature-preview-publish-module/">handy video</a> that explains the logic and new functions of the Publish Module in the new WordPress 2.7 Post/Page Admin interface.</p>
<p><embed src="http://v.wordpress.com/7cpt9Htt" type="application/x-shockwave-flash" width="400" height="358" allowfullscreen="true"></embed></p>


<h3>Related posts:</h3><ol><li><a href='http://www.nathanrice.net/blog/how-to-redirect-a-page-using-custom-fields-in-wordpress/' rel='bookmark' title='Permanent Link: How To Redirect a Page Using Custom Fields in WordPress'>How To Redirect a Page Using Custom Fields in WordPress</a></li><li><a href='http://www.nathanrice.net/blog/definitive-sticky-posts-guide-for-wordpress-27/' rel='bookmark' title='Permanent Link: Definitive Sticky Posts Guide for WordPress 2.7'>Definitive Sticky Posts Guide for WordPress 2.7</a></li><li><a href='http://www.nathanrice.net/blog/wordpress-27-admin-sneek-peek/' rel='bookmark' title='Permanent Link: WordPress 2.7 Admin Sneek-Peek'>WordPress 2.7 Admin Sneek-Peek</a></li><li><a href='http://www.nathanrice.net/blog/proximity-news-theme-video-overview/' rel='bookmark' title='Permanent Link: Proximity News Theme Video Overview'>Proximity News Theme Video Overview</a></li><li><a href='http://www.nathanrice.net/blog/wordcamp-recap-part-1/' rel='bookmark' title='Permanent Link: WordCamp Recap, Part 1'>WordCamp Recap, Part 1</a></li></ol><img src="http://feeds.feedburner.com/~r/nathanricenet/~4/ewvTfuZPSpI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.nathanrice.net/blog/mark-jaquith-explains-the-27-publish-module/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://www.nathanrice.net/blog/mark-jaquith-explains-the-27-publish-module/</feedburner:origLink></item>
		<item>
		<title>Community, Self-Respect, and Free WordPress Themes</title>
		<link>http://feedproxy.google.com/~r/nathanricenet/~3/L0LRputpO74/</link>
		<comments>http://www.nathanrice.net/blog/community-self-respect-and-free-wordpress-themes/#comments</comments>
		<pubDate>Fri, 24 Oct 2008 11:00:20 +0000</pubDate>
		<dc:creator>Nathan Rice</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Planet WordPress]]></category>
		<category><![CDATA[WordPress News]]></category>
		<category><![CDATA[elevate themes]]></category>
		<category><![CDATA[free wordpress theme]]></category>
		<category><![CDATA[free wordpress themes]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.nathanrice.net/?p=181</guid>
		<description><![CDATA[A major announcement that could turn the free WordPress theme community on its head.  Finally, free premium-quality themes are back!]]></description>
			<content:encoded><![CDATA[<p class="alert">If you would like to know more about Elevate Themes, or would like to stay up to date with the launch schedule and FREE theme releases, please follow <a href="http://twitter.com/elevatethemes">@elevatethemes</a> on twitter</p>
<p>I&#8217;m convinced the worst feeling in the world is when you know you could have done something, yet you chose to do nothing. Over the last several months, it has become increasingly clear that my self-respect was waning, and <strong>an intense desire to do something special was overwhelming me</strong>.</p>
<p>You see, I&#8217;m grateful for the community that supports free software like <a href="http://wordpres.org/">WordPress</a>.  It&#8217;s that community that has given me the ability to work full-time from home, enjoy a comfortable lifestyle, and make some of the <a href="http://corymiller.com">best</a> <a href="http://www.briangardner.com/">friends</a> I&#8217;ve ever had. WordPress has dominated my life for the better part of two years, which is shocking conisdering WordPress is just blogging software.  The fact that it supports hundreds, if not thousands, of people is shocking as well.</p>
<p>And to that end, <strong>I&#8217;ve been feeling dissatisfied with ONLY releasing themes that cost money</strong>.  Don&#8217;t get me wrong, I&#8217;m no zealot.  I&#8217;m as capitalist as they come. But something has been bothering me lately &#8212; it just didn&#8217;t seem right that a free program, supported by a team of volunteers, was severely lacking in quality themes that were also available for free.  It seems wrong &#8212; <strong>you can get a great piece of blogging softare for free, but almost all the good themes cost money</strong>.<span id="more-181"></span></p>
<h2>Introducing My Newest Project</h2>
<p><a href="http://www.elevatethemes.com/">ElevateThemes.com</a> (not live) has been stewing for almost a year now.  I distinctly remember running the unnamed idea by some folks at <a href="http://www.nathanrice.net/blog/wordcamp-dallas-2008/">WordCamp Dallas</a> for feedback.  I purchased the <a href="http://whois.domaintools.com/elevatetheme.com">elevatetheme.com domain</a> back in January. I&#8217;ve wanted to launch this site for a VERY long time &#8212; and now, I&#8217;m finally about to do it.</p>
<p>ElevateThemes.com is a major contribution to the WordPress community.  Not only because of the themes that will be available, but because of the ideal that it stands for &#8212; <strong>quality and free don&#8217;t have to be mutually exclusive.  You CAN have both.</strong></p>
<h2>An Innovative Business Model</h2>
<p>Ever since I first conceived the idea, I&#8217;ve wanted to toy with the idea of a &#8220;freemium&#8221; model theme release site.  I wanted to figure out a way to give away free themes, yet build a sustainable income from the site as well.  <strong>In my opinion, unless an idea can indirectly monetize, eventually the project leader will burnout</strong>.</p>
<p>Elevate will be monetized in three ways:</p>
<ol>
<li>Premium Membership</li>
<li>Theme Sponsorship</li>
<li>Community Job Openings</li>
</ol>
<p><strong>The Premium Membership</strong> will cost $97 per year, and will provide you access to theme documentation, tutorials, and support support forum.  This way you, as the user of the theme, will only have to pay for the things you want or need.  If you get stuck during installation, you can become a member and download the theme documentation or watch the video tutorials.  And if that doesn&#8217;t help, I (along with others) will be there to help you in the forums.</p>
<p><strong>Theme Sponsorship</strong> is much different than the &#8220;theme sponsorship&#8221; of old.  No more <a href="http://weblogtoolscollection.com/archives/2007/07/10/no-sponsored-themes-on-weblogtoolscollection/">spammy links</a> in the footer.  That&#8217;s not cool.</p>
<p>I&#8217;m talking about <strong>a way for companies to directly target the user of the theme, without exposing the user&#8217;s readers to any ads at all.</strong> When you, as the user, download and install the theme, you&#8217;ll see a sponsor ad when you set up the theme options.  These sponsors are going to help drive the design and development of new themes, and the ads will only be exposed to the administrator of the site when he sets up the theme.</p>
<p>My estimates are that the ad will be exposed to tens of thousands of bloggers through Elevate.  That&#8217;s targeted traffic, and would be well worth it for any advertiser that has a product that would be beneficial to bloggers.</p>
<p><strong>Finally, a community Job Board</strong> that will allow users of the themes we release at Elevate to find customization help if/when they need it.  <strong>Premium Members will have access to post to the Job Board</strong> as much as they want, and non-members can purchase Job Board posting access for just $47.00 per year. Yep, an entire year for just $47.</p>
<h2>Launch Schedule</h2>
<p>I&#8217;m currently developing the first two themes for release, and I expect to launch within the next week. If you want to see a sneek-peek at the first theme, <a href="http://twitter.com/elevatethemes/status/977712330">check this tweet out</a>.</p>
<h2>Are You Leaving iThemes?</h2>
<p><strong>Absolutely Not!</strong> <a href="http://ithemes.com/">iThemes</a> is still the place to get some of the best WordPress themes available.  With a team like the one we have at iThemes, there&#8217;s no way I&#8217;d leave a place like that.  We have some of the best talent together in one company, and we plan on continuing to raise the bar when it comes to WordPress themes, and build a very successful business out of it.</p>
<p>ElevateThemes.com is just my way of contributing back to the community in my spare time by bringing premium-quality themes to the table for people who would otherwise not consider buying a theme.</p>
<h2>Are You Just Copying Revolution</h2>
<p>Abslutely not! I want to be very clear about this &#8230; Elevate was conceptualized long before Brian announced Revolution&#8217;s move to the GPL.  And while I applaude his move, <strong>it was in no way whatsoever the inspiration for Elevate</strong>.  Also, although his business model has yet to be completely uncovered, it seems that our models are both different in concept and execution.</p>
<p>I believe that our two projects will prove to be complimentary rather than competitive.</p>
<h2>Stay Updated</h2>
<p>The best way to stay updated with the progress and launch schedule is to follow <a href="http://twitter.com/elevatethemes">@elevatethemes</a> on twitter.  I&#8217;ll be releasing screenshots of themes, and maybe even posing pre-launch download links for some themes.</p>
<p><a href="http://twitter.com/elevatethemes">Click Here to follow @elevatethemes on twitter</a></p>
<h2>Finally</h2>
<p>I&#8217;m waiting on the comps to come back from the designer for the new look for NathanRice.net.  After I launch ElevateThemes.com, this blog is the next thing on my list for giving a facelift.  And once this blog is a lot prettier than she is now, <strong>you&#8217;re going to see a whole slew of new posts, news, and more of those awesome WordPress tutorials that everybody here loves so much!!!</strong></p>
<p>So I hope you&#8217;re ready for an action-packed month.  It&#8217;s going to be quite a ride, so you&#8217;ll definitely want to hold on tight!</p>
<p>To stay updated on all my projects, you&#8217;re going to want to <a href="http://feeds.feedburner.com/nathanricenet">Subscribe to my feed</a>, follow <a href="http://twitter.com/nathanrice">@nathanrice</a> on twitter, and follow <a href="http://twitter.com/elevatethemes">@elevatethemes</a> on twitter.</p>


<h3>Related posts:</h3><ol><li><a href='http://www.nathanrice.net/blog/pagerank-technorati-and-free-wordpress-themes/' rel='bookmark' title='Permanent Link: PageRank, Technorati, and Free WordPress Themes'>PageRank, Technorati, and Free WordPress Themes</a></li><li><a href='http://www.nathanrice.net/blog/premium-or-freemium/' rel='bookmark' title='Permanent Link: Premium or Freemium?'>Premium or Freemium?</a></li><li><a href='http://www.nathanrice.net/blog/respect-requires-altruism/' rel='bookmark' title='Permanent Link: Respect Requires Altruism'>Respect Requires Altruism</a></li><li><a href='http://www.nathanrice.net/blog/premium-wordpress-themes/' rel='bookmark' title='Permanent Link: Premium WordPress Themes?'>Premium WordPress Themes?</a></li><li><a href='http://www.nathanrice.net/blog/designers-wanted/' rel='bookmark' title='Permanent Link: Designers Wanted!'>Designers Wanted!</a></li></ol><img src="http://feeds.feedburner.com/~r/nathanricenet/~4/L0LRputpO74" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.nathanrice.net/blog/community-self-respect-and-free-wordpress-themes/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		<feedburner:origLink>http://www.nathanrice.net/blog/community-self-respect-and-free-wordpress-themes/</feedburner:origLink></item>
		<item>
		<title>WordPress 2.7 Admin Sneek-Peek</title>
		<link>http://feedproxy.google.com/~r/nathanricenet/~3/Lf8keiMRUm4/</link>
		<comments>http://www.nathanrice.net/blog/wordpress-27-admin-sneek-peek/#comments</comments>
		<pubDate>Fri, 17 Oct 2008 16:01:28 +0000</pubDate>
		<dc:creator>Nathan Rice</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Planet WordPress]]></category>
		<category><![CDATA[WordPress News]]></category>
		<category><![CDATA[dashboard design]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress 2.7]]></category>

		<guid isPermaLink="false">http://www.nathanrice.net/?p=177</guid>
		<description><![CDATA[Check out this sneek-peek at the new design for the WordPress 2.7 dashboard interface.]]></description>
			<content:encoded><![CDATA[<p><a href="http://codex.wordpress.org/Version_2.7">WordPress 2.7</a> is set to be released sometime in November. I&#8217;ve been following the development of the new 2.7 dashboard interface design through the <a href="http://svn.automattic.com/wordpress/trunk/">SVN repository</a> for 2.7 (bleeding), and this is what it&#8217;s showing as of 12:00 noon E.S.T.<span id="more-177"></span></p>
<p><a href="http://www.nathanrice.net/wp-content/uploads/2008/10/bleeding.png"><img class="alignnone size-medium wp-image-178" title="bleeding" src="http://www.nathanrice.net/wp-content/uploads/2008/10/bleeding-300x286.png" alt="" width="300" height="286" /></a></p>
<p>However, this morning, I noticed that several of the people I follow on twitter (<a href="http://twitter.com/nathanrice">@nathanrice</a>) were linking to this image over at <a href="http://ocaoimh.ie/">Donncha&#8217;s</a> Flickr:</p>
<p><a href="http://www.flickr.com/photos/donncha/2948804662/sizes/o/"><img class="alignnone" title="2.7 Sneek Peek" src="http://farm4.static.flickr.com/3281/2948804662_b466a47d17.jpg?v=0" alt="" width="500" height="377" /></a></p>
<p>Taking a closer look, and knowing that <a href="http://iammattthomas.com/">Matt Thomas</a> is the designer from the <a href="http://automattic.com/">Automattic</a> team, I figured out the URL being displayed in that browser window and discovered the full-res version of the comp for the new 2.7 dashboard interface:</p>
<p><a href="http://iammattthomas.com/27/"><img class="alignnone" title="Matt Thomas Comp" src="http://iammattthomas.com/27/1.png" alt="" width="478" height="602" /></a></p>
<p>And just minutes ago, I noticed that Jane from Automattic posted the <a href="http://wordpress.org/development/2008/10/the-visual-design-of-27/">new images</a> and details over at the <a href="http://wordpress.org/development/">WordPress development blog</a>.  Head on over there to see all the juicy details and drool over the beautiful new admin interfaces.  I don&#8217;t know about you, but I personally can&#8217;t wait until 2.7 is ready to ship.  As soon as it hits beta, I&#8217;ll be upgrading <a href="http://www.nathanrice.net">this blog</a>. :-)</p>


<h3>Related posts:</h3><ol><li><a href='http://www.nathanrice.net/blog/welcome-to-nathanricenet/' rel='bookmark' title='Permanent Link: Welcome to NathanRice.net'>Welcome to NathanRice.net</a></li><li><a href='http://www.nathanrice.net/blog/deepblue-theme-released/' rel='bookmark' title='Permanent Link: DeepBlue Theme Released!'>DeepBlue Theme Released!</a></li><li><a href='http://www.nathanrice.net/blog/make-money-get-busy-and-forget-to-innovate/' rel='bookmark' title='Permanent Link: Make Money, Get Busy, and Forget to Innovate'>Make Money, Get Busy, and Forget to Innovate</a></li><li><a href='http://www.nathanrice.net/blog/mark-jaquith-explains-the-27-publish-module/' rel='bookmark' title='Permanent Link: Mark Jaquith Explains the 2.7 Publish Module'>Mark Jaquith Explains the 2.7 Publish Module</a></li><li><a href='http://www.nathanrice.net/blog/final-word-on-wordpress-themes-and-the-gpl/' rel='bookmark' title='Permanent Link: Final Word on WordPress Themes and the GPL?'>Final Word on WordPress Themes and the GPL?</a></li></ol><img src="http://feeds.feedburner.com/~r/nathanricenet/~4/Lf8keiMRUm4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.nathanrice.net/blog/wordpress-27-admin-sneek-peek/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://www.nathanrice.net/blog/wordpress-27-admin-sneek-peek/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 1.112 seconds. --><!-- Cached page generated by WP-Super-Cache on 2009-07-10 08:43:50 --><!-- Compression = gzip -->
