<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mike Van WinkleCustom WordPress Registration Pages (v 0.1.2) | Mike Van Winkle</title>
	<atom:link href="http://www.mikevanwinkle.com/category/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mikevanwinkle.com</link>
	<description>New Media Consultant and Wordpress Freak</description>
	<lastBuildDate>Fri, 30 Jul 2010 13:18:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Custom WordPress Registration Pages (v 0.1.2)</title>
		<link>http://www.mikevanwinkle.com/wordpress/custom-wordpress-registration-page/</link>
		<comments>http://www.mikevanwinkle.com/wordpress/custom-wordpress-registration-page/#comments</comments>
		<pubDate>Sun, 18 Jul 2010 20:45:15 +0000</pubDate>
		<dc:creator>Mike Van Winkle</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.mikevanwinkle.com/?p=394</guid>
		<description><![CDATA[Updated 7-19-2010: I&#8217;ve released a new version of the Custom Registration Forms plugin and added this page accordingly. Simplr Registration Form Plugin Installation Instructions: Download and unzip the package. Upload the simplr_reg_page folder into your wp-content/plugins directory. Go to your &#8230; <a href="http://www.mikevanwinkle.com/wordpress/custom-wordpress-registration-page/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Updated 7-19-2010: I&#8217;ve released a new version of the Custom Registration Forms plugin and added this page accordingly.</p>
<p><strong><a href="http://tinyurl.com/3y7ev4c">Simplr Registration Form Plugin</a></strong></p>
<p><strong>Installation Instructions:</strong></p>
<p>Download and unzip the package. Upload the simplr_reg_page folder into your wp-content/plugins directory. Go to your plugins dashboard and click &#8220;Activate&#8221;.</p>
<p><strong>Usage Instructions:</strong></p>
<p>To use this plugin simply employ the shortcode <code>[Register]</code> on any WordPress post or page. The default role is &#8220;subscriber&#8221;. To apply another role to the registration simply use the the role parameter, for instance: <code>[Register role="editor"]</code>. If you have created custom roles you may use them as well.</p>
<p>You can also use shortcode so specify a custom confirmation message for each form:</p>
<p><code>[Register role="teacher" <strong>message="Thank you for registering for my site. If you would like to encourage your students to register, please direct them to http://www.domain.com/students"</strong>]</code></p>
<p>Finally, you can specify emails to be notified when a new user is registered. By default site admins will receive notice but to notify others simply use the notify parameter:</p>
<p><code>[Register role="teacher" message="Thank you for registering for my site. If you would like to encourage your students to register, please direct them to http://www.domain.com/students" <strong>notify="email1@email.com,email2@email.com"</strong>]</code></p>
<p><strong>Plugin Options:</strong></p>
<p>Please feel free to suggest future options for this plugin in the comments. The current options are:</p>
<ul>
<li>Admin Email: Specify the FROM email you would like to use for the registration confirmation message.</li>
<li>Confirmation Message: Customize the message you would like to appear in the confimation email.</li>
<li>Style: Overrides the default stylesheet included with the plugin.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.mikevanwinkle.com/wordpress/custom-wordpress-registration-page/feed/</wfw:commentRss>
		<slash:comments>28</slash:comments>
		</item>
		<item>
		<title>Five WordPress 3.0 Plugins You Should Try</title>
		<link>http://www.mikevanwinkle.com/wordpress/five-wordpress-3-0-plugins-you-should-try/</link>
		<comments>http://www.mikevanwinkle.com/wordpress/five-wordpress-3-0-plugins-you-should-try/#comments</comments>
		<pubDate>Sun, 11 Jul 2010 13:42:39 +0000</pubDate>
		<dc:creator>Mike Van Winkle</dc:creator>
				<category><![CDATA[Post Types]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.mikevanwinkle.com/?p=519</guid>
		<description><![CDATA[So WordPress 3.0 has been around for a few weeks now, and there are already plugins flooding the WordPress Repository meant to help you manage your new post types.  Some are outstanding, some not. But here&#8217;s a quick rundown. WordPress &#8230; <a href="http://www.mikevanwinkle.com/wordpress/five-wordpress-3-0-plugins-you-should-try/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So WordPress 3.0 has been around for a few weeks now, and there are already plugins flooding the WordPress Repository meant to help you manage your new post types.  Some are outstanding, some not. But here&#8217;s a quick rundown.</p>
<h3>WordPress Custom Post Type UI</h3>
<p><span style="color: #444444; line-height: 24px; font-size: 16px;">Developer: <a href="http://webdevstudios.com/support/wordpress-plugins/">WebDevStudios</a> | <a href="http://wordpress.org/extend/plugins/custom-post-type-ui/">Download Link</a></span></p>
<p>This was likely the first WordPress 3.0-specific plugin posted on WordPress.org. It creates an easy-to-use interface for creating and managing your custom post types. You can also use it to manage taxonomies.</p>
<p>While I always recommend people try to learn as much about the code as possible so as not to be overly reliant on plugins. This is a good one to keep around. It will make your life easier and keep you functions.php file from getting too crowded.</p>
<h3>Post Type Switcher</h3>
<div id="attachment_526" class="wp-caption alignright" style="width: 160px"><a href="http://www.mikevanwinkle.com/wp-content/uploads/2010/07/Screen-shot-2010-07-10-at-11.46.59-AM.png"><img class="size-medium wp-image-526 " title="Screen shot 2010-07-10 at 11.46.59 AM" src="http://www.mikevanwinkle.com/wp-content/uploads/2010/07/Screen-shot-2010-07-10-at-11.46.59-AM-300x293.png" alt="" width="150" height="150" /></a><p class="wp-caption-text">Post Type Switcher</p></div>
<p>Developer:<a title="John James Jacoby" href="http://buddypress.org/community/members/johnjamesjacoby/"> John James Jacoby</a> | <a title="Post Type Switcher" href="http://wordpress.org/extend/plugins/post-type-switcher/">Download Link</a></p>
<p>I love this simple little plugin. It adds a post type switcher to your &#8220;Publish&#8221; meta-box that allows you to easily change a page or a post to a custom post type. Though, I wish he&#8217;d find a way to work this into the bulk editing functionality so you could switch multiple posts at once.</p>
<h3>WP Easy Post Types</h3>
<p>Developer: <a title="NewSignature" href="http://www.newsignature.com/">NewSignature</a> | <a title="WP Easy Post Types" href="http://wordpress.org/extend/plugins/easy-post-types/">Download Link</a></p>
<p>This plugin takes the custom post type user interface to another level. Not only can you create and manage new post types but you can create and manage custom fields and meta boxes associated with a particular post type. It comes with a built-in date picker field to help with post types that are date-specific. Another key feature giving this plugin loads of potential is that it allows you manage the admin display of your created post types. For instance, if you wanted a custom field to show up in the posts list screen, you can do that.</p>
<h3>Relations Post Types</h3>
<p><a title="Relations Posts Types" href="http://wordpress.org/extend/plugins/relation-post-types/">Download Link</a></p>
<p>From a developer POV, the Relations Post Type plugin is the most interesting one I&#8217;ve seen because it satisfies the need to easily related data between post types. Say you have an Events post type and you want to associate each Event with a speaker. You can do this by creating a custom taxonomy for &#8220;speaker&#8221;, but you would be limiting the amount of info you could assign to the term &#8220;speaker&#8221;. So what if you create another post type for &#8220;Speaker&#8221; then assigned a speaker to the Event using a custom meta box. You can do that but there will be some serious custom programming involved. That&#8217;s what this plugin does.</p>
<p>But before you run off thinking the Relations Post Types plugin is going to save your wordpress dev project,  it still has a long way to go. For one thing, the documentation is non-existent. It comes with an easy to deploy sidebar widget, but to do anything more you&#8217;ll need to dig into the code.</p>
<p>Also, the plugin sets up an additional table for storing the relationships, which means you&#8217;ll have to do a little SQL to retrieve the info, unless the developers decide to create a special query class. Some might question why the relationships couldn&#8217;t be stored as a custom field instead of in a new table. The answer, at least in my estimate, is that a relationship table will allow you to perform more complex and more efficient queries on the data.</p>
<p>So, while this plugin looks awesome in theory. There&#8217;s some time before it will be mature enough for non-expert devs to use.</p>
<h3>Convert Post Types</h3>
<p>Developer: <a href="http://sillybean.net/code/wordpress/convert-post-types/">Stephanie Leary</a> | <a title="Convert Post Types" href="http://wordpress.org/extend/plugins/convert-post-types/">Download Link</a></p>
<p>Ah hah! Here&#8217;s the one I&#8217;ve been waiting for. Need to convert all those old events-category posts to you new Events post type? This will do it for you in one click saving you the trouble of performing any DB operations via phpmyadmin. Whoo hoo!</p>
<p>Are there any I forgot? If so, let me know and I&#8217;m happy to look at them.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikevanwinkle.com/wordpress/five-wordpress-3-0-plugins-you-should-try/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress 3.0</title>
		<link>http://www.mikevanwinkle.com/geek-think/wordpress-3-0/</link>
		<comments>http://www.mikevanwinkle.com/geek-think/wordpress-3-0/#comments</comments>
		<pubDate>Thu, 17 Jun 2010 20:25:20 +0000</pubDate>
		<dc:creator>Mike Van Winkle</dc:creator>
				<category><![CDATA[Geek Think]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.mikevanwinkle.com/?p=502</guid>
		<description><![CDATA[It&#8217;s out.]]></description>
			<content:encoded><![CDATA[<p><a href="http://wordpress.org/">It&#8217;s out.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikevanwinkle.com/geek-think/wordpress-3-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress PodsCMS SEO Titles Plugin</title>
		<link>http://www.mikevanwinkle.com/wordpress/plugins/wordpress-podscms-seo-titles-plugin/</link>
		<comments>http://www.mikevanwinkle.com/wordpress/plugins/wordpress-podscms-seo-titles-plugin/#comments</comments>
		<pubDate>Fri, 11 Jun 2010 20:02:54 +0000</pubDate>
		<dc:creator>Mike Van Winkle</dc:creator>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[Pods]]></category>
		<category><![CDATA[podscms]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[wordpress as cms]]></category>

		<guid isPermaLink="false">http://www.mikevanwinkle.com/?p=494</guid>
		<description><![CDATA[I haven&#8217;t submit this plugin to the WordPress SVN yet, because I&#8217;m still playing with it. The remaining issue is that while it works, I&#8217;m not sure it works in the most efficient manner possible. I&#8217;m also going to post &#8230; <a href="http://www.mikevanwinkle.com/wordpress/plugins/wordpress-podscms-seo-titles-plugin/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I haven&#8217;t submit this plugin to the WordPress SVN yet, because I&#8217;m still playing with it. The remaining issue is that while it works, I&#8217;m not sure it works in the most efficient manner possible. I&#8217;m also going to post it over at <a title="PodsCMS" href="http://www/podscms.org">@podscms</a> and get some feedback.</p>
<p>At any rate, for anyone who&#8217;s running a pods installation and having trouble getting SEO friendly titles on your pod pages, this plugin creates a template tag &lt;?php pods_seo_title(); ?&gt; that you can use to override wordpress default behavior. The plugins check to see if the page is a pod page, and if so calls the title of the respective pod. If not, it checks to see if the page is singular and returns the TITLE | SITENAME format if it is. Otherwise it returns the SITENAME | SITE DESCRIPTION form.</p>
<p><strong>Download:</strong> <a href="http://www.mikevanwinkle.com/wp-content/uploads/2010/06/pods-seo-titles.php_.zip">Pods SEO Titles</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikevanwinkle.com/wordpress/plugins/wordpress-podscms-seo-titles-plugin/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Theming Custom Post Types in WordPress 3.0</title>
		<link>http://www.mikevanwinkle.com/wordpress/theming-custom-post-types-in-wordpress-3-0/</link>
		<comments>http://www.mikevanwinkle.com/wordpress/theming-custom-post-types-in-wordpress-3-0/#comments</comments>
		<pubDate>Fri, 04 Jun 2010 20:44:42 +0000</pubDate>
		<dc:creator>Mike Van Winkle</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[content management]]></category>
		<category><![CDATA[custom post types]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[tricks]]></category>
		<category><![CDATA[wordpress tutorial]]></category>

		<guid isPermaLink="false">http://www.mikevanwinkle.com/?p=486</guid>
		<description><![CDATA[So today I developed a simple strategy for dealing with some of the theming issues that arise out of WordPress 3.0 and the new Custom Post Type functionality. The Issue: You&#8217;re working on a site designed long before Custom Post &#8230; <a href="http://www.mikevanwinkle.com/wordpress/theming-custom-post-types-in-wordpress-3-0/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So today I developed a simple strategy for dealing with some of the theming issues that arise out of <a title="WordPress 3.0" href="http://wordpress.org/development/2010/04/wordpress-3-0-beta-1/">WordPress 3.0</a> and the new <a title="Custom Post Types" href="http://codex.wordpress.org/Function_Reference/register_post_type">Custom Post Type</a> functionality.</p>
<p><strong>The Issue: </strong>You&#8217;re working on a site designed long before <a title="Custom Post Types" href="http://codex.wordpress.org/Function_Reference/register_post_type">Custom Post Types</a> were an itch in Matt&#8217;s cerebellum. But now that the functionality is there and you want to incorporate it into your theme. Previously you used conditional code to theme your single.php file.</p>
<pre>&lt;?php if(in_category('foo')) { ?&gt;
   Do something.
&lt;?php } elseif(in_category('bar')) { ?&gt;
   Do something else.
&lt;?php } else { ?&gt;
   Do yet another thing.
&lt;?php } ?&gt;</pre>
<p>The thought of adding yet another layer of conditionals makes you sick to your stomach. <a title="Custom Post Types" href="http://codex.wordpress.org/Function_Reference/register_post_type">Custom Post Types</a> need to be treated completely different. They have different categories, taxonomies, and even different sidbars. Arg!</p>
<p><strong>Solution: </strong>One simple function. Call it whatever you want, but here&#8217;s what it looks like. When I say simple &#8230; I mean simple.</p>
<pre>
<div id="_mcePaste">function get_post_in_context() {</div>
<div id="_mcePaste">   global $post;</div>
<div id="_mcePaste">   $type = $post-&gt;post_type;</div>
<div id="_mcePaste">   include(TEMPLATEPATH .'/layouts/single-'.$type .'-content.php');</div>
<div id="_mcePaste">}</div>
</pre>
<p>Now just create a directory in your theme called &#8220;layouts&#8221;. Then copy and paste all the markup in your <strong>single.php</strong> file between the <em>get_header()</em> tag and the <em>get_sidebar()</em> tag to a file named <strong>single-post-content.php</strong> and save the file to your layouts folder.</p>
<p>Now place a the <em>get_post_in_context()</em> tag into your single.php  where you want the markup from single-post-content.php to show up.</p>
<pre><span style="font-family: Georgia, 'Bitstream Charter', serif; color: #444444;"><span style="line-height: 22px;">&lt;?php get_header(); ?&gt;
&lt;?php get_post_in_context(); ?&gt;
 &lt;?php get_sidebar(); ?&gt;
&lt;?php get_footer(); ?&gt;</span></span></pre>
<p>The beauty of this is that you can now create a new single-POSTTYPE-content.php (example:single-events-content.php) file for any of your custom post types and it will automagically get called instead of the single-post-content.php without any more changes to the single.php file.</p>
<p>I can&#8217;t take total credit for the idea. Some theme frameworks already employ a version of this strategy. But I need to adapt an existing theme rather than start from a framework. This function above will allow you to scale your existing theme to accomodate new post types without having to redesign your whole site.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikevanwinkle.com/wordpress/theming-custom-post-types-in-wordpress-3-0/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Wordcamp Fayetteville Pods Presentation</title>
		<link>http://www.mikevanwinkle.com/geek-think/wordcamp-fayetteville-pods-presentation/</link>
		<comments>http://www.mikevanwinkle.com/geek-think/wordcamp-fayetteville-pods-presentation/#comments</comments>
		<pubDate>Sat, 29 May 2010 23:52:45 +0000</pubDate>
		<dc:creator>Mike Van Winkle</dc:creator>
				<category><![CDATA[Geek Think]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Pods]]></category>
		<category><![CDATA[podscms]]></category>
		<category><![CDATA[Wordpress Pods]]></category>

		<guid isPermaLink="false">http://www.mikevanwinkle.com/?p=478</guid>
		<description><![CDATA[Thank you to everyone who attended my presentation on WordPress Pods at Wordcamp Fayetteville. As promised I&#8217;ve posted the presentation on slideshare.net. I also recorded the presentation with Screenflow and will hopefully get it posted tomorrow. And don&#8217;t forget to &#8230; <a href="http://www.mikevanwinkle.com/geek-think/wordcamp-fayetteville-pods-presentation/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Thank you to everyone who attended my presentation on WordPress Pods at Wordcamp Fayetteville. As promised I&#8217;ve posted the <a href="http://www.slideshare.net/mpvanwinkle">presentation on slideshare.net</a>. I also recorded the presentation with Screenflow and will hopefully get it posted tomorrow. And don&#8217;t forget to check out http://www.podscms.org.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikevanwinkle.com/geek-think/wordcamp-fayetteville-pods-presentation/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>My first plugin is on WordPress.org!</title>
		<link>http://www.mikevanwinkle.com/wordpress/my-first-plugin-on-wordpress/</link>
		<comments>http://www.mikevanwinkle.com/wordpress/my-first-plugin-on-wordpress/#comments</comments>
		<pubDate>Fri, 21 May 2010 20:43:36 +0000</pubDate>
		<dc:creator>Mike Van Winkle</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[achievements]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[plugins]]></category>

		<guid isPermaLink="false">http://www.mikevanwinkle.com/?p=472</guid>
		<description><![CDATA[I just got my first plugin listed in the WordPress Directory, now that feels pretty cool. I was once published in the Chicago Tribune, but I think this feels better than that. http://tinyurl.com/3y7ev4c]]></description>
			<content:encoded><![CDATA[<p>I just got my first plugin listed in the WordPress Directory, now that feels pretty cool. I was once published in the Chicago Tribune, but I think this feels better than that. </p>
<p><a href="http://tinyurl.com/3y7ev4c">http://tinyurl.com/3y7ev4c</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikevanwinkle.com/wordpress/my-first-plugin-on-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ma.tt likes jazz</title>
		<link>http://www.mikevanwinkle.com/wordpress/ma-tt-likes-jazz/</link>
		<comments>http://www.mikevanwinkle.com/wordpress/ma-tt-likes-jazz/#comments</comments>
		<pubDate>Sat, 01 May 2010 20:13:46 +0000</pubDate>
		<dc:creator>Mike Van Winkle</dc:creator>
				<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.mikevanwinkle.com/wordpress/ma-tt-likes-jazz/</guid>
		<description><![CDATA[WordPress founder Ma.tt Mullenweg explains how WordPress is like jazz.]]></description>
			<content:encoded><![CDATA[<p><img style="display:block;margin-right:auto;margin-left:auto;" alt="image" src="http://www.mikevanwinkle.com/wp-content/uploads/2010/05/wpid-2010-05-01-13.07.02.jpg" /></p>
<p>WordPress founder Ma.tt Mullenweg explains how WordPress is like jazz. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikevanwinkle.com/wordpress/ma-tt-likes-jazz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress Theme Frameworks: Who need &#8216;em!</title>
		<link>http://www.mikevanwinkle.com/geek-think/wordpress-theme-frameworks-who-need-em/</link>
		<comments>http://www.mikevanwinkle.com/geek-think/wordpress-theme-frameworks-who-need-em/#comments</comments>
		<pubDate>Fri, 16 Apr 2010 20:04:43 +0000</pubDate>
		<dc:creator>Mike Van Winkle</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Geek Think]]></category>
		<category><![CDATA[Themes]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.mikevanwinkle.com/?p=431</guid>
		<description><![CDATA[The buzz word in WordPress circles these days is &#8220;framework&#8221;. What the hell does that mean? Isn&#8217;t WordPress a framework? The official definition offered in the WordPress Codex is &#8220;a theme that is designed to be a flexible foundation that &#8230; <a href="http://www.mikevanwinkle.com/geek-think/wordpress-theme-frameworks-who-need-em/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The buzz word in WordPress circles these days is &#8220;framework&#8221;. What the hell does that mean? Isn&#8217;t WordPress a framework? The official definition offered in the <a title="WordPress Theme Frameworks" href="http://codex.wordpress.org/Theme_Frameworks">WordPress Codex</a> is &#8220;a theme that is designed to be a flexible foundation that can serve as a parent theme for building child themes.&#8221; But this doesn&#8217;t quite give us enough information.</p>
<p>Taking only the simple definition under consideration, WordPress users are likely to get the impression that, all things being equal, you should use a framework. After all, who wouldn&#8217;t want the added benefit and &#8220;flexibility&#8221; of being able to have &#8220;child&#8221; themes. Sounds cool.</p>
<p>But once you unpack a framework theme and start futzing with it, you quickly realize all is not perfect in the land of &#8220;frameworks&#8221;. So here&#8217;s my stab at a more useful definition. A <a title="WordPress Theme Frameworks" href="http://codex.wordpress.org/Theme_Frameworks">WordPress Theme Framework</a> is a theme that has additional code built into it making selected tasks easier for theme <em>developers</em> to manage. The emphasis on developers is mine and is very important.</p>
<p>Over the last several months I&#8217;ve built sites using several different frameworks and found that there is little advantage consistent across all frameworks, though each framework has specific advantages. The only consistency is that to really benefit from frameworks you need to have a deeper understanding of WordPress, its syntax, functions, plugins, etc.</p>
<p>If all you want to do is customize a theme, frameworks are likely to drive you crazy.</p>
<h2>In Theory</h2>
<p>In theory, frameworks are a very powerful thing. The idea is that you can take certain standard needs of theme developers and abstract them into new functions that allow the theme developer to execute customizations without messing with the theme core. With many theme frameworks, if you know what you&#8217;re doing, you can perform most theme modifications by editing only the style.css and the function.php files.</p>
<p>By way of an example, the <a title="Thematic Theme Framework" href="http://wordpress.org/extend/themes/thematic">Thematic Theme Framework</a> has a hook called <em>thematic_above_indexloop();. </em>If I wanted to add a feature ad banner above the index loop of a regular theme, I would have to go into the the <em>index.php, </em>find the loop, and ad the code<em>. </em>But in the framework I simply have to go to the function.php file and add the following:</p>
<pre>function feature_ad_banner() {
echo 'my feature ad banner';
}
add_action('thematic_above_indexloop','feature_ad_banner');</pre>
<p>This code just tells the theme to pull in my custom function when it triggers this action. This gives me a ton of power as a developer because I can easily build an awesome site without worrying about building the &#8220;guts&#8221; of the theme. Or, to put it simply, I can focus on the cool stuff while ignoring the mundane details.</p>
<h2>It&#8217;s all about the HOOKS</h2>
<p>The drawback is that each theme framework has its own peculiarities and learning the appropriate hooks and filters can take time. If you&#8217;re a developer, this time is justified because it saves time on future projects. But if you just understand the basics of  WordPress themes and are simply trying to customize one for your own use &#8230;especially if you aren&#8217;t all that comfortable with PHP &#8230; this extra level of abstraction can be a royal pain in your ass. If you&#8217;ve modified a loop before, you&#8217;ll find modifying a loop in a framework isn&#8217;t nearly as simple as you remembered. You have to create your own function and then track down the right hook to apply it to. A mod that used to take you 15 minutes, now takes you an hour.</p>
<p>Again, there are rewards to learning a framework, but make sure you understand the time investment required and how that squares with the benefits you expect to receive in return.</p>
<p>In short, WordPress Theme Frameworks are great for those serious about development. But hobbyist might want stick with an old fashioned WordPress Themes. In future articles I will look a few different frameworks and when you mind be inclined to use them.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikevanwinkle.com/geek-think/wordpress-theme-frameworks-who-need-em/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress as CMS, Pods or Custom Fields</title>
		<link>http://www.mikevanwinkle.com/wordpress/wordpress-as-cms-pods-or-custom-fields/</link>
		<comments>http://www.mikevanwinkle.com/wordpress/wordpress-as-cms-pods-or-custom-fields/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 14:37:29 +0000</pubDate>
		<dc:creator>Mike Van Winkle</dc:creator>
				<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.mikevanwinkle.com/?p=388</guid>
		<description><![CDATA[If you&#8217;re looking to use WordPress as your content management system there are really only two startegies right now for doing so. First there are custom fields. Custom fields are WordPress&#8217; native method of handling data beyond the typical post &#8230; <a href="http://www.mikevanwinkle.com/wordpress/wordpress-as-cms-pods-or-custom-fields/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re looking to use WordPress as your content management system there are really only two startegies right now for doing so. First there are custom fields. Custom fields are WordPress&#8217; native method of handling data beyond the typical post category, tags, author, etc.</p>
<p><a href="http://wordheavy.com/wp-content/uploads/2010/02/Screen-shot-2010-02-14-at-12.21.29-PM.png"><img class="alignright" title="Custom Write Panels" src="http://wordheavy.com/wp-content/uploads/2010/02/Screen-shot-2010-02-14-at-12.21.29-PM-300x91.png" alt="" width="182" height="55" /></a></p>
<p>There are several plugins that make working with custom fields a little easier. <a href="http://wordpress.org/extend/plugins/custom-field-template/">Custom Fields Template</a>, <a title="Flutter Plugin" href="http://flutter.freshout.us/"> Flutter</a> , and <a title="More Fields Plugin" href="http://wordpress.org/extend/plugins/more-fields/">More Fields</a> are the popular examples. These plugins provide the ability to set up custom &#8220;write panels&#8221; with new fields added for inputting custom fields.</p>
<p>In the latest versions of WordPress there is support for &#8220;post types&#8221; which should make it even easier to customize the post entry screen depending on the type of content you are inputting.</p>
<p>The alternative to this approach is <a title="Pods CMS" href="http://pods.uproot.us/">Pods CMS</a>. Pods is a WordPress equivalent to the <a title="Content Construction Kit" href="http://drupal.org/project/cck">Content Construction Kit</a> available to Drupal developers. Pods does not use custom fields, rather it creates new tables and completely new data types.</p>
<p>There are advantages and disadvantages to both approaches to <strong>WordPress as a CMS</strong>. And if you are serious about building a WordPress site you need to understand those advantages.</p>
<h3>Custom Fields</h3>
<p><strong>Pros:</strong></p>
<ul>
<li><strong>Native to WordPress.</strong> Does not require plugin installation to function and all posts are immediately connected to other WordPress plugins and functions</li>
<li>All fields are <strong>text formatted</strong>, which means once you know how to output one custom field, you can output them all.</li>
<li>Most <strong>plugins</strong> are already compatible with Custom Fields.</li>
</ul>
<p><strong>Cons:</strong></p>
<ul>
<li><strong>Queries </strong>with custom fields can be complex and convoluted. Sometimes you will need a &#8220;Custom Select Query&#8221; in order to accomplish your task.</li>
<li>All fields are in <strong>LONGTEXT format</strong>, which means the database will be larger than it needs to be and this could put limits on the scalability of your site. (<a title="Pods and Custom Fields" href="http://pods.uproot.us/forums/general-discussion/wordpress-2-9-custom-post-types">More on Custom Fields Scalability</a>).</li>
<li>End User support is still limited. The WordPress Dashboard, even with the mentioned plugins, is not fully customizable.</li>
</ul>
<h2>Pods CMS</h2>
<p><strong>Pros</strong></p>
<ul>
<li><strong>Fully customizable backend. </strong>You can specify exactly what fields the end user sees for any given content type.</li>
<li><strong>Public form support</strong> makes setting up forms for adding content on the front end relatively easy. Though the form options are limited and can be buggy.</li>
<li>Field <strong>formats are customizable</strong>, which means your database is only going to be as big as it needs to be. This also means your site will be more scalable.</li>
<li> <strong>Fields are relate-able</strong>. This is the biggest benefit to Pods. In future posts we will see exactly what this means.</li>
</ul>
<p><strong>Cons:</strong></p>
<ul>
<li><strong>Not supported</strong> by WordPress development team. This is truly a plugin and WordPress is hesitant to support it and would rather CMS developers use Custom Fields and Custom Taxonomies. This means if the plugin developers get tired of working on it, then your site could be toast. The good news is the Pods user base is growing rapidly and the bigger it gets, the less we will have to worry about this.</li>
<li>Pods content is<strong> not added to WordPress posts table</strong> by default which means it is not available to native WordPress functions, like comments and Akismet, and is inaccessible to many plugins, like WP-PostViews (Note: there is a patch that will allow integration, but not seamless integration).</li>
<li>Because of the complicated relational database, <strong>SQL queries are more difficult</strong> than with custom fields. Though you can do more with Pods not using SQL than you can with custom fields using SQL.</li>
</ul>
<p>Choosing between Pods and Custom Field based development is a big decision and there isn&#8217;t a universal answer. Much will depend on the site you are building and what your goals are. But here are some questions you should ask yourself before making the decision:</p>
<ul>
<li>Are your custom content types generally &#8220;post-like&#8221;? If so, consider sticking with Custom Fields.</li>
<li>Do you need to fully customize your Dashboard interface for the end-user? If so, Pods may be your best bet.</li>
<li>Do you need to rely on other available WordPress plugins/functions? If so you&#8217;ll either need to patch your Pods install, or you should stick with Custom Fields.</li>
<li>Do you need complex and relatable content types? An example would be an online journal where you need Volume, Issue, and article, each with particular information but also related to each other.</li>
<li>Are you building a very large site with tens of thousands of entries? You may need to be concerned about scalability. Look at pods.</li>
</ul>
<p>In most cases you will find your answers will be mixed. Your content is &#8220;post-like&#8221; but needs to be relatable. Or you are building a large site, but you need to integrate with other plugins. In most of my sites, I use a combination, deploying custom fields for basic post-like content, but Pods for more specialized content types like event listings.</p>
<p>As WordPress develops as a CMS I expect these two solutions will come together. WordPress cannot truly be considered a CMS with an easier way to (a) relate content and (b) customize content entry pages. Pods enables both.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikevanwinkle.com/wordpress/wordpress-as-cms-pods-or-custom-fields/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
