<?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>GrindSmart &#187; wordpress</title>
	<atom:link href="http://grindsmart.com/tag/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://grindsmart.com</link>
	<description></description>
	<lastBuildDate>Thu, 05 Aug 2010 13:50:41 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Streamline Your WordPress Development Process</title>
		<link>http://grindsmart.com/2010/04/streamline-your-wordpress-development-process/</link>
		<comments>http://grindsmart.com/2010/04/streamline-your-wordpress-development-process/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 01:13:47 +0000</pubDate>
		<dc:creator>GrindSmart Editorial</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[develop]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://grindsmart.com/?p=721</guid>
		<description><![CDATA[
			
				
			
		
Being able to develop faster is what most developers strive for, and that&#8217;s no secret. With the flexibility of WordPress and a few theme frameworks, you can already develop a WordPress site with ease and speed. But what if you could streamline the entire process? Below we&#8217;ve added a few quick tips that will allow ]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fgrindsmart.com%2F2010%2F04%2Fstreamline-your-wordpress-development-process%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fgrindsmart.com%2F2010%2F04%2Fstreamline-your-wordpress-development-process%2F&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><strong>Being able to develop</strong> faster is what most developers strive for, and that&#8217;s no secret. With the flexibility of WordPress and a <a href="http://designerscouch.org/show_article/223/wordpress-theme-frameworks-just-right-for-development.html">few theme frameworks</a>, you can already develop a WordPress site with ease and speed. But what if you could streamline the entire process? Below we&#8217;ve added a few <strong><em>quick tips</em></strong> that will allow you to do just that.</p>
<p>[Remember to <a href="http://feeds.feedburner.com/grindsmartnews"><strong>subscribe</strong></a> to our feed for up-to-date <strong>development</strong> articles and resources!﻿]</p>
<h2>Set Up An Experimental Area</h2>
<p>When you&#8217;re developing a theme or making core changes it&#8217;s essential to set up a workspace dedicated to experimenting and testing. It&#8217;ll save you tons of time and allow you to reduce errors. With an experimental area you&#8217;ll be able to pre-publish revisions, changes, and new themes.</p>
<p>This will give you enough space and time to thoroughly test and debug before releasing these changes so everyone can see. You can even use your same URL, just with a different directory. In example, <strong>YourSite.com/TestEnv</strong></p>
<h2>Use the Ubiquity Firefox Add-On</h2>
<p><a href="http://labs.mozilla.com/projects/ubiquity/" target="_blank">Ubiquity</a> is a cutting edge add-on for Firefox, developed by Mozilla Labs. Ubiquity allows you to search WordPress and PHP documentation in an instant using these two plugins: <a href="http://npattison.com/ubiquity/ubiq_php.html" target="_blank">PHP Search</a> and <a href="http://www.prelovac.com/vladimir/ubiquity-plugins/wp-codex-search" target="_blank">WP Codex Search</a>.</p>
<h2>Learn Your Functions</h2>
<p>By learning all of your WordPress functions you&#8217;re able to quickly make major changes to your WP theme layout. This will easily give you a major bucket of time and flexibility as well. You should start with the more common ones and work your way up from there. Before anything, take a look at your WordPress codex for further information and more.</p>
<h2>Don&#8217;t Mess With Your WordPress Files Till the End</h2>
<p>You know the files I&#8217;m talking about…and if you don&#8217;t, well here they are: index.php, sidebar.php, footer.php These files should be one of the last things you touch after you&#8217;ve finished coding your WordPress theme in CSS and HTML. You should always adjust cross-browser compatibility, test, test, and test some more, and anything else static files may need from you.</p>
<p>Delving into these core theme files before-hand will only set you back and take up a lot of your useful time. Now, that&#8217;s not to say there aren&#8217;t those special circumstances. After-all, nothing has been set in stone yet.</p>
<h2>Create Your Own Options Panel</h2>
<p>If you&#8217;ve ever purchased and uploaded a premium WordPress theme then you&#8217;re more than likely familiar with a theme&#8217;s Option Panel. These options will allow the user (you) to easily and quickly make minor (and a few major) changes without having to dive into any code. You&#8217;ll definitely streamline your future developmental needs and also the ones of anyone who purchase your theme (if you plan on selling).</p>
<p>Visit the following <a href="http://blog.themeforest.net/WordPress/create-an-options-page-for-your-WordPress-theme/">link</a> to learn how you can create your very own theme options page.</p>
<blockquote><p>What tips to <strong>streamline your development process</strong> have we missed? <strong>Please share with everyone</strong>, and add your own below!</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://grindsmart.com/2010/04/streamline-your-wordpress-development-process/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>20 Free WordPress Themes That Outdo The Rest</title>
		<link>http://grindsmart.com/2010/02/20-free-wordpress-themes-that-outdo-the-rest/</link>
		<comments>http://grindsmart.com/2010/02/20-free-wordpress-themes-that-outdo-the-rest/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 10:07:05 +0000</pubDate>
		<dc:creator>GrindSmart Editorial</dc:creator>
				<category><![CDATA[Popular]]></category>
		<category><![CDATA[Themes]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[freelance]]></category>
		<category><![CDATA[problogger]]></category>
		<category><![CDATA[theme]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://grindsmart.com/?p=300</guid>
		<description><![CDATA[
			
				
			
		
WordPress is a powerful blogging and content management platform. It&#8217;s one of those applications that&#8217;s just right for almost every job. And with this powerful application, it deserves that you &#8220;dress&#8221; it with the best themes you can find. But that can be hard to do if you&#8217;re on a budget and you&#8217;ve realized that ]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fgrindsmart.com%2F2010%2F02%2F20-free-wordpress-themes-that-outdo-the-rest%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fgrindsmart.com%2F2010%2F02%2F20-free-wordpress-themes-that-outdo-the-rest%2F&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><strong>WordPress</strong> is a powerful blogging and content management platform. It&#8217;s one of those applications that&#8217;s <em>just right</em> for almost every job. And with this powerful application, it deserves that you &#8220;dress&#8221; it with the best themes you can find. But that can be hard to do if you&#8217;re on a budget and you&#8217;ve realized that more than half of the &#8220;Free WordPress Themes&#8221; post truly suck.</p>
<p>This is <em>especially</em> why we&#8217;ve compiled this unique and <em>almost perfect</em> list of <strong>Free WordPress Themes</strong> that make the cut and can surely outdo the rest of not-so good themes that claim to be &#8220;premium&#8221;. Hope you enjoy! Please remember to <a href="http://feeds.feedburner.com/grindsmartnews"><strong>subscribe</strong></a> to our feed and leave us a comment with your thoughts!</p>
<h1>Compositio</h1>
<p><a href="http://www.woothemes.com/2009/11/bueno/"><img src="http://grindsmart.com/wp-content/uploads/2010/02/wptheme-1.jpg" alt="" /></a></p>
<p><a href="http://designdisease.com/blog/compositio-wordpress-theme/">Download</a></p>
<h1>Bueno</h1>
<p><a href="http://www.woothemes.com/2009/11/bueno/"><img src="http://grindsmart.com/wp-content/uploads/2010/02/wptheme-2.jpg" alt="" /></a></p>
<p><a href="http://www.woothemes.com/2009/11/bueno/">Download</a></p>
<h1>Aparatus</h1>
<p><a href="http://fearlessflyer.com/2010/01/get-some-aparatus-free-theme-for-wordpress/"><img src="http://grindsmart.com/wp-content/uploads/2010/02/wptheme-3.jpg" alt="" /></a></p>
<p><a href="http://fearlessflyer.com/2010/01/get-some-aparatus-free-theme-for-wordpress/">Download</a></p>
<h1>AppCloud</h1>
<p><a href="http://portfolio.icreativelabs.com/free-wordpress-e-commerce-theme-appcloud/"><img src="http://grindsmart.com/wp-content/uploads/2010/02/wptheme-4.jpg" alt="" /></a></p>
<p><a href="http://portfolio.icreativelabs.com/free-wordpress-e-commerce-theme-appcloud/">Download</a></p>
<h1>Good Theme</h1>
<p><a href="http://goodtheme.org/lead/"><img src="http://grindsmart.com/wp-content/uploads/2010/02/wptheme-5.jpg" alt="" /></a></p>
<p><a href="http://goodtheme.org/lead/">Download</a></p>
<h1>Obscure</h1>
<p><a href="http://wpcrunchy.com/2009/06/23/obscure-free-community-based-wordpress-theme/"><img src="http://grindsmart.com/wp-content/uploads/2010/02/wptheme-6.jpg" alt="" /></a></p>
<p><a href="http://wpcrunchy.com/2009/06/23/obscure-free-community-based-wordpress-theme/">Download</a></p>
<h1>Structure Theme</h1>
<p><a href="http://structuretheme.com/"><img src="http://grindsmart.com/wp-content/uploads/2010/02/wptheme-7.jpg" alt="" /></a></p>
<p><a href="http://structuretheme.com/">Download</a></p>
<h1>Gallery</h1>
<p><a href="http://www.smashingmagazine.com/2009/05/04/download-gallery-a-free-wordpress-theme/"><img src="http://grindsmart.com/wp-content/uploads/2010/02/wptheme-8.jpg" alt="" /></a></p>
<p><a href="http://www.smashingmagazine.com/2009/05/04/download-gallery-a-free-wordpress-theme/">Download</a></p>
<h1>Mayumi</h1>
<p><a href="http://www.paddsolutions.com/wordpress-theme-mayumi/"><img src="http://grindsmart.com/wp-content/uploads/2010/02/wptheme-9.jpg" alt="" /></a></p>
<p><a href="http://www.paddsolutions.com/wordpress-theme-mayumi/">Download</a></p>
<h1>deStyle</h1>
<p><a href="http://themeshift.com/destyle/"><img src="http://grindsmart.com/wp-content/uploads/2010/02/wptheme-10.jpg" alt="" /></a></p>
<p><a href="http://themeshift.com/destyle/">Download</a></p>
<h1>Simple Cart</h1>
<p><a href="http://www.chris-wallace.com/2009/07/17/simplecartjs-a-free-wp-e-commerce-thematic-child-theme/"><img src="http://grindsmart.com/wp-content/uploads/2010/02/wptheme-11.jpg" alt="" /></a></p>
<p><a href="http://www.chris-wallace.com/2009/07/17/simplecartjs-a-free-wp-e-commerce-thematic-child-theme/">Download</a></p>
<h1>WPStream</h1>
<p><a href="http://www.themes2wp.com/download-free-free-wordpress-theme-wpstream-free-download-wordpress-theme"><img src="http://grindsmart.com/wp-content/uploads/2010/02/wptheme-12.jpg" alt="" /></a></p>
<p><a href="http://www.themes2wp.com/download-free-free-wordpress-theme-wpstream-free-download-wordpress-theme">Download</a></p>
<h1>75Theme</h1>
<p><a href="http://www.press75.com/demos/seven-five/"><img src="http://grindsmart.com/wp-content/uploads/2010/02/wptheme-13.jpg" alt="" /></a></p>
<p><a href="http://www.press75.com/demos/seven-five/">Download</a></p>
<h1>LiveTwit</h1>
<p><a href="http://templatic.com/demo/livetwit/"><img src="http://grindsmart.com/wp-content/uploads/2010/02/wptheme-14.jpg" alt="" /></a></p>
<p><a href="http://templatic.com/demo/livetwit/">Download</a></p>
<h1>NewsPress</h1>
<p><a href="http://wpcrunchy.com/2009/10/19/free-magazine-news-style-wordpress-theme-newspress/"><img src="http://grindsmart.com/wp-content/uploads/2010/02/wptheme-15.jpg" alt="" /></a></p>
<p><a href="http://wpcrunchy.com/2009/10/19/free-magazine-news-style-wordpress-theme-newspress/">Download</a></p>
<h1>Smashing Multimedia</h1>
<p><a href="http://smashingmultimedia.sarah-neuber.de/"><img src="http://grindsmart.com/wp-content/uploads/2010/02/wptheme-16.jpg" alt="" /></a></p>
<p><a href="http://smashingmultimedia.sarah-neuber.de/">Download</a></p>
<h1>Satoshi</h1>
<p><a href="http://www.vooshthemes.com/wordpress-theme/satoshi-2/"><img src="http://grindsmart.com/wp-content/uploads/2010/02/wptheme-17.jpg" alt="" /></a></p>
<p><a href="http://www.vooshthemes.com/wordpress-theme/satoshi-2/">Download</a></p>
<h1>Blue Rooster</h1>
<p><a href="http://blue.fearlessflyer.com/"><img src="http://grindsmart.com/wp-content/uploads/2010/02/wptheme-18.jpg" alt="" /></a></p>
<p><a href="http://blue.fearlessflyer.com/">Download</a></p>
<h1>Gadgetizer Theme</h1>
<p><a href="http://designdisease.com/blog/gadgetizer-theme-released/"><img src="http://grindsmart.com/wp-content/uploads/2010/02/wptheme-19.jpg" alt="" /></a></p>
<p><a href="http://designdisease.com/blog/gadgetizer-theme-released/">Download</a></p>
<h1>BlueBubble</h1>
<p><a href="http://www.thomasveit.com/bluebubble-free-premium-wordpress-portfolio-theme/"><img src="http://grindsmart.com/wp-content/uploads/2010/02/wptheme-20.jpg" alt="" /></a></p>
<p><a href="http://www.thomasveit.com/bluebubble-free-premium-wordpress-portfolio-theme/">Download</a></p>
]]></content:encoded>
			<wfw:commentRss>http://grindsmart.com/2010/02/20-free-wordpress-themes-that-outdo-the-rest/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>WordPress: Giving Clients Access to Theme Options</title>
		<link>http://grindsmart.com/2009/12/wordpress-giving-clients-access-to-theme-options/</link>
		<comments>http://grindsmart.com/2009/12/wordpress-giving-clients-access-to-theme-options/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 20:01:19 +0000</pubDate>
		<dc:creator>GrindSmart Editorial</dc:creator>
				<category><![CDATA[Popular]]></category>
		<category><![CDATA[Themes]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[bloggin]]></category>
		<category><![CDATA[client]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programmer]]></category>
		<category><![CDATA[theme]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress theme]]></category>

		<guid isPermaLink="false">http://grindsmart.com/?p=138</guid>
		<description><![CDATA[
			
				
			
		
I am a huge fan of WordPress. Huge. More than just a blogging platform, WordPress has evolved into a content management tool that is ideal for many small to mid-sized websites. As a designer, WordPress gives me the tools to develop a website that clients can manage without needing my help (without having to call ]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fgrindsmart.com%2F2009%2F12%2Fwordpress-giving-clients-access-to-theme-options%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fgrindsmart.com%2F2009%2F12%2Fwordpress-giving-clients-access-to-theme-options%2F&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>I am a huge fan of <strong>WordPress</strong>. Huge. <strong>More than just a blogging platform</strong>, WordPress has evolved into a content management tool that is ideal for many small to mid-sized websites. As a designer, WordPress gives me the tools to develop a website that clients can manage without needing my help (without having to call on a programmer). It let’s me get back to being a designer as opposed to a site administrator. It empowers my clients to share content, while it frees me up to solve their design and communication problems.</p>
<p>Building a website using WordPress means creating a series of template files, css files, and a functions file which together form the website’s theme. These files are separate from content, therefore site owners can manipulate content via the site admin panel without interfering with design. I get to control the look, clients get to control the content. And usually, that’s about all the control I want to provide.</p>
<p>However, <strong>designing for the web</strong> has continually meant giving up more and more control over design. Its something every designer struggles with. We’ve learned to build flexible, adaptable designs to accommodate various users, various screen sizes, various browsers.</p>
<p>Is it time to <strong>start offering flexible templates that give control over our designs to our clients?</strong> Probably not. At least, not in most cases. Designers spend a significant amount of effort choosing colors, typefaces, and layouts that solve the unique communication problems of our clients based on research and experience. Chances are, we’ll keep these choices out of the hands of our clients for their own sake.</p>
<p>And yet there may come a time that we want or need to give them a bit more control. Oh, not colors or font size, but maybe — just maybe — there are some choices and options we want to allow them to control.</p>
<h1><strong>Enter WordPress Theme Options</strong></h1>
<p>Advanced WordPress theme developers offer Theme Options in their publicly released themes (some free, some premium) to add value — offering varying levels of customization and giving theme users presentation options. Designers of custom themes intended for a single organization can put this same functionality to use to provide additional flexibility and accessibility for our clients.</p>
<p>There are a number of tutorials available online describing how to set up a basic options page for a theme (see Additional Resources below for a list), so I will not attempt to recreate those tutorials here. What I want to explore are the options that can serve designers developing a custom theme for a private entity (not a publicly released theme). The code below is built upon the framework developed by Themeforest in its tutorial <a href="http://blog.themeforest.net/wordpress/create-an-options-page-for-your-wordpress-theme/">&#8220;Create an Options Page for Your Wordpress Theme&#8221;</a>, which you may want to reference in order to fully grasp the following ideas.</p>
<p>Moving right along, here are some ideas for how to use the Theme Options page on custom sites to add value for your clients.</p>
<h2><strong>The Footer</strong></h2>
<p>One easy way to offer some control is to give clients access to the footer content without having to edit the actual template page, and its a simple enough task to complete. Create the option to display on the Theme Options page in the functions.php file (again, see <a href="http://blog.themeforest.net/wordpress/create-an-options-page-for-your-wordpress-theme/">this tutorial</a> for the basics):</p>
<pre class="brush: php;">array( &quot;name&quot; =&gt; &quot;Edit the Footer&quot;,
&quot;desc&quot; =&gt; &quot;Use this textbox to edit the footer content.&quot;,
&quot;id&quot; =&gt; $shortname.&quot;_footer_display&quot;,
&quot;type&quot; =&gt; &quot;textarea&quot;,
&quot;std&quot; =&gt; &quot;&quot;),</pre>
<p>Assuming my $shortname is &#8220;bonsai&#8221;, I would add the following code in my footer.php template file where the content ought to go:</p>
<pre class="brush: php;">?php echo $bonsai_footer_stuff; ?</pre>
<p>I&#8217;d end up with something like this on my Options page:</p>
<p class="showcase"><img src="http://grindsmart.com/wp-content/uploads/2009/12/img-002.GIF" alt="" width="580" height="234" /></p>
<p>But this means that my client will have access to elements on the footer that ought not be touched. So, perhaps I don’t want to give the client access to the main footer content. Instead, I want to give him the ability to add an additional line of content to the footer.</p>
<p>This time, I will use an additional array to offer a checkbox which would determine whether or not to display this additional content:</p>
<pre class="brush: php;">array(  &quot;name&quot; =&gt; &quot;Show Footer?&quot;,
&quot;desc&quot; =&gt; &quot;Check this box if you want to show the additional footer content below.&quot;,
&quot;id&quot; =&gt; $shortname.&quot;_footer_show&quot;,
&quot;type&quot; =&gt; &quot;checkbox&quot;,
&quot;std&quot; =&gt; &quot;false&quot;),</pre>
<pre class="brush: php;">array( &quot;name&quot; =&gt; &quot;Footer Content&quot;,
&quot;desc&quot; =&gt; &quot;Use this textbox to add additional footer content.&quot;,
&quot;id&quot; =&gt; $shortname.&quot;_footer_content&quot;,
&quot;type&quot; =&gt; &quot;textarea&quot;,
&quot;std&quot; =&gt; &quot;&quot;),</pre>
<p>In my<strong> footer.php</strong> template, I’d perform a simple test (thank you forthelose.org for this code):</p>
<pre class="brush: php;">?if ($bonsai_footer_show == &quot;false&quot;) { ?
!--DO NOTHING--&amp;gt;
? } else { ?&amp;gt;
?php echo $bonsai_footer_content; ?
? } ?</pre>
<p>The final result in the <strong>Theme Options page</strong> would look like this:</p>
<p class="showcase"><img src="http://grindsmart.com/wp-content/uploads/2009/12/img-003.gif" alt="" width="580" height="297" /></p>
<h2><strong>Post Control</strong></h2>
<p>Another bit of control you can offer your client is the <strong>ability to determine the number of posts featured on the home page</strong>. Maybe the original design only called for two featured posts, but the client is generating some exceptional content and wants to offer more upfront. In some cases, it might be a good idea to let the client manage the number of featured posts (as long as you’re design is set up to accommodate it).</p>
<p class="showcase"><img src="http://grindsmart.com/wp-content/uploads/2009/12/img-004.gif" alt="" width="580" height="73" /></p>
<p>Here’s the array:</p>
<pre class="brush: php;">array(  &quot;name&quot; =&gt; &quot;Number of Featured Posts&quot;,
&quot;desc&quot; =&gt; &quot;Enter the number of posts to feature on the home page.&quot;,
&quot;id&quot; =&gt; $shortname.&quot;_featured_posts&quot;,
&quot;type&quot; =&gt; &quot;text&quot;,
&quot;std&quot; =&gt; &quot;2&quot;),</pre>
<p>Next up, you need to update the code in your<strong> index.php</strong> from this:</p>
<pre class="brush: php;">?php query_posts(&quot;showposts=2&amp;amp;category_name=headline&quot;); ?&gt;</pre>
<p>to this (based on code from <a href="http://aext.net/2009/10/wordpress-theme-design-with-options-adminstration/">aext.net</a>):</p>
<pre class="brush: php;">?php
$fpnum = get_option('bonsai_featured_posts');
query_posts(&quot;showposts=$fpnum&amp;amp;category_name=feature&quot;); ?</pre>
<h2><strong>Navigation Menu</strong></h2>
<p>If you’re client has been busy adding pages, he may need control over whether or not those pages ought to appear in the navigation menu. Here’s a quick an easy solution to give control to the client.</p>
<p class="showcase"><img src="http://grindsmart.com/wp-content/uploads/2009/12/img-005.gif" alt="" width="581" height="75" /></p>
<p>First, create the array:</p>
<pre class="brush: php;">array(  &quot;name&quot; =&gt; &quot;Number of Featured Posts&quot;,
&quot;desc&quot; =&gt; &quot;Enter the number of posts to feature on the home page.&quot;,
&quot;id&quot; =&gt; $shortname.&quot;_featured_posts&quot;,
&quot;type&quot; =&gt; &quot;text&quot;,
&quot;std&quot; =&gt; &quot;380,384&quot;),</pre>
<p>Next change the following code:</p>
<pre class="brush: php;">?php wp_list_pages('exclude=380,384'); ?</pre>
<p>to this:</p>
<pre class="brush: php;">?php wp_list_pages(&quot;exclude=$bonsai_nav_exclude&quot;); ?</pre>
<p>With this code you can control which pages to exclude, the only caveat is your client will need to understand how to get the Page ID number.</p>
<p>Of course, this is only the beginning. You could actually develop a Theme Page that uses a multi-select or a set of checkboxes that lists all site pages for your client to choose from. If you want to dig deeper into using multi-selects or sets of checkboxes, <a href="http://www.aquoid.com/news/tutorials/wordpress-theme-options/wp-theme-options-getting-started/">this tutorial from aquoid.com</a> promises to provide you with all the details if you’re ready to dig in a bit deeper.</p>
<h2><strong>Variety is the Spice of Life</strong></h2>
<p>Do you want to offer a little variety to your client? Give him the ability to change the header graphic for the site. You could allow a client to choose which header graphic to display for different holidays, seasons, or when running a special or a sale.</p>
<p>To keep things simple, let’s assume I want to have a different header for each season plus a default header image. What I need to do is create a dropdown menu with the different choices:</p>
<pre class="brush: php;">array(    “name” =&gt; “Header Image”,
“id” =&gt; $shortname.”_header”,
“type” =&gt; “select”,
“std” =&gt; “Default”,
“options” =&gt; array(”Default”, “Winter”, “Spring”, “Summer”, “Fall”)),</pre>
<p>Then, I need to create artwork for each option. In this case I have created Default.gif, Winter.gif, Spring.gif, Summer.gif, and Fall.gif and I have uploaded these files to my theme’s images folder.</p>
<p class="showcase"><img src="http://grindsmart.com/wp-content/uploads/2009/12/img-006.gif" alt="" /></p>
<p>So far so good.</p>
<p>The problem now is that I control the header graphic as a background image via my stylesheet. What I need to do is use a dynamic stylesheet in conjunction with my Theme Options page to open up the control over the design. The following solution is based on the work by <a href="http://clark-technet.com/2009/09/wordpress-theme-dev-tip-dynamic-stylesheets">Jeremy Clark</a>.</p>
<p>For simplicity, I have created a stylesheet just for my header style. Instead of calling it headerstyle.css though, I name it headerstyle.php. Here’s what it looks like:</p>
<pre class="brush: php;">?php
header('Content-type: text/css');
header(&quot;Cache-Control: must-revalidate&quot;);
$offset = 72000 ;
$ExpStr = &quot;Expires: &quot; . gmdate(&quot;D, d M Y H:i:s&quot;, time() + $offset) . &quot; GMT&quot;;
header($ExpStr);
$css = $_GET[&quot;css&quot;];
$css = urldecode($css);
$s = explode(&quot;|&quot;, $css);
$bonsai_header=$s[6];
echo CSS</pre>
<pre class="brush: css;">#header {
width:760px;
height:121px;
padding: 0 0 0 20px;
overflow:visible;
background: #fff url(./images/{$bonsai_header}.gif) no-repeat;
}</pre>
<pre class="brush: css;">CSS;
break;</pre>
<p><strong>There are a couple of things that are worth mentioning in the code above.</strong></p>
<p>Look at the line that reads:</p>
<pre class="brush: php;">$bonsai_header=$s[6];</pre>
<p>The number 6 refers to the <strong>sixth option in my Theme Options page</strong> (the first item is 0, the second item is 1, etc). You need to change that to the appropriate value.</p>
<p class="showcase"><img src="http://grindsmart.com/wp-content/uploads/2009/12/img-007.gif" alt="" /></p>
<p>Also, take a look at my #header rule, which should look pretty familiar. In the background property, the url has been changed from:</p>
<pre class="brush: css;">background: #fff url(images/Default.gif) no-repeat;</pre>
<p>to this:</p>
<pre class="brush: css;">background: #fff url(./images/{$bonsai_header}.gif) no-repeat;</pre>
<p>Basically, I updated the url to include the initial ./ before images/ and I used the <strong>$shortcode_id</strong> (in this case $bonsai_header) to replace the name of the file.</p>
<p>The last thing I need to do is create a link to my headerstyle.php stylesheet like so:</p>
<pre class="brush: css;">&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; media=&quot;screen&quot; href=&quot;&quot;&gt;;?php bloginfo('template_directory') ?/headerstyle.php?css=?php echo $css</pre>
<p>Now my header will change based on the selected option.</p>
<h1><strong>Continue Exploring Theme Options</strong></h1>
<p>Well, now that you’ve gotten a taste of how using a Theme Options page can benefit custom theme development every bit as much as it does for public themes, I hope you’re ready to start cooking up your own ideas and put this to use for your clients. Below are a list of resources for exploring the possibilities of theme options.</p>
<h2><strong>Getting Started with Theme Options</strong></h2>
<ul>
<li><a href="http://blog.themeforest.net/wordpress/create-an-options-page-for-your-wordpress-theme/">Create and Options Page for Your Wordpress Theme</a></li>
<li><a href="http://forthelose.org/how-to-create-a-theme-options-page-for-your-wordpress-theme">How to create and Options Page for Your Wordpress </a><a href="http://forthelose.org/how-to-create-a-theme-options-page-for-your-wordpress-theme">Theme</a></li>
<li><a href="http://wpshout.com/create-an-awesome-wordpress-theme-options-page-part-1/">Create An Awesome WordPress Theme Options Page</a></li>
</ul>
<h2><strong>Taking it to the next level</strong></h2>
<ul>
<li><a href="http://aext.net/2009/10/wordpress-theme-design-with-options-adminstration/">Wordpress Theme Design with Options Administration</a></li>
<li><a href="http://clark-technet.com/2008/09/wordpress-theme-options-framework">Wordpress Theme Options Framework</a></li>
<li><a href="http://split-visionz.net/2009/wordpress-theme-options-framework-updated/">Wordpress Theme Options Framework Updated</a></li>
<li><a href="http://split-visionz.net/2009/wordpress-theme-options-framework-updated/">Wordpress Theme Dev Tip – Dynamic </a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://grindsmart.com/2009/12/wordpress-giving-clients-access-to-theme-options/feed/</wfw:commentRss>
		<slash:comments>42</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced) (user agent is rejected)
Database Caching 9/15 queries in 0.030 seconds using disk

Served from: grindsmart.com @ 2010-09-08 15:24:20 -->