<?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>WPShout.com</title>
	
	<link>http://wpshout.com</link>
	<description>WordPress Tips, Tricks and Hacks</description>
	<lastBuildDate>Mon, 08 Mar 2010 14:00:57 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Nometech" /><feedburner:info uri="nometech" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>Nometech</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Creating a Tumblog with WordPress</title>
		<link>http://feedproxy.google.com/~r/Nometech/~3/3SvgC68hVfc/</link>
		<comments>http://wpshout.com/creating-a-tumblog-with-wordpress/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 14:00:57 +0000</pubDate>
		<dc:creator>Alex Denning</dc:creator>
				<category><![CDATA[Theme Development]]></category>

		<guid isPermaLink="false">http://wpshout.com/?p=2316</guid>
		<description><![CDATA[For the recent (first) design of my personal site I added in some Tumblr style functionality. In this post we'll look at how WordPress can be used to create a Tumblog.
<p>You really should be <a href="http://twitter.com/alexdenning/">following me on Twitter</a>.</p><br/><a href="http://wpshift.com"><img src="http://images.wpshout.com/640-150-ani.gif" alt="WPShift" /></a>]]></description>
			<content:encoded><![CDATA[<p>For the recent (first) design of <a href="http://alexdenning.com">my personal site</a> I added in some Tumblr style functionality. In this post we&#8217;ll look at how WordPress can be used to create a Tumblog.</p>
<p>We&#8217;ll be using a function that was added in 2.7 that doesn&#8217;t get used as much as it should: the <code>post_class </code>function. It adds a CSS class to each category, tag etc. we&#8217;re interested in the category bit. First thing to do is to create all the different categories you want — that&#8217;ll probably be all the standard Tumblr categories: movie, picture, article, quote and link. You&#8217;ll then need to add to within your loop the <code>post_class </code>functionality:</p>
<pre><code>&lt;div id=&quot;post-&lt;?php the_ID(); ?&gt;&quot; &lt;?php post_class(); ?&gt;&gt;
</code></pre>
<p>This now gives each post a class of category-name (ie category-link). This means we can then start styling! For my blog I just added a different icon to each post type (not strictly true—read on!), bit you could go further and do something radical like… change the background colour! Here&#8217;s the CSS I used:</p>
<pre><code>.category-link {
	background:  url(/media/icons/link.png) no-repeat;
}
.category-quote {
	background:  url(/media/icons/quote.png) no-repeat;
}

.category-article {
	background:  url(/media/icons/article.png) no-repeat;

}
.category-movie {
	background:  url(/media/icons/video.png) no-repeat;
}
.category-photo{
	background:  url(/media/icons/image.png) no-repeat;
}</code></pre>
<p>That meant each category had a different icon. Of course, I then used a sprite to combine them into a single image. I used the <a href="http://spriteme.org/">SpriteMe bookmarklet</a> to generate the image and CSS I needed, giving me:</p>
<pre><code>.category-link .icon {
	background-image: url(/media/icons/icon-sprite.png);
	background-position: -10px -142.5px;
}
.category-quote .icon {
	background-image: url(/media/icons/icon-sprite.png);
	background-position: -10px -4.5px;
}

.category-article .icon {
	background-image: url(/media/icons/icon-sprite.png);
background-position: -10px -211.5px;
}

.category-movie .icon {
	background-image: url(/media/icons/icon-sprite.png);
	background-position: -10px -211.5px;
}
.category-photo  .icon {
	background-image: url(/media/icons/icon-sprite.png);
	background-position: -10px -73.5px;
}</code></pre>
<p>That by itself won&#8217;t display the icon &#8211; you need to add in the icon class:</p>
<pre><code>&lt;div class=&quot;icon&quot;&gt;&lt;a href=&quot;/&quot;&gt;Article&lt;/a&gt;&lt;/div&gt;
</code></pre>
<p>And hide the text we&#8217;ve just added:</p>
<pre><code>.icon {
	width: 60px;
	height: 60px;
	text-indent: 200px;
	overflow: hidden;
}</code></pre>
<p>That&#8217;s actually all you need to do to create &#8220;Tumblr style&#8221; different icons for each category. Quite simple.</p>
<h2>Further development<br />
</h2>
<p>It&#8217;s all very well having a different icon, but does that constitute a Tumblog? Not sure it does. Let&#8217;s say for the quote post type you want to change the blockquote styling—for normal posts you&#8217;ve got:</p>
<pre><code>blockquote {
	font: italic 30px Georgia;
	border-left:10px solid #743399;
	}</code></pre>
<p>Bit you want something that stands out more. Easy. Use post_class again so you&#8217;ll need to target the class category-quote:</p>
<pre><code>.category-quote blockquote{
	font: 30px Georgia;
	text-indent:50px;
        background:#eee;
	border:none;
}</code></pre>
<h2>QuickPressing</h2>
<p>The whole point of Tumblogs are they&#8217;re quick and easy to post to. WordPress&#8217; QuickPress Dashboard widget comes to mind. Trouble is for our nice little icons to work, we&#8217;ll need to be able to set the category. Luckily, the WordPress support forum <a href="http://wordpress.org/support/topic/317373">has the answer</a>.</p>
<p>Install the following code as a plugin:</p>
<pre><code>&lt;?php
/*
Plugin Name: QuickPress Category
Plugin URI: http://www.t31os.co.cc/
Description: Adds category selection to the QuickPress widget shown in the WordPress dashboard
Author: t31os
Version: 1.0
Author URI: http://www.t31os.co.cc/
*/

class quickpress_category {

	public function quickpress_category() {
		add_action( 'wp_dashboard_setup' , array( $this , 'dashboard_updater' ) );
		add_action( 'admin_init', array( $this , 'register_option' ) );
	}

	public function register_option() {
		// Register the setting - with basic validation, only need be 0/1 or true/false , keep it simple
		register_setting( 'enable-dropdown', 'quickpress_category' , array( $this , 'option_validation') );
		// Register the setting field
		add_settings_field( 'quickpress_category', 'Quickpress category', array( $this , 'add_category_option' ), 'writing', 'default' );
	}
	public function option_validation( $input ) {
		if( !$input )
			return 0;
		if( $input == 1 )
			return 1;
		else
			return 0;
	}
	// Output the checkbox for toggling the category dropdown
	public function add_category_option() {
		$checked =
			( get_option('quickpress_category') &amp;&amp; get_option('quickpress_category') == 1 ) ? 'checked=&quot;checked&quot; ' : '';
		?&gt;
			&lt;div class=&quot;input-text-wrap&quot;&gt;
				&lt;label class=&quot;selectit&quot;&gt;
					&lt;input type=&quot;checkbox&quot; name=&quot;quickpress_category&quot; &lt;?php echo $checked; ?&gt;value=&quot;1&quot; /&gt;
					Enable quickpress category selection.
				&lt;/label&gt;
			&lt;/div&gt;
		&lt;?php
		settings_fields('enable-dropdown');
		return;
	}

	public function dashboard_updater() {
		// Global the variable so it's available inside the function (that's how you access variables outside a functions scope)
		global $wp_meta_boxes;

		// Determine where the widget is and update the callback name if the option is enabled
		switch( true ) {

			case ( !get_option( 'quickpress_category' ) || get_option( 'quickpress_category' ) == false ) :
				return;

			case ( isset( $wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press'] ) ) :
				$wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']['callback'] = array( &amp;$this , 'quickpress_widget' );
				return;

			case ( isset( $wp_meta_boxes['dashboard']['normal']['core']['dashboard_quick_press'] ) ):
				$wp_meta_boxes['dashboard']['normal']['core']['dashboard_quick_press']['callback'] = array( &amp;$this , 'quickpress_widget' );
				return;
		}
		return;
	}
	// Most of this is just code from the original widget
	public function quickpress_widget() {
		// Call $current_user, so there's no reliance on $GLOBAL, per original widget
		global $current_user;

		$drafts = false;
		if(
			'post' === strtolower( $_SERVER['REQUEST_METHOD'] ) &amp;&amp; isset( $_POST['action'] ) &amp;&amp;
			0 === strpos( $_POST['action'], 'post-quickpress' ) &amp;&amp; (int) $_POST['post_ID'] ) {

			$view = get_permalink( $_POST['post_ID'] );
			$edit = esc_url( get_edit_post_link( $_POST['post_ID'] ) );

			if ( 'post-quickpress-publish' == $_POST['action'] ) {
				if ( current_user_can('publish_posts') )
					printf( '&lt;div class=&quot;message&quot;&gt;&lt;p&gt;' . __( 'Post Published. &lt;a href=&quot;%s&quot;&gt;View post&lt;/a&gt; | &lt;a href=&quot;%s&quot;&gt;Edit post&lt;/a&gt;' ) . '&lt;/p&gt;&lt;/div&gt;', esc_url( $view ), $edit );
				else
					printf( '&lt;div class=&quot;message&quot;&gt;&lt;p&gt;' . __( 'Post submitted. &lt;a href=&quot;%s&quot;&gt;Preview post&lt;/a&gt; | &lt;a href=&quot;%s&quot;&gt;Edit post&lt;/a&gt;' ) . '&lt;/p&gt;&lt;/div&gt;', esc_url( add_query_arg( 'preview', 1, $view ) ), $edit );
			}
			else {
				printf( '&lt;div class=&quot;message&quot;&gt;&lt;p&gt;' . __( 'Draft Saved. &lt;a href=&quot;%s&quot;&gt;Preview post&lt;/a&gt; | &lt;a href=&quot;%s&quot;&gt;Edit post&lt;/a&gt;' ) . '&lt;/p&gt;&lt;/div&gt;', esc_url( add_query_arg( 'preview', 1, $view ) ), $edit );

				$drafts_query = new WP_Query( array(
					'post_type' =&gt; 'post',
					'post_status' =&gt; 'draft',
					'author' =&gt; $current_user-&gt;data-&gt;ID,
					'posts_per_page' =&gt; 1,
					'orderby' =&gt; 'modified',
					'order' =&gt; 'DESC'
				) );

				if ( $drafts_query-&gt;posts )
					$drafts =&amp; $drafts_query-&gt;posts;
			}
			printf('&lt;p class=&quot;textright&quot;&gt;' . __('You can also try %s, easy blogging from anywhere on the Web.') . '&lt;/p&gt;', '&lt;a href=&quot;tools.php&quot;&gt;' . __('Press This') . '&lt;/a&gt;' );
			$_REQUEST = array(); // hack for get_default_post_to_edit()
		}
		$post = get_default_post_to_edit();

		// Args for dropdown
		$args = array(
			'order' =&gt; 'ASC',
			'hierarchical' =&gt; 1,
			'echo' =&gt; 0,
			'name' =&gt; 'post_category[]',
			'hide_empty' =&gt; 0
		);
		// Create dropdown
		$categories = wp_dropdown_categories( array_merge( $args , array( 'selected' =&gt; get_option('default_category') ) ) );
		// Replace the ID
		$categories = str_replace( &quot;id='post_category[]'&quot; , &quot;id='post_category'&quot; , $categories );

		?&gt;

		&lt;form name=&quot;post&quot; action=&quot;&lt;?php echo esc_url( admin_url( 'post.php' ) ); ?&gt;&quot; method=&quot;post&quot; id=&quot;quick-press&quot;&gt;
			&lt;h4 id=&quot;quick-post-title&quot;&gt;&lt;label for=&quot;title&quot;&gt;Title&lt;/label&gt;&lt;/h4&gt;
			&lt;div class=&quot;input-text-wrap&quot;&gt;
				&lt;input type=&quot;text&quot; name=&quot;post_title&quot; id=&quot;title&quot; tabindex=&quot;1&quot; autocomplete=&quot;off&quot; value=&quot;&lt;?php echo esc_attr( $post-&gt;post_title ); ?&gt;&quot; /&gt;
			&lt;/div&gt;
			&lt;h4 id=&quot;quick-post-category&quot;&gt;&lt;label for=&quot;title&quot;&gt;Category&lt;/label&gt;&lt;/h4&gt;
			&lt;div&gt;&lt;?php echo $categories;?&gt;&lt;/div&gt;
			&lt;div class=&quot;clear&quot;&gt;&lt;br /&gt;&lt;/div&gt;
		&lt;?php

		if ( current_user_can( 'upload_files' ) ) { ?&gt;
			&lt;div id=&quot;media-buttons&quot; class=&quot;hide-if-no-js&quot;&gt;&lt;?php do_action( 'media_buttons' );?&gt;&lt;/div&gt;
		&lt;?php
		}
		?&gt;
			&lt;h4 id=&quot;content-label&quot;&gt;&lt;label for=&quot;content&quot;&gt;Content&lt;/label&gt;&lt;/h4&gt;
			&lt;div class=&quot;textarea-wrap&quot;&gt;
				&lt;textarea name=&quot;content&quot; id=&quot;content&quot; class=&quot;mceEditor&quot; rows=&quot;3&quot; cols=&quot;15&quot; tabindex=&quot;2&quot;&gt;&lt;?php echo  $post-&gt;post_content; ?&gt;&lt;/textarea&gt;
			&lt;/div&gt;
			&lt;script type=&quot;text/javascript&quot;&gt;edCanvas = document.getElementById('content');edInsertContent = null;&lt;/script&gt;
			&lt;h4&gt;&lt;label for=&quot;tags-input&quot;&gt;Tags&lt;/label&gt;&lt;/h4&gt;
			&lt;div class=&quot;input-text-wrap&quot;&gt;
				&lt;input type=&quot;text&quot; name=&quot;tags_input&quot; id=&quot;tags-input&quot; tabindex=&quot;3&quot; value=&quot;&lt;?php echo get_tags_to_edit( $post-&gt;ID ); ?&gt;&quot; /&gt;
			&lt;/div&gt;
			&lt;p class=&quot;submit&quot;&gt;
				&lt;input type=&quot;hidden&quot; name=&quot;action&quot; id=&quot;quickpost-action&quot; value=&quot;post-quickpress-save&quot; /&gt;
				&lt;input type=&quot;hidden&quot; name=&quot;quickpress_post_ID&quot; value=&quot;&lt;?php echo  (int) $post-&gt;ID; ?&gt;&quot; /&gt;
				&lt;?php wp_nonce_field('add-post'); ?&gt;
				&lt;input type=&quot;submit&quot; name=&quot;save&quot; id=&quot;save-post&quot; class=&quot;button&quot; tabindex=&quot;4&quot; value=&quot;&lt;?php  esc_attr_e('Save Draft'); ?&gt;&quot; /&gt;
				&lt;input type=&quot;reset&quot; value=&quot;&lt;?php esc_attr_e( 'Reset' ); ?&gt;&quot; class=&quot;button&quot; /&gt;
		&lt;?php
		if ( current_user_can('publish_posts') ) {
			echo '&lt;input type=&quot;submit&quot; name=&quot;publish&quot; id=&quot;publish&quot; accesskey=&quot;p&quot; tabindex=&quot;5&quot; class=&quot;button-primary&quot; value=&quot;' . esc_attr('Publish') . '&quot; /&gt;';
		}
		else {
			echo '&lt;input type=&quot;submit&quot; name=&quot;publish&quot; id=&quot;publish&quot; accesskey=&quot;p&quot; tabindex=&quot;5&quot; class=&quot;button-primary&quot; value=&quot;' . esc_attr('Submit for Review') .'&quot; /&gt;';
		}
		?&gt;
			&lt;br class=&quot;clear&quot; /&gt;
			&lt;/p&gt;
		&lt;/form&gt;
		&lt;?php
		if ( $drafts )
			wp_dashboard_recent_drafts( $drafts );
		return;
	}
}
$quickpress_category = new quickpress_category();

// Removes the option from the options table on deactivation
register_deactivation_hook( __FILE__, 'remove_options' );
function remove_options() {
	delete_option( 'quickpress_category' );
}
?&gt;</code></pre>
<p>Then under Settings, Writing, tick the new box that asks if you want to enable categories for QuickPress. Click it, save and you&#8217;re done.</p>
<h2>Wrapping up</h2>
<p>It&#8217;s actually easier than it looks. The post_class function opens the door for awesome customisation so go ahead and tumble away!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Nometech?a=3SvgC68hVfc:QRUX8eQGNIw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Nometech?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=3SvgC68hVfc:QRUX8eQGNIw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Nometech?i=3SvgC68hVfc:QRUX8eQGNIw:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=3SvgC68hVfc:QRUX8eQGNIw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Nometech?i=3SvgC68hVfc:QRUX8eQGNIw:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=3SvgC68hVfc:QRUX8eQGNIw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Nometech?i=3SvgC68hVfc:QRUX8eQGNIw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=3SvgC68hVfc:QRUX8eQGNIw:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/Nometech?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Nometech/~4/3SvgC68hVfc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wpshout.com/creating-a-tumblog-with-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://wpshout.com/creating-a-tumblog-with-wordpress/</feedburner:origLink></item>
		<item>
		<title>WordPress Wizards Week: Day 5</title>
		<link>http://feedproxy.google.com/~r/Nometech/~3/uP3aVWrL5Vs/</link>
		<comments>http://wpshout.com/wordpress-wizards-week-day-5/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 16:50:26 +0000</pubDate>
		<dc:creator>Alex Denning</dc:creator>
				<category><![CDATA[Discussion]]></category>

		<guid isPermaLink="false">http://wpshout.com/?p=2310</guid>
		<description><![CDATA[After the astounding success of the Why WordPress series which ran last year, this week I'll be asking five WordPress Wizards about what's next for themes, WordPress and frameworks in what is a slightly more focused discussion than last time!<p>You really should be <a href="http://twitter.com/alexdenning/">following me on Twitter</a>.</p><br/><a href="http://wpshift.com"><img src="http://images.wpshout.com/640-150-ani.gif" alt="WPShift" /></a>]]></description>
			<content:encoded><![CDATA[<p>After the astounding success of the <a href="http://wpshout.com/why-wordpress-21-of-the-wordpress-community-answer/">Why WordPress</a> series which ran last year, this week I&#8217;ll be asking five WordPress Wizards about what&#8217;s next for themes, WordPress and frameworks in what is a slightly more focused discussion than last time!</p>
<a href="http://wpshout.com/series/wordpress-wizards-week/" rel="tag">WordPress Wizards Week</a>
<p>Today it&#8217;s Ian Stewart who has very recently <a href="http://themeshaper.com/ian-stewart-joined-automattic/">joined Automattic</a> as &#8220;Theme Wrangler&#8221;.</p>
<div class="border-highlight"><em>Recently commercial &#8216;frameworks&#8217; have been increasing in number. Is the way forward a single all powerful theme that has pretty child themes?</em></div>
<p>Maybe. Probably not.  All powerful Themes with pretty Child Themes are<br />
a solution to a lot of Theme development problems (specifically, rapid<br />
site development in a particular mode) but<strong> they can&#8217;t solve every<br />
problem.</strong></p>
<div class="border-highlight"><em>Often there will be a single feature that over a couple of months everyone adopts; what do you think it&#8217;ll be this year?</em></div>
<p>My wild guess is that this year we&#8217;ll see simplicity become a feature<br />
in WordPress themes with the disappearance of ridiculously massive<br />
options pages altogether. We&#8217;ll see the best WordPress Themes become<br />
simpler and more focused.</p>
<blockquote><p>&#8220;We&#8217;ll see simplicity become a feature in WordPress themes&#8221;</p></blockquote>
<p>My easy, for sure guess? Integration with the super-cool new menu<br />
management introduced in WordPress 3.0.</p>
<div class="border-highlight"><em>The commercial and free theme markets are filled with brilliant developers and designers. They&#8217;ve all got their own little corner and are turning out progressively better themes. Surely the WordPress community as a whole would benefit more from everyone joining forces? Can you ever see this happening?<br />
</em></div>
<p>But they already are! This is happening right now every time a cool<br />
free Theme is released. No one has to literally join forces when they<br />
free up the code behind their WordPress themes. And everyone that uses<br />
WordPress really does benefit. It&#8217;s completely awesome.</p>
<div class="border-highlight"><em>The theme market is getting increasingly filled with new themes. What makes individual themes stand out?</em></div>
<p>I think most users look less for flashy designs and more for Themes<br />
they can make their own. Themes they can see themselves in. <strong>It&#8217;s the<br />
Themes that &#8220;disappear&#8221; that truly stand out.</strong></p>
<div class="border-highlight"><em>What in 3.0 are you looking forward to working with?<br />
</em></div>
<p><strong>Without a question, the new menu management.</strong> It solves a whole mess of<br />
WordPress site development problems for Themers looking to create<br />
robust, sustainable designs. There are also a few new Theme functions<br />
coming that will make the rapid creation of solid Themes that much<br />
easier. Oh, and the integration of WPMU. And the 2010 Default Theme,<br />
of course! Lots of stuff, really.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Nometech?a=uP3aVWrL5Vs:E23wROTC0MY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Nometech?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=uP3aVWrL5Vs:E23wROTC0MY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Nometech?i=uP3aVWrL5Vs:E23wROTC0MY:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=uP3aVWrL5Vs:E23wROTC0MY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Nometech?i=uP3aVWrL5Vs:E23wROTC0MY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=uP3aVWrL5Vs:E23wROTC0MY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Nometech?i=uP3aVWrL5Vs:E23wROTC0MY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=uP3aVWrL5Vs:E23wROTC0MY:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/Nometech?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Nometech/~4/uP3aVWrL5Vs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wpshout.com/wordpress-wizards-week-day-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://wpshout.com/wordpress-wizards-week-day-5/</feedburner:origLink></item>
		<item>
		<title>WordPress Wizards Week: Day 4</title>
		<link>http://feedproxy.google.com/~r/Nometech/~3/OzMW35pU1Xw/</link>
		<comments>http://wpshout.com/wordpress-wizards-week-day-4/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 14:00:19 +0000</pubDate>
		<dc:creator>Alex Denning</dc:creator>
				<category><![CDATA[Discussion]]></category>

		<guid isPermaLink="false">http://wpshout.com/?p=2289</guid>
		<description><![CDATA[After the astounding success of the Why WordPress series which ran last year, this week I'll be asking five WordPress Wizards about what's next for themes, WordPress and frameworks in what is a slightly more focused discussion than last time! Today, Cory Miller from iThemes is in the hot seat.<p>You really should be <a href="http://twitter.com/alexdenning/">following me on Twitter</a>.</p><br/><a href="http://wpshift.com"><img src="http://images.wpshout.com/640-150-ani.gif" alt="WPShift" /></a>]]></description>
			<content:encoded><![CDATA[<p>After the astounding success of the <a href="http://wpshout.com/why-wordpress-21-of-the-wordpress-community-answer/">Why WordPress</a> series which ran last year, this week I&#8217;ll be asking five WordPress Wizards about what&#8217;s next for themes, WordPress and frameworks in what is a slightly more focused discussion than last time!</p>
<a href="http://wpshout.com/series/wordpress-wizards-week/" rel="tag">WordPress Wizards Week</a>
<p>Today Cory Miller from iThemes joins in the conversation.</p>
<div class="border-highlight"><em>Recently commercial &#8216;frameworks&#8217; have been increasing in number. Is the way forward a single all powerful theme that has pretty child themes?</em></div>
<p>No, I think it&#8217;s a blend of single &#8220;typical&#8221; themes and all-powerful ones that do cool things and of course everything in between for different niches and functionality needs. WordPress is too diverse and expansive and the needs too great and varied to think there will be one theme or framework that can do everything. <strong>Thinking otherwise is arrogance</strong>, in my opinion.</p>
<div class="border-highlight"><em>Often there will be a single feature that over a couple of months everyone adopts; what do you think it&#8217;ll be this year?</em></div>
<p>The biggest one on our roadmap right now is a Style Manager where people can make quick and easy changes to their theme design that personalizes it for their unique brand. Talking with other theme devs and knowing our own community, <strong>customization requests are by far the biggest request</strong> we get.</p>
<blockquote><p>The needs [of WordPress are] too great and varied to think there will be one theme or framework that can do everything</p></blockquote>
<p>Generally though I would say &#8230; <strong>anything that makes it easier on the end user,</strong> which is almost endless. The menu issue was critical and on our roadmap as well but I&#8217;m thankful it&#8217;s being solved by, I might add, a premium theme developer in WooThemes. (Score one for commercial enterprises assisting the community!)</p>
<div class="border-highlight"><em>The commercial and free theme markets are filled with brilliant developers and designers. They&#8217;ve all got their own little corner and are turning out progressively better themes. Surely the WordPress community as a whole would benefit more from everyone joining forces? Can you ever see this happening?<br />
</em></div>
<p>I could only see that <strong>if WordPress.org hosted an actual commercial theme store</strong>, but even then we&#8217;re way past that point now with established communities and independent sites, directions and priorities. The primary reason I don&#8217;t think it&#8217;ll ever happen is a combination of ego and control. We all believe we have the best product and all want all the control &#8212; if we&#8217;re being honest, that&#8217;s why we became entrepreneurs. But I will say &#8230; <strong>competition is great for theme innovation and for the community</strong>. The other theme devs force us to be and do better for our customer communities, and vice versa.</p>
<blockquote><p>The other theme devs force us to be and do better for our customer communities, and vice versa.</p></blockquote>
<div class="border-highlight"><em>The theme market is getting increasingly filled with new themes. What makes individual themes stand out?</em></div>
<p>Design (beautiful, attractive design sells a theme), functionality (does it help you do something better or easier), followed by support. <strong>People come for the first two and stay for the third</strong> &#8230; good support is a non-negotiable.</p>
<div class="border-highlight"><em>What in 3.0 are you looking forward to working with?<br />
</em></div>
<p>The WordPress MU merge (I think it&#8217;s called MS) and custom menu navigation. I&#8217;m also interested to see how the image editing/resizing features work.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Nometech?a=OzMW35pU1Xw:e2rqcKxEoYw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Nometech?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=OzMW35pU1Xw:e2rqcKxEoYw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Nometech?i=OzMW35pU1Xw:e2rqcKxEoYw:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=OzMW35pU1Xw:e2rqcKxEoYw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Nometech?i=OzMW35pU1Xw:e2rqcKxEoYw:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=OzMW35pU1Xw:e2rqcKxEoYw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Nometech?i=OzMW35pU1Xw:e2rqcKxEoYw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=OzMW35pU1Xw:e2rqcKxEoYw:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/Nometech?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Nometech/~4/OzMW35pU1Xw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wpshout.com/wordpress-wizards-week-day-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://wpshout.com/wordpress-wizards-week-day-4/</feedburner:origLink></item>
		<item>
		<title>WordPress Wizards Week: Day 3</title>
		<link>http://feedproxy.google.com/~r/Nometech/~3/FY8Ir8ohLoM/</link>
		<comments>http://wpshout.com/wordpress-wizards-week-day-3/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 17:10:35 +0000</pubDate>
		<dc:creator>Alex Denning</dc:creator>
				<category><![CDATA[Discussion]]></category>

		<guid isPermaLink="false">http://wpshout.com/?p=2301</guid>
		<description><![CDATA[After the astounding success of the Why WordPress series which ran last year, this week I’ll be asking five WordPress Wizards about what’s next for themes, WordPress and frameworks in slightly more focused discussion than last time! The series continues today with Alex Cragg, co-founder of WPShift which enticingly has "made a theme that lets you build your own layout just by dragging and dropping."
<p>You really should be <a href="http://twitter.com/alexdenning/">following me on Twitter</a>.</p><br/><a href="http://wpshift.com"><img src="http://images.wpshout.com/640-150-ani.gif" alt="WPShift" /></a>]]></description>
			<content:encoded><![CDATA[<p>After the astounding success of the Why WordPress series which ran last year, this week I’ll be asking five WordPress Wizards about what’s next for themes, WordPress and frameworks in slightly more focused discussion than last time! The series continues today with Alex Cragg, co-founder of <a href="http://wpshift.com">WPShift </a>which enticingly has &#8220;made a theme that lets you build your own layout just by dragging and dropping.&#8221;</p>
<a href="http://wpshout.com/series/wordpress-wizards-week/" rel="tag">WordPress Wizards Week</a>
<div class="border-highlight"><em>Recently commercial ‘frameworks’ have been increasing in number. Is the way forward a single all powerful theme that has pretty child themes?<br />
</em></div>
<p>I think that for each Theme company independently this will more or less be the case. What won&#8217;t happen, is one theme, such as the new 2010 default theme being used by everyone in framework form. Child Themes are still fairly unheard of, which is a shame because they are so powerful. I do think that the continued success of Frameworks is the mass adoption of Child Themes.</p>
<div class="border-highlight"><em>Often there will be a single feature that over a couple of months everyone adopts; what do you think it’ll be this year?<br />
</em></div>
<p>Custom Post Types. This will allow sites to be built in so many new ways, and IMO give finer control over display and organisation.</p>
<div class="border-highlight"><em>The commercial and free theme markets are filled with brilliant developers and designers. They’ve all got their own little corner and are turning out progressively better themes. Surely the WordPress community as a whole would benefit more from everyone joining forces? Can you ever see this happening?<br />
</em></div>
<p>I think that actually the inverse would happen. If everyone joined forces, a) nothing would ever get done; design and development by committee is tedious, time consuming, and most importantly conflict-causing. B) the theme market would stagnate. Nothing new would ever come about because there would be no commercial or Capitalistic drive for themes to develop more.</p>
<p>The WordPress community has always benefited from sharing code and learning from others. By seeing one dev create a theme with a certain feature, others are inclined to better it, use it, tweak it etc. This all brings about better themes for us all.</p>
<div class="border-highlight"><em>The theme market is getting increasingly filled with new themes. What makes individual themes stand out?<br />
</em></div>
<p>Design is always a huge selling point, but good viral and social marketing/advertising goes a long way too. Getting people to know about your product, and getting them to believe that it is what they want (;-)) is crucial. Often, just because a theme has X amount of kick ass features, that doesn&#8217;t mean the theme is going to stand out from the crowd, since that crowd is, as you say, always growing bigger.</p>
<div class="border-highlight"><em>What in 3.0 are you looking forward to working with?<br />
</em></div>
<p>I&#8217;m loving the new default theme that will be released with 3.0. I&#8217;ve been playing with it a lot lately, and I like what I see. I think we&#8217;re going to see a lot of new bloggers just sticking with that theme when they first install WordPress.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Nometech?a=FY8Ir8ohLoM:XVUpbzb0a6A:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Nometech?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=FY8Ir8ohLoM:XVUpbzb0a6A:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Nometech?i=FY8Ir8ohLoM:XVUpbzb0a6A:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=FY8Ir8ohLoM:XVUpbzb0a6A:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Nometech?i=FY8Ir8ohLoM:XVUpbzb0a6A:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=FY8Ir8ohLoM:XVUpbzb0a6A:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Nometech?i=FY8Ir8ohLoM:XVUpbzb0a6A:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=FY8Ir8ohLoM:XVUpbzb0a6A:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/Nometech?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Nometech/~4/FY8Ir8ohLoM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wpshout.com/wordpress-wizards-week-day-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://wpshout.com/wordpress-wizards-week-day-3/</feedburner:origLink></item>
		<item>
		<title>WordPress Wizards Week: Day 2</title>
		<link>http://feedproxy.google.com/~r/Nometech/~3/0ySinXP13Q8/</link>
		<comments>http://wpshout.com/wordpress-wizards-week-day-2/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 14:00:50 +0000</pubDate>
		<dc:creator>Alex Denning</dc:creator>
				<category><![CDATA[Discussion]]></category>

		<guid isPermaLink="false">http://wpshout.com/?p=2278</guid>
		<description><![CDATA[After the astounding success of the Why WordPress series which ran last year, this week I’ll be asking five WordPress Wizards about what’s next for themes, WordPress and frameworks in what is a slightly more focused discussion than last time! The series continues today with Nathan Rice, developer at StudioPress and largely responsible for the recent release of Genesis.<p>You really should be <a href="http://twitter.com/alexdenning/">following me on Twitter</a>.</p><br/><a href="http://wpshift.com"><img src="http://images.wpshout.com/640-150-ani.gif" alt="WPShift" /></a>]]></description>
			<content:encoded><![CDATA[<p>After the astounding success of the Why WordPress series which ran last year, this week I’ll be asking five WordPress Wizards about what’s next for themes, WordPress and frameworks in what is a slightly more focused discussion than last time! The series continues today with Nathan Rice, developer at StudioPress and largely responsible for the recent release of Genesis.</p>
<a href="http://wpshout.com/series/wordpress-wizards-week/" rel="tag">WordPress Wizards Week</a>
<div class="border-highlight"><em>Recently commercial &#8216;frameworks&#8217; have been increasing in number. Is the way forward a single all powerful theme that has pretty child themes?</em></div>
<p>I think so, yes. To me, this is the way WordPress themes have been moving for the last couple of years. <strong>There&#8217;s simply no way to accomplish the things that theme frameworks + child themes  can accomplish with a traditional theme.</strong></p>
<div class="border-highlight"><em>Often there will be a single feature that over a couple of months everyone adopts; what do you think it&#8217;ll be this year?</em></div>
<p>I think everyone will explore the idea of a central framework. Some won&#8217;t have the stomach for it &#8230; it&#8217;s not an easy thing to take on. I think many people are looking to StudioPress and Genesis to see what happens there with the Child Theme Marketplace. If it does well (and it has so far), then I think <strong>you&#8217;ll see more people explore the concept in their own companies</strong>.</p>
<blockquote><p>&#8220;I think everyone will explore the idea of a central framework.&#8221;</p></blockquote>
<p>Also, I think more and more you will see themes<strong> integrating with core WordPress features rather than building out their own</strong>. This may also be the year that many theme developers really start to contribute back to WordPress core, with WooThemes taking the lead on that front with the integration of their Navigation system into WordPress 3.0.</p>
<div class="border-highlight"><em>The commercial and free theme markets are filled with brilliant developers and designers. They&#8217;ve all got their own little corner and are turning out progressively better themes. Surely the WordPress community as a whole would benefit more from everyone joining forces? Can you ever see this happening?</em></div>
<p>No, and <strong>I don&#8217;t really think there would be any benefit from all the theme developers joining forces.</strong> Perhaps on little projects here and there, but not as a whole.</p>
<blockquote><p>Creativity and competition are soulmates.</p></blockquote>
<div class="border-highlight"><em>The theme market is getting increasingly filled with new themes. What makes individual themes stand out?</em></div>
<p>I&#8217;m not crazy about this, but <strong>designs do sell themes</strong>. I wish that more people would focus on the important stuff, but at the end of the day, pretty colors make people drool.</p>
<p>Aside from that, support sells the theme. If a customer is confident that they have a force of helpful individuals to help them get their theme running correctly, it takes the much of the risk out of the purchase.</p>
<blockquote><p>&#8220;At the end of the day, pretty colors make people drool&#8221;</p></blockquote>
<p>Finally, I think a theme developer (or development company) has to prove themselves. <strong>There&#8217;s no such thing as an overnight success in this business.</strong> It takes months (maybe years) to prove that you&#8217;re here for the long haul, and that you&#8217;ll deliver on your promises. Earning trust for your brand is a slow process, but it&#8217;s necessary for the success of your business.</p>
<div class="border-highlight"><em>What in 3.0 are you looking forward to working with?</em></div>
<p>Menu management is something I can&#8217;t wait to play with. It&#8217;s long overdue, but I&#8217;ve been watching the progress in WordPress trunk and I can safely say that the implementation is going very well. It&#8217;s going to be one of the 3.0 killer features, for sure.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Nometech?a=0ySinXP13Q8:hbjYG-3pfmA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Nometech?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=0ySinXP13Q8:hbjYG-3pfmA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Nometech?i=0ySinXP13Q8:hbjYG-3pfmA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=0ySinXP13Q8:hbjYG-3pfmA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Nometech?i=0ySinXP13Q8:hbjYG-3pfmA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=0ySinXP13Q8:hbjYG-3pfmA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Nometech?i=0ySinXP13Q8:hbjYG-3pfmA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=0ySinXP13Q8:hbjYG-3pfmA:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/Nometech?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Nometech/~4/0ySinXP13Q8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wpshout.com/wordpress-wizards-week-day-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://wpshout.com/wordpress-wizards-week-day-2/</feedburner:origLink></item>
		<item>
		<title>WordPress Wizards Week: Day 1</title>
		<link>http://feedproxy.google.com/~r/Nometech/~3/vtgvTSOqRno/</link>
		<comments>http://wpshout.com/wordpress-wizards-week-day-1/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 14:00:24 +0000</pubDate>
		<dc:creator>Alex Denning</dc:creator>
				<category><![CDATA[Discussion]]></category>
		<category><![CDATA[Interview]]></category>

		<guid isPermaLink="false">http://wpshout.com/?p=2243</guid>
		<description><![CDATA[After the astounding success of the Why WordPress series which ran last year, this week I'll be asking five WordPress Wizards about what's next for themes, WordPress and frameworks in what is a slightly more focused discussion than last time!<p>You really should be <a href="http://twitter.com/alexdenning/">following me on Twitter</a>.</p><br/><a href="http://wpshift.com"><img src="http://images.wpshout.com/640-150-ani.gif" alt="WPShift" /></a>]]></description>
			<content:encoded><![CDATA[<p>After the astounding success of the <a href="http://wpshout.com/why-wordpress-21-of-the-wordpress-community-answer/">Why WordPress</a> series which ran last year, this week I&#8217;ll be asking five WordPress Wizards about what&#8217;s next for themes, WordPress and frameworks in what is a slightly more focused discussion than last time!</p>
<a href="http://wpshout.com/series/wordpress-wizards-week/" rel="tag">WordPress Wizards Week</a>
<p>Today it&#8217;s Adii. He doesn&#8217;t really need any introduction as I expect most of you know about the astounding success he&#8217;s had at <a href="http://woothemes.com">WooThemes </a>of late.</p>
<p><img class="alignnone size-thumbnail wp-image-2251" title="adii" src="http://wpshout.com/media/2010/02/adii-590x200.jpg" alt="" width="590" height="200" /></p>
<div class="g-3-4-left">
<div class="border-highlight"><em>Recently commercial &#8216;frameworks&#8217; have been increasing in number. Is the way forward a single all powerful theme that has pretty child themes?</em></div>
<p>I don&#8217;t know to be honest. Personally I&#8217;m split between knowing that there is extreme value in this approach, but also balancing that with the fact that this raises the barrier to entry for newbie WordPress users. So there&#8217;s probably value in a balanced approach in this regard, where you have a &#8220;framework&#8221; + child themes for the advanced users / developers and standalone themes for the newbies.</p>
</div>
<blockquote><p>&#8220;I believe that the friendly competition is good for everyone as it keeps theme developers on their toes.&#8221;</p></blockquote>
<div class="clear"></div>
<div class="border-highlight"><em>Often there will be a single feature that over a couple of months everyone adopts; what do you think it&#8217;ll be this year?</em></div>
<p>If there were any prizes for predicting this correctly, I&#8217;d win&#8230; It will definitely be the new Custom Navigation system that WooThemes has contributed to the WP 3.0 core. As soon as this is ready, <strong>every commercial theme developer worth their salt will integrate support for this</strong>. <img src='http://wpshout.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="border-highlight"><em>The commercial and free theme markets are filled with brilliant developers and designers. They&#8217;ve all got their own little corner and are turning out progressively better themes. Surely the WordPress community as a whole would benefit more from everyone joining forces? Can you ever see this happening?</em></div>
<p>I don&#8217;t agree with the joining of forces, because I believe that the friendly competition is good for everyone as it <strong>keeps theme developers on their toes</strong>. This competition breeds innovation and<strong> forces everyone to re-think</strong> what they&#8217;re doing at the moment and how they can better that in future. The knock-on effect of this is (for example), that if WooThemes releases something great, other theme developers copy that and implement in their own unique way too (so everyone in the community benefits).</p>
<blockquote><p>At WooThemes, we&#8217;ve been inspired on many occasions with what others were doing and implemented similar feature sets in our themes</p></blockquote>
<p>We don&#8217;t necessarily have to be first to market with every new feature, as that is impossible. But by implementing it and improving our themes, <strong>our users too benefits from innovation by another developer</strong>. Hope that thinking makes sense&#8230; <img src='http://wpshout.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="border-highlight"><em>The theme market is getting increasingly filled with new themes. What makes individual themes stand out?</em></div>
<p>That&#8217;s an open question, isn&#8217;t it? To a large extent, you can see what every theme developer&#8217;s niches are by looking at their themes and I think everyone has an unique angle towards satisfying specific needs for their own users. Hence why you&#8217;d get users who own themes from WooThemes, StudioPress, ThemeForest and then a copy of Thesis to top things off.</p>
<p>I think all of these themes (and the respective developers) solve different problems in different ways and <strong>the variety in choice (to potential users) is extremely valuable</strong>. So whilst they may decide on a WooTheme for one project, they might go with StudioPress or Thesis for the next, as they may be better suited to a specific project.</p>
<div class="border-highlight"><em>What in 3.0 are you looking forward to working with?</em></div>
<p>The custom navigation, but that&#8217;s because I&#8217;m biased&#8230; <img src='http://wpshout.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Beyond that, we&#8217;re hoping that custom post types are more defined and elaborate in 3.0, as that will be <strong>game-changing for WP themes</strong> in the longer run (turning the platform into much more of a fully-fledged CMS).</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Nometech?a=vtgvTSOqRno:8XJlT1apmgc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Nometech?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=vtgvTSOqRno:8XJlT1apmgc:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Nometech?i=vtgvTSOqRno:8XJlT1apmgc:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=vtgvTSOqRno:8XJlT1apmgc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Nometech?i=vtgvTSOqRno:8XJlT1apmgc:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=vtgvTSOqRno:8XJlT1apmgc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Nometech?i=vtgvTSOqRno:8XJlT1apmgc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=vtgvTSOqRno:8XJlT1apmgc:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/Nometech?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Nometech/~4/vtgvTSOqRno" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wpshout.com/wordpress-wizards-week-day-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://wpshout.com/wordpress-wizards-week-day-1/</feedburner:origLink></item>
		<item>
		<title>HTML to WordPress Case Study</title>
		<link>http://feedproxy.google.com/~r/Nometech/~3/WAlOmtrXr78/</link>
		<comments>http://wpshout.com/html-to-wordpress-case-study/#comments</comments>
		<pubDate>Thu, 25 Feb 2010 12:00:54 +0000</pubDate>
		<dc:creator>Alex Denning</dc:creator>
				<category><![CDATA[Theme Design]]></category>

		<guid isPermaLink="false">http://wpshout.com/?p=2231</guid>
		<description><![CDATA[Converting HTML to WordPress has just got easier with this post 'case study' looking at a real world example of the DesignInformer redesign.<p>You really should be <a href="http://twitter.com/alexdenning/">following me on Twitter</a>.</p><br/><a href="http://wpshift.com"><img src="http://images.wpshout.com/640-150-ani.gif" alt="WPShift" /></a>]]></description>
			<content:encoded><![CDATA[<p>Following on from Monday&#8217;s introduction to WordPress theme design, today we&#8217;ll be looking at the recent DesignInformer redesign; how the HTML to WordPress process went with what was quite a classic blog look.</p>
<p>It all started when Jad sent me a Google Chat message asking if I&#8217;d help him with converting an HTML design to WordPress. I then ended up doing the whole theme. I still don&#8217;t know how that happened. Over the next couple of weeks, Jad then revisited the theme, doing it again himself &#8212; the best way of learning!</p>
<p>The first thing to do was to take the HTML and <a href="http://wpshout.com/wordpress-theme-design-basics/#part-3">put it into</a> header, index, sidebar and footer files. Here&#8217;s a badly made screenshot of which bits went where:</p>
<p><a href="http://wpshout.com/media/2010/02/sidebar-header-footer.jpg"><img class="alignnone size-full wp-image-2234" title="sidebar-header-footer" src="http://wpshout.com/media/2010/02/sidebar-header-footer.jpg" alt="" width="590" height="938" /></a></p>
<p>Nothing here is too taxing for WordPress to handle, but a couple of things pose a problem.</p>
<h2>The header</h2>
<p>As the design was only going to be used on DesignInformer, there was no need to make the navigation dynamic. The same applied to the logo, RSS and Twitter buttons, so nothing really to do here!</p>
<h2>The index</h2>
<p>I&#8217;m using the index and not the home file here as we&#8217;re creating something that <em>can </em>be used as a fallback. A closer look at the post area reveals it&#8217;s quite complex. WordPress brain in gear, these were what I thought I&#8217;d do (another poorly made graphic!):</p>
<p><a href="http://wpshout.com/media/2010/02/index.jpg"><img class="alignnone size-full wp-image-2235" title="index" src="http://wpshout.com/media/2010/02/index.jpg" alt="" width="590" height="525" /></a></p>
<p>Looking at the CSS though, we hit a problem. Quite a few problems actually. First is that the excerpt is a paragraph with a class. the_excerpt outputs plain <code>&lt;p&gt;</code>s. An ingenious solution is at hand though: <code>the_excerpt_rss</code> <em>doesn&#8217;t </em>have any wrapping <code>&lt;p&gt;</code>s so we can apply our own styling:</p>
<pre><code>&lt;p class="excerpt"&gt;&lt;?php the_excerpt_rss(); ?&gt;&lt;/p&gt;
</code></pre>
<p>The next problem is the &#8216;Continue Reading&#8217; section. That too has a class so we can&#8217;t just use the read more that comes with <code>the_excerpt</code>. Instead, we can use <code>&lt;?php the_permalink(); ?&gt;</code> and wrap the continue reading <code>&lt;p class&gt;</code> around that:</p>
<pre><code>&lt;p class="read-more"&gt;&lt;a href="&lt;?php the_permalink(); ?&gt;"&gt;Continue Reading&lt;/a&gt;&lt;/p&gt;
</code></pre>
<p>I then found out that Jad wanted backwards comparability with his old posts which were using custom fields, not the post_thumbnail function. The solution was to use Justin Tadlock&#8217;s <a href="http://justintadlock.com/archives/2008/05/27/get-the-image-wordpress-plugin">get_the_image</a> plugin, albeit customised a bit.</p>
<h2>The sidebar</h2>
<p>Badly made graphic number one is actually quite heavily cropped so you don&#8217;t see the &#8216;Popular Posts&#8217; section of the sidebar. For this, we followed my own advice to get most commented posts <a href="http://wpshout.com/most-commented-posts-the-right-way-in-wordpress/">the right way</a>:</p>
<pre><code>&lt;ul&gt;
&lt;?php $popular = new WP_Query('orderby=comment_count&amp;posts_per_page=5'); ?&gt;
	&lt;?php while ($popular-&gt;have_posts()) : $popular-&gt;the_post(); ?&gt;	

	&lt;li&gt;&lt;a href="&lt;?php the_permalink() ?&gt;" rel="bookmark" title="&lt;?php the_title_attribute(); ?&gt;"&gt;&lt;?php the_title(); ?&gt; (&lt;?php comments_number('0','1','%'); ?&gt;)&lt;/a&gt;&lt;/li&gt;

&lt;?php endwhile; ?&gt;
&lt;/ul&gt;</code></pre>
<p>The rest of the sidebar is filled with ads and a latest tweets section which I left Jad to do via a plugin.</p>
<h2>The footer</h2>
<p>I largely left the footer as is &#8212; the Categories section was better left hardcoded as we didn&#8217;t want all of the categories, the friends list can be easily edited manually and the bottom of the footer is static too. That leaves the recommended reading section. A custom query is in order. We want two posts from the category with an ID of 164, so use the following code:</p>
<pre><code>&lt;ul&gt;
&lt;?php $reading = new WP_Query('cat=164&amp;posts_per_page=2'); ?&gt;

	&lt;?php while ($reading -&gt;have_posts()) : $reading -&gt;the_post(); ?&gt;	

	&lt;a href="&lt;?php the_permalink() ?&gt;" rel="bookmark" title="&lt;?php the_title_attribute(); ?&gt;"&gt;&lt;?php the_title(); ?&gt; (&lt;?php comments_number('0','1','%'); ?&gt;)&lt;/a&gt;

&lt;?php the_content(); ?&gt;

&lt;?php endwhile; ?&gt;
&lt;/ul&gt;</code></pre>
<p>We can use <code>the_content</code> as the whole post is being displayed &#8211; they&#8217;re only short!</p>
<h2>Lessons learnt</h2>
<p>The major lesson learnt here is that knowing your template tags can get you out of a lot of holes! Not knowing the_excerpt_rss could be used to get our p class could have meant you&#8217;d added in an extra div in an attempt to sort it out when you needn&#8217;t have done! Hopefully this case study will have helped you see in a real example how converting HTML to WordPress is easy!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Nometech?a=WAlOmtrXr78:3Xs1HRABg0w:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Nometech?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=WAlOmtrXr78:3Xs1HRABg0w:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Nometech?i=WAlOmtrXr78:3Xs1HRABg0w:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=WAlOmtrXr78:3Xs1HRABg0w:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Nometech?i=WAlOmtrXr78:3Xs1HRABg0w:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=WAlOmtrXr78:3Xs1HRABg0w:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Nometech?i=WAlOmtrXr78:3Xs1HRABg0w:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=WAlOmtrXr78:3Xs1HRABg0w:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/Nometech?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Nometech/~4/WAlOmtrXr78" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wpshout.com/html-to-wordpress-case-study/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://wpshout.com/html-to-wordpress-case-study/</feedburner:origLink></item>
		<item>
		<title>Basics Of WordPress Theme Design</title>
		<link>http://feedproxy.google.com/~r/Nometech/~3/SzuJBw413ss/</link>
		<comments>http://wpshout.com/wordpress-theme-design-basics/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 12:00:34 +0000</pubDate>
		<dc:creator>Alex Denning</dc:creator>
				<category><![CDATA[Theme Design]]></category>
		<category><![CDATA[Theme Development]]></category>

		<guid isPermaLink="false">http://wpshout.com/?p=2131</guid>
		<description><![CDATA[The basics of WordPress theme design looks at the fundamental knowledge you need to start creating your own WordPress themes from scratch.<p>You really should be <a href="http://twitter.com/alexdenning/">following me on Twitter</a>.</p><br/><a href="http://wpshift.com"><img src="http://images.wpshout.com/640-150-ani.gif" alt="WPShift" /></a>]]></description>
			<content:encoded><![CDATA[<p>Originally posted a while ago, this tutorial series hasn&#8217;t really been receiving the attention it deserves. Here I&#8217;ve revisited it a bit and posted the whole lot in one go. Enjoy!</p>
<p>WordPress theme development is <em>actually</em> very hard. In this post we&#8217;ll look at the different aspects of WordPress theme development, starting with the fundamentals and then moving swiftly onto the basics, template tags and the more advanced files.</p>
<h2>Contents</h2>
<ul>
<li><a href="http://wpshout.com/wordpress-theme-design-basics/#part-1">Part 1</a>: Introduction; the fundamentals of WordPress theme development</li>
<li><a href="http://wpshout.com/wordpress-theme-design-basics/#part-2">Part 2</a>: The index.php and style.css files: the most important parts of any theme.</li>
<li><a href="http://wpshout.com/wordpress-theme-design-basics/#part-3">Part 3</a>: The header.php, sidebar.php and footer.php files.</li>
<li><a href="http://wpshout.com/wordpress-theme-design-basics/#part-4">Part 4</a>: The single.php file: the file that handles posts.</li>
<li><a href="http://wpshout.com/wordpress-theme-design-basics/#part-5">Part 5</a>: The archive.php, home.php and functions.php files.</li>
</ul>
<h2>Downloads</h2>
<p>Part 2 onwards all have an accompanying download &#8211; they&#8217;re listed here:</p>
<ul>
<li><a href="http://wpshout.com/downloads/beginnersguideday2.zip">Part 2</a></li>
<li><a href="http://wpshout.com/downloads/beginnersguideday3.zip">Part 3</a></li>
<li><a href="http://wpshout.com/downloads/beginnersguideday4.zip">Part 4</a></li>
<li><a href="http://wpshout.com/downloads/beginnersguideday5.zip">Part 5</a></li>
</ul>
<p><a name="part-1">Part 1</a></p>
<h2>THE FUNDAMENTALS</h2>
<p>A WordPress theme is made up of a number of different files, and they all contain a seperate section of the page; the header will contain the title and navigation, then the index will contain the main content area (or on a post, the single file does the job). The sidebar, obviously contains the sidebar and the footer contains the footer and closes off the HTML. This all sounds very straightforward, but the important bit is how you can just have a single file, change it once and you will change your whole site. Change your footer and that change will be reflected sitewise, not just on a single page.</p>
<p>Expanding on this, a post page is made up of four files (usually): the header.php file for the header, the single.php file for the post content, the sidebar.php file for the sidebar and the footer.php file for the footer. You can have the same header.php, sidebar.php and footer.php files for the whole site, and so when you make a change, this change comes immediately sitewide.</p>
<h2>THE ADMIN STUFF</h2>
<p>Getting started with WordPress theming can be a daunting prospect, and before we start, I&#8217;ll say this now; I&#8217;m going to assume a good solid understanding of both CSS and HTML. Good places to gain this knowledge are <a href="http://css-tricks.com/video-screencasts/58-html-css-the-very-basics/">CSS-Tricks</a> and <a href="http://net.tutsplus.com">Nettuts</a>+.</p>
<p>A couple of things to sort out first &#8211; you&#8217;ll need to get yourself a code editor. If you&#8217;re using Windows, the free <a href="http://notepad-plus.sourceforge.net/uk/site.htm">Notepad++</a> is an excellent tool to have and if you&#8217;re on a Mac then I&#8217;m sure there are plenty of great free editors, but the one that everyone raves about is called <a href="http://www.panic.com/coda/">Coda</a>(and it&#8217;s not free). If you&#8217;re serious about design then Coda will be worth it in the long term. The only other quick thing we need to do is install WordPress locally. You can find how to do that <a href="http://wpshout.com/how-to-install-wordpress-locally-in-windows/">here</a>.</p>
<p><a name="part-2">Part 2</a></p>
<h2>Creating a basic theme</h2>
<p>First off, the style.css. This is our stylesheet. This isn’t a design series, so I’m not going to dwell on it too much, but there are some important parts of a stylesheet which WordPress needs that tell it some info about the theme. The theme we&#8217;ll be creating this week is called Champion. It&#8217;s based on the Default WordPress theme for ease of use. Download the theme and unzip it. Open up the style.css file and you&#8217;ll see something like this:</p>
<pre><code>/*
Theme Name: Champion Theme URI: http://wpshout.com
Description: description
Author: Alex Denning
Author URI: http://wpshout.com
Version: 1.0
*/</code></pre>
<p>And that&#8217;s all you need to make a stylesheet WordPress-ified. After you&#8217;ve got that in a stylesheet, you can style as you would normally.</p>
<h2>The index</h2>
<p>WordPress has lots of different template files. They&#8217;re all used to generate different types of post, page, archive etc. A previous post <a href="http://wpshout.com/wordpress-template-file-hierarchy-explained/">explains all</a>, but to give you an idea</p>
<p>For posts, first, WordPress will look for the single.php file, but if it isn’t found then it will use the index.php to display the post.</p>
<p>For author archives, first WordPress will look for the author.php file, then the archive.php file and if it can’t find that it’ll use the index.php file to display the author archive. It’s the same with all types of post, page or archive; they all revert to the index.php. This is why it is the most important file of them all.</p>
<p>So let’s get started. Open up the theme files again and open the index.php file. We don&#8217;t need any other files because as I’ve just pointed out, all types of page revert back to the index.php file so to prove the point, in this part it is the only file we’re going to use. As the week goes on we’ll be adding more files back in, don’t worry! Open up the index.php file and look for line 49, which starts with:</p>
<pre><code>&lt;?php if (have_posts()) : ?&gt;

&lt;?php while (have_posts()) : the_post(); ?&gt;</code></pre>
<p>This is the WordPress Loop, and the most important part of any WordPress theme. This part is exciting; we’re using the most important template file and the most important part of any template file!</p>
<h2>THE LOOP EXPLAINED</h2>
<p>So what is this Loop? It’s the thing that goes and fetches posts. With the loop started, look at the next couple of lines, ignoring the opening &lt;div&gt;s. They read:</p>
<pre><code>&lt;h2&gt;&lt;a href="&lt;?php the_permalink(); ?&gt;"&gt;&lt;?php the_title(); ?&gt;&lt;/a&gt;&lt;/h2&gt;

&lt;?php the_content(); ?&gt;</code></pre>
<p>These are your very first template tags. Template tags are pieces of PHP (which always start and end &lt;?php and ?&gt;)  which tell WordPress for the current post, get this piece of information. For example, the first template tag used here, the_permalink, tells WordPress for the current post, get the post permalink. Used inside an anchor and you’ve got yourself a link to current post. The next template tag, the_title, as you might have guessed, outputs the title of the post. Add that all together, inside an H2 tag and you’ve got yourself a title which when clicks goes to the post’s post page.</p>
<p>The final template tag above is the_content. This is tells WordPress for the current post, go and find the contents of it and display it.</p>
<p>The next part of the file reads (again, ignoring the divs):</p>
<pre><code>&lt;?php endwhile; ?&gt;

&lt;php next_posts_link('' Older Entries') ?&gt;

&lt;?php previous_posts_link('Newer Entries &amp;raquo;') ?&gt;

&lt;?php else : ?&gt;

&lt;h2&gt;Not Found&lt;/h2&gt;

&lt;p&gt;Sorry, but you are looking for something that isn't here.&lt;/p&gt;

&lt;?php endif; ?&gt;</code></pre>
<p>The first part, endwhile tells WordPress when you’ve finished displaying all the posts, display this:. What is displayed are links to older and newer entries using the template tags next_posts_link and previous_posts_link.</p>
<p>The next part, else tells WordPress if you can’t find any posts, display this:. You’ll see that if no posts are found then a ‘Not Found’ displays. Finally, endif finishes the loop.</p>
<p>So there we have it; the most important part of any WordPress theme; the loop. What we’ve also done is get introduced to template tags. There are quite a few to get yourself familiar with, and you can find them listed on the <a href="http://codex.wordpress.org/Template_Tags">codex</a>.</p>
<p>With the deciphering done, load up the theme to your WordPress install and activate it. You’ll see that despite only having a stylesheet and a single index.php file, the theme loads fine. Click on a post and you’ll see that gets displayed too. Pages, post archives, category archives and any page you like work fine too. Going back to what I said earlier – all template file hierarchies fall back on the index.php file – this proves it.</p>
<p>This also arises the question – “if I can do all this with a single file, why have more template files?” The answer is customisation. A change to the index.php file will be reflected throughout the entire site, so if you just want to change post pages then you wouldn’t be (easily, see à) able to do this, which is why we have different template files (the pedantic might point out you could get round this with if statements, which is true, but it wouldn’t be particularly practical at the end of the day).</p>
<p><a name="part-3">Part 3</a></p>
<p><span style="font-family: Georgia; line-height: normal; font-size: 24px; text-transform: uppercase;">SEPARATING the files</span></p>
<p>Download the latest copy of our theme and open up the index.php file. First thing that you should notice is that the header has been replaced with a piece of PHP -</p>
<pre><code>&lt;?php get_header(); ?&gt;.
</code></pre>
<p>This is another of WordPress’ template tags, and it’s telling WordPress go into the theme files, find the header.php file and display the contents here. As your <a href="http://wpshout.com/category/themes/">theme </a>becomes more and more complicated, this allows you to create a single header and use it throughout your theme. At this point, you’re probably opening up the header.php file. Good idea! Upon opening it, you’ll see it’s the same thing we had starting off our index.php file. All that has changed is now it has a whole file to itself.</p>
<h2>DECIPERING THE HEADER</h2>
<p>Before we move on, a couple of important header points. You’ll notice that the header doesn’t display things like your content type, it uses template tags (I did say there were lots!) such as:</p>
<pre><code>&lt;?php bloginfo('html_type'); ?&gt;
</code></pre>
<p>When this loads, what is displayed is your HTML type – have a look at the source code yourself – text/html gets shown. Template tags such as this one are used throughout the header to get the stylesheet url, title, pingback url etc etc. The reason for this is because every WordPress installation is different and so by using dynamic template tags, you can cater for all of these different installations at once.</p>
<h2>THE SIDEBAR</h2>
<p>Look back in the index file and you’ll see that the sidebar has gone too, and its place &lt;?php get_sidebar(); ?&gt;. Like the header, this tells WordPress go into the theme files, find the sidebar.php file and display the contents here. There’s not much to decipher here; a couple of new template tags and only one completely new thing: widgets, which we’ll discuss further in the last part as it requires the functions.php file.</p>
<h2>THE FOOTER</h2>
<p>The final part of this part&#8217;s instalment is going to look at the footer. Like the header and sidebar, it has been removed from the index.php file and now resides in the footer.php file. Again, it is referenced with the &lt;?php get_footer(); ?&gt; function. Nothing much new here; again some more new template tags, but other than that it&#8217;s much the same as the index.php file&#8217;s footer we had before.</p>
<p><a name="part-4">Part 4</a></p>
<h2>DEVELOPING THE SINGLE.PHP (POST PAGE) FILE</h2>
<p>Upon opening the single.php file, it should look pretty familiar; the first line is &lt;?php get_header(); ?&gt; which, as we learnt in the previous part, tells WordPress find the header.php file and display the contents here. Skip a line and you’ll see:</p>
<pre><code>&lt;?php if (have_posts()) : while (have_posts()) : the_post(); ?&gt;
</code></pre>
<p>That too should look familiar; it’s the loop! Scroll down further and you’ll see a couple of template tags -</p>
<pre><code>&lt;?php the_title(); ?&gt;</code></pre>
<p>and</p>
<pre><code>&lt;?php the_content(); ?&gt;</code></pre>
<p>. After that, scroll down to line 35 and you’ll meet a new template tag:</p>
<pre><code>&lt;?php comments_template(); ?&gt;</code></pre>
<p>Just like get_header, get_sidebar and get_footer, this tells WordPress go and find the comments.php file and display the contents here.  You can probably guess where this is going – get the comments.php file open.</p>
<h2>GETTING TO GRIPS WITH WORDPRESS’ COMMENTS</h2>
<p>Open it up and&#8230; eek! It’s complicated. The comments file is notorious for being the thing that must be done but no-one really likes doing. But that isn’t going to stop us, is it? No. Let’s get going. The first part of the code just checks to see if the comments file has been loaded directly, and if it has an error message gets displayed. Next, it checks to see if the current post is password protected, and if it is then the user is asked to enter a password to see the page. Leave this bit of code alone; it’s important it is kept and, well, what has it ever done to you?</p>
<p>Next is the bit we’re interested in: the comments loop. It starts by checking if comments are open:</p>
<pre><code>&lt;?php if ( have_comments() ) : ?&gt;</code></pre>
<p>And if they are then some text is displayed, showing the number of comments a post has. Skip a couple of lines to line 28 where an ordered list is opened and inside that ordered list is &lt;?php wp_list_comments(); ?&gt;. This is another of WordPress’ template tags, and it spits out all of a post’s comments. There are other ways of displaying comments (that offer more customisation), but that is a post for another day; as I said, it’s quite a complicated subject.</p>
<p>Gloss over the next part (which is pretty self explanatory) to line 49. Here starts the form that you see on most blogs – this is the part where you fill out your name, email, website and comment. There isn’t really much need to customise this or change it in any way, so we won’t. Instead, we’ll go back to the single.php file and finish up with that.</p>
<h2>FINISHING OFF WITH THE SINGLE POSTS</h2>
<p>Open up the single.php file again and scroll down to line 37, just after where we left off. Here is something that again should look fairly familiar; it’s the loop finishing off and saying if no posts are found then display this:. The</p>
<pre><code>&lt;?php endif(); ?&gt;</code></pre>
<p>closes off the loop and then we get to the familiar looking get_sidebar and get_footer, which we learnt about in the previous installment of the series.</p>
<h2>CREATING A POST PAGE</h2>
<p>This tutorial has focused heavily on posts, without a mention of pages. The good news is that pages run identically to posts and so to create a post page, all you have to do is save another copy of your single.php file as page.php. And you’re done. I did say it was simple!</p>
<p><a name="part-5">Part 5</a></p>
<h2>Creating an awesome archive</h2>
<p>According to the WordPress file hierarchy (which we discussed earlier), all archives – date, category, author and tag each have their own template file, but they also all fall back on a single file – the archive.php file. The idea here is that if you’re clever, you can save yourself creating a couple of additional files.</p>
<p>Upon opening the file, you’ll be greeted with the familiar get_header and the loop. Then, on line 14 starts a whole load of PHP if statements – if this is a category archive, display this, if this is a tag archive, display this etc etc. After that, on line 37 the loop swings into action and we have the familiar template tags we learnt in part two. Finally, on line 56 the standard “no posts were found” gets replaced with another if statement, changing it to “no posts were found under this category/tag etc etc”. After that, the familiar get_sidebar and get_footer and the archive page ends.</p>
<p>It’s pretty similar to the index.php page, all that is happening is that there are a couple of ifstatements to change the titles according to the archive.</p>
<h2>CREATING AN (EQUALLY AWESOME) HOMEPAGE</h2>
<p>Something you might have noticed is that so far we haven’t created a specific homepage. Whilst there is a homepage, that’s just the contents of the index.php file. At this point, it’d be appropriate to introduce a new template file: the home.php file. It’s highest in the hierarchy for the homepage, so WordPress first looks for the home.php file and if that doesn’t exist then it uses the index.php, which is why so far we’ve so far been creating a homepage with just the index.php.</p>
<p>Why can&#8217;t I just use the index?</p>
<p>Good question. You can’t because the index file is at the bottom of all template hierarchies – if you don’t have a specific template file for a certain type of page then WordPress displays the page using the index.php file. For that reason it is best to leave the index file as it is and create an additional page, home.php for generating a homepage. It’s also one of those useful little tricks that are good to know as it allows you to stop using WordPress as a blogging platform and start using it as a CMS.</p>
<p>In our example, we’re not going to do anything with our home.php file, other than make it and copy and paste the contents of the index.php file into it, but as someone who is getting started with WordPress theme development, it is something that you should know exists and you’ve always got the option of customising the homepage further yourself.</p>
<h2>THE FUNCTIONS.PHP FILE</h2>
<p>This is probably the most powerful template file there is. Effectively, it lets you run plugins from within your theme. It’s not a page that gets displayed, it’s a file that lets you run functions that you can display in other files. Common uses include:</p>
<ul>
<li>Widgets! Whilst you put where you want widgets to display in the theme files, but they’re powered from the functions.php file.</li>
<li>Theme options. Theme options pages are too created from the functions.php file. WPShout has a whole tutorial written on the topic <a href="http://wpshout.com/create-an-advanced-options-page-in-wordpress/">here</a>.</li>
<li>Language – the functions.php file lets you set up the option for multi-lingual theming.</li>
</ul>
<p>As the functions file is just so complex, I’ll just cover some basics. The code below will create a widget area ‘Widget area 1’ with an opening div before (which closes after) and the widget title gets an H3 tag:</p>
<pre><code>&lt;?php if ( function_exists('register_sidebar') )

register_sidebar(array(

'name' =&gt; ' Widget area 1',

'before_widget' =&gt; '&lt;div&gt;',

'after_widget' =&gt; '&lt;/div&gt;',

'before_title' =&gt; '&lt;h3&gt;',

'after_title' =&gt; '&lt;/h3&gt;',

)); ?&gt;
</code></pre>
<p>To insert the widget in your sidebar you&#8217;ll need to add the following to your sidebar.php file (or wherever you want to widgetise):</p>
<pre><code>&lt;?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('Widget area 1') ) : ?&gt;

&lt;p&gt;This area is widgetised! To make use of this area, put some widgets in the 'Widget area 1' section.&lt;/p&gt;

&lt;?php endif; ?&gt;</code></pre>
<p>This is just the start though; take a read of <a href="http://wpshout.com/create-an-advanced-options-page-in-wordpress/">this</a>to find out how to build your own <a href="http://wpshout.com/create-an-advanced-options-page-in-wordpress/">theme options page</a>.</p>
<h2>Concluding the series</h2>
<p>I hope this series has given you a good start with developing <a href="http://wpshout.com/category/themes/">WordPress themes</a>, and make sure you <a href="http://feeds2.feedburner.com/nometech">subscribe by RSS</a> to hone your skills further. As I hope I&#8217;ve proved in this post, it needn’t be hard to become aware of what all the bits of code on your theme do, and you never know, perhaps in a year or two I could be reading your blog about advanced uses of WordPress!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Nometech?a=SzuJBw413ss:9O4JMiX5-YU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Nometech?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=SzuJBw413ss:9O4JMiX5-YU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Nometech?i=SzuJBw413ss:9O4JMiX5-YU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=SzuJBw413ss:9O4JMiX5-YU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Nometech?i=SzuJBw413ss:9O4JMiX5-YU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=SzuJBw413ss:9O4JMiX5-YU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Nometech?i=SzuJBw413ss:9O4JMiX5-YU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=SzuJBw413ss:9O4JMiX5-YU:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/Nometech?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Nometech/~4/SzuJBw413ss" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wpshout.com/wordpress-theme-design-basics/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://wpshout.com/wordpress-theme-design-basics/</feedburner:origLink></item>
		<item>
		<title>More WordPress Books Reviewed</title>
		<link>http://feedproxy.google.com/~r/Nometech/~3/T1iaulAhZS8/</link>
		<comments>http://wpshout.com/more-wordpress-books-reviewed/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 14:00:17 +0000</pubDate>
		<dc:creator>Alex Denning</dc:creator>
				<category><![CDATA[Discussion]]></category>

		<guid isPermaLink="false">http://wpshout.com/?p=2193</guid>
		<description><![CDATA[The WordPress 2.7 Cookbook and WordPress 2.8 Theme Design are reviewed, following on from the look at Digging into WordPress and Rockstar WordPress Designer.<p>You really should be <a href="http://twitter.com/alexdenning/">following me on Twitter</a>.</p><br/><a href="http://wpshift.com"><img src="http://images.wpshout.com/640-150-ani.gif" alt="WPShift" /></a>]]></description>
			<content:encoded><![CDATA[<p>A couple of weeks ago I had the pleasure of reviewing <a href="http://bit.ly/9tW2I1">Digging into WordPress</a> and <a href="http://bit.ly/apiCs2">How to Be A Rockstar WordPress Designer</a>. Since then, I&#8217;ve been contacted by the nice people at Packt Publishing who offered to send me <em>WordPress 2.7 Cookbook</em> by my good friend Jean and <em>WordPress 2.8 Theme Design </em>by Tessa Blakeley Silver. This post will look to see if these two books are any good.</p>
<h2>What&#8217;s in a name</h2>
<p>Before we get to the reviewing bit, I&#8217;m sure many of you have pondered in the past why Packt put version numbers with the titles of their books; it immediately dates the book in a world where new versions are released all of the time. I have an answer to that question:</p>
<blockquote><p>The title is decided by the Acquisition Editors, and primarily the version numbers are mentioned so that the readers can immediately get a vague idea about the book and the technology it caters to.</p></blockquote>
<p>I&#8217;m not convinced that&#8217;s a good excuse and it surely means people <em>think</em> the information is dated, even though it&#8217;s likely it isn&#8217;t.</p>
<h2>WordPress 2.7 Cookbook</h2>
<p><a href="http://www.packtpub.com/wordpress-books">This is the book</a> that inspired the hugely successful WPRecipes. It&#8217;s not sold too well either, and you can kinda see why; why would you buy a book when you can get it on one site? Good question. The best answer I can offer is that the book is very well structured; you can start learning about themes and then gradually move on to customisation, using plugins, optimisation, functionality and then some general improvements.</p>
<p><img title="DSCF8141-w590" src="http://wpshout.com/media/2010/02/DSCF8141-w590-590x200.jpg" alt="" width="590" height="200" /></p>
<p><em>Hey, it&#8217;s me!</em></p>
<p>The book is well illustrated with lots of screenshots but is fundamentally flawed because it&#8217;s a book primarily filled with code snippets that would be a pain to type out unless you bought the electronic version, in which case you might as well just visit WPRecipes. That&#8217;s not to say I didn&#8217;t find it useful though &#8211; I was able to pick a topic and then find the odd bit of information that I didn&#8217;t know and I&#8217;d find useful.</p>
<p><em>I&#8217;d recommend this to: <span style="font-style: normal;">someone just getting started with WordPress and people with a basic &#8211; medium knowledge. Ok then, anyone who isn&#8217;t confident building advanced themes. </span></em></p>
<h2>WordPress 2.8 theme design</h2>
<p><a href="http://www.packtpub.com/wordpress-books">This one</a> is directly up against Rockstar WordPress and to an extent Digging into WordPress too. In a nutshell, I&#8217;d go for the other two over this. It tries to do an awful lot too much which leaves it doing it badly. Really important things like the loop aren&#8217;t discussed in much detail at all (just over a page and 3/4 of that is code).</p>
<p><img class="alignnone size-thumbnail wp-image-2208" title="DSCF8143-w590" src="http://wpshout.com/media/2010/02/DSCF8143-w590-590x200.jpg" alt="" width="590" height="200" /></p>
<p>That&#8217;s all I&#8217;ve really got to say about this. In a book about theme design, I don&#8217;t want to learn halfway through how to add a YouTube video to a post.</p>
<p>I&#8217;d better say a bit more though. To its credit, the book does include some up-to-date features &#8211; post_class and some CSS3 for example, but then again, Digging into WordPress is being updated all the time (with an update due out soon, I hear).</p>
<p><em>I&#8217;d recommend this to: </em>someone wanting to get started with WordPress <em>and</em> WordPress theme development but wants a printed book that&#8217;s not too expensive. That&#8217;s a niche market. Go for Digging into WordPress instead.</p>
<h2>Conclusion</h2>
<p>My nice friends at Packt probably won&#8217;t be my friends after that, so if you wanted to win one, sorry. I can recommend the WordPress Cookbook as it&#8217;s well laid out and thought through. Just don&#8217;t go near the other one. If you want a book about WordPress theme design, go for <a href="http://bit.ly/apiCs2">Rockstar Theme Design</a>. If you want a book about WordPress development <em>and</em> design, go for <a href="http://bit.ly/9tW2I1">Digging into WordPress</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Nometech?a=T1iaulAhZS8:qTztCF5U9Ds:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Nometech?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=T1iaulAhZS8:qTztCF5U9Ds:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Nometech?i=T1iaulAhZS8:qTztCF5U9Ds:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=T1iaulAhZS8:qTztCF5U9Ds:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Nometech?i=T1iaulAhZS8:qTztCF5U9Ds:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=T1iaulAhZS8:qTztCF5U9Ds:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Nometech?i=T1iaulAhZS8:qTztCF5U9Ds:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=T1iaulAhZS8:qTztCF5U9Ds:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/Nometech?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Nometech/~4/T1iaulAhZS8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wpshout.com/more-wordpress-books-reviewed/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://wpshout.com/more-wordpress-books-reviewed/</feedburner:origLink></item>
		<item>
		<title>Speeding Up WordPress With If Statements</title>
		<link>http://feedproxy.google.com/~r/Nometech/~3/NgUgFQ4vQQE/</link>
		<comments>http://wpshout.com/speeding-up-wordpress-with-if-statements/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 18:16:56 +0000</pubDate>
		<dc:creator>Alex Denning</dc:creator>
				<category><![CDATA[Theme Development]]></category>

		<guid isPermaLink="false">http://wpshout.com/?p=2178</guid>
		<description><![CDATA[Speeding up WordPress has just got easier; using PHP's if statements you can only load the stuff you need.<p>You really should be <a href="http://twitter.com/alexdenning/">following me on Twitter</a>.</p><br/><a href="http://wpshift.com"><img src="http://images.wpshout.com/640-150-ani.gif" alt="WPShift" /></a>]]></description>
			<content:encoded><![CDATA[<p>Speeding up WordPress has just got easier; using PHP&#8217;s <em>if</em> statements you can only load the stuff you need.</p>
<p>When building <a href="http://wpshift.com">ShiftNews</a>, one thing we were always vary wary of was the effect on load time <em>stuff</em> would have. That meant sprites, not making too many database calls, that kind of thing. And then <a href="http://epicalex.com">Alex C</a> split the CSS file in two (just about in two anyway) and put half of it in <code>single.css</code> and the rest in <code>style.css</code>. The single.css file only gets loaded on posts and pages. In a moment the loading time of the homepage&#8217;s stylesheet was (just about) halved. Pretty neat. Good news is you can do it too!</p>
<h2>Choosing what you need</h2>
<p>Choosing which bits you need is probably the hardest bit (and it&#8217;s not too hard either!). Obviously you&#8217;ll need to keep the barebones layout in the style.css, but things like comment styling, post styles (perhaps you&#8217;ve got<a href="http://wpshout.com/the-death-of-the-boring-blog-post-easily-add-columns-to-any-wordpress-post/"> a custom post layout grid</a>), list styling, blockquotes and the like can go into a new file.</p>
<h2>What if&#8230;</h2>
<p>Next stage is to include the two stylesheets. Open up your header and add the following (or something like):</p>
<pre><code>&lt;link href="&lt;?php bloginfo('stylesheet_url'); ?&gt;" rel="stylesheet" type="text/css" /&gt;

&lt;?php if ( is_singular() || is_404() || is_search() || is_archive() ) { ?&gt;

&lt;link href="&lt;?php bloginfo('template_url'); ?&gt;/css/single.css" rel="stylesheet" type="text/css" /&gt;

&lt;? } else {} ?&gt;</code></pre>
<p>That&#8217;s stylesheets done. We can now move onto plugins.</p>
<h2>Loading plugins conditionally</h2>
<p>Whilst we can&#8217;t (easily) load the whole plugin conditionally, it <em>is</em> possible to stop plugins loading additional stylesheets and the like when you don&#8217;t want them. For example, Yoast wrote up how to stop lightbox or thickbox loading when he didn&#8217;t want them <a href="http://yoast.com/conditional-thickbox-loading/">in this post</a>. For others largely the same principal applies as stylesheets &#8211; <em>if</em> this kind of page then do this, otherwise, do this:</p>
<pre><code>Do this regardless.

&lt;?php if ( is_singular() || is_404() || is_search() || is_archive() ) { ?&gt;

But if it's any of the types of pages listed above then do this.

&lt;? } else {} ?&gt;</code></pre>
<p>By doing this you can very quickly get rid of all the <em>stuff</em> you don&#8217;t need.</p>
<h2>Loading the lot together</h2>
<p>That&#8217;s all very well, you say, but you&#8217;re just creating additional stylesheets for yourself. Not so if you combine them all with the excellent <a href="http://code.google.com/p/minify/">Minify</a>. That way you just have one file, regardless; on certain pages you&#8217;d just add the extra stylesheets to the Minified file.</p>
<p>I hope this has enlightened you to the possibilities of reducing the amount of <em>stuff</em> you need to load with each page. Now go and implement!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Nometech?a=NgUgFQ4vQQE:gl04rW6KEUA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Nometech?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=NgUgFQ4vQQE:gl04rW6KEUA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Nometech?i=NgUgFQ4vQQE:gl04rW6KEUA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=NgUgFQ4vQQE:gl04rW6KEUA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Nometech?i=NgUgFQ4vQQE:gl04rW6KEUA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=NgUgFQ4vQQE:gl04rW6KEUA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Nometech?i=NgUgFQ4vQQE:gl04rW6KEUA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Nometech?a=NgUgFQ4vQQE:gl04rW6KEUA:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/Nometech?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Nometech/~4/NgUgFQ4vQQE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wpshout.com/speeding-up-wordpress-with-if-statements/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://wpshout.com/speeding-up-wordpress-with-if-statements/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 0.319 seconds. --><!-- Cached page generated by WP-Super-Cache on 2010-03-14 02:41:08 -->
