<?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>Pro Theme Design &#187; How To</title>
	<atom:link href="http://prothemedesign.com/category/how-to/feed/" rel="self" type="application/rss+xml" />
	<link>http://prothemedesign.com</link>
	<description>Premium WordPress Themes</description>
	<lastBuildDate>Sun, 22 Apr 2012 08:02:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Customizing Nominate Article Fields</title>
		<link>http://prothemedesign.com/how-to/customizing-nominate-article-fields/</link>
		<comments>http://prothemedesign.com/how-to/customizing-nominate-article-fields/#comments</comments>
		<pubDate>Sun, 03 Jul 2011 19:59:51 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[How To]]></category>

		<guid isPermaLink="false">http://prothemedesign.com/?p=409</guid>
		<description><![CDATA[A Nominate user recently contacted me asking how to modify the theme so that they could have custom fields in the post submission process. Initially I was skeptical but after some thought I realized this could be quite a powerful addition to the arsenal and so I worked out how to add a filter to [...]]]></description>
			<content:encoded><![CDATA[<p id="lead-excerpt">A <a href="http://prothemedesign.com/themes/nominate-for-wordpress/">Nominate</a> user recently contacted me asking how to modify the theme so that they could have custom fields in the post submission process. Initially I was skeptical but after some thought I realized this could be quite a powerful addition to the arsenal and so I worked out how to add a filter to the theme to allow you to include your own settings.</p>
<p>In this example I will show you how to add an image url into the theme and then display the image in the submitted post.</p>
<p>First things first we need to add a functions.php to the Nominate custom directory. You can read <a href="http://prothemedesign.com/how-to/customising-pro-theme-design-child-themes/">how to customise child themes (including Nominate) here</a>. The reason for this, as opposed to modifying the built in functions.php, is that when it&#8217;s time to update the theme &#8211; you won&#8217;t lose your changes.</p>
<p>So once you have your custom functions.php, you can start adding code.</p>
<p>The following code will add custom fields to the submit post form. I have added comments that explain the different settings. If you&#8217;re familiar with WordPress custom theme functions it should be very obvious what is happening:</p>
<p class="info">NOTE: You need to make sure this code is wrapped in php tags or it will not work.</p>
<pre>
function add_customSubmitFields ($fields) {

	// set properties of value to store. You can create as many of these as you like
	// name = the variable name (don't use spaces or punctuation besides _ or -)
	// label = the value to use on the submit post form
	$fields[] = array (
		'name' => 'test_image',
		'label' => 'Custom Image',
	);

	return $fields;

}

add_filter ('bm_submitFields', 'add_customSubmitFields');
</pre>
<p>Once you have added this you will have a working form. Couldn&#8217;t be simpler right? Next up, you need to display the content somehow. Since this is an image url I will display it if the value has been set. Again &#8211; there&#8217;s a lot of properties set that explains how things work:</p>
<p class="info">NOTE: Be aware of data sanitization. You should always make sure user submitted data is cleaned up before it is used. In this case I am using WordPress built in function <strong>esc_url</strong> to make sure the image url is ok</p>
<pre>
function insert_customSubmitFields () {

	// get the image value using the custom variable mentioned before
	$image = bm_getSubmittedField ('test_image');

	// make sure the image is set so that I don't try to display something htat doesn't exist
	if (!empty ($image)) {
		// display image (use esc_url to make sure the url is safe!)
		echo '&lt;img src="' . esc_url ($image) . '" />';
	}

}

add_action ('bm_contentAfter', 'insert_customSubmitFields');
</pre>
<p>To save you some time you can <a href="http://prothemedesign.com/files/downloads/nominate-custom-functions.zip">download the file created for this tutorial here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://prothemedesign.com/how-to/customizing-nominate-article-fields/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Customise the Nominate Theme Homepage</title>
		<link>http://prothemedesign.com/how-to/how-to-customise-the-nominate-theme-homepage/</link>
		<comments>http://prothemedesign.com/how-to/how-to-customise-the-nominate-theme-homepage/#comments</comments>
		<pubDate>Thu, 24 Mar 2011 21:42:28 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[How To]]></category>

		<guid isPermaLink="false">http://prothemedesign.com/?p=374</guid>
		<description><![CDATA[Nominate is a theme that get&#8217;s a lot of loving here at Pro Theme Design. The latest update introduced the ability to modify the homepage layout. Since not many people know about the feature I thought I would create a quick video showing it in action. Besides this Nominate has also had a number of [...]]]></description>
			<content:encoded><![CDATA[<p id="lead-excerpt"><a href="http://prothemedesign.com/themes/nominate-for-wordpress/">Nominate</a> is a theme that get&#8217;s a lot of loving here at Pro Theme Design. The latest update introduced the ability to modify the homepage layout. Since not many people know about the feature I thought I would create a quick video showing it in action.</p>
<p><iframe title="YouTube video player" width="700" height="424" src="http://www.youtube.com/embed/_TsFsUvkGro" frameborder="0" allowfullscreen></iframe></p>
<p>Besides this Nominate has also had a number of bug fixes, and a couple of small speed improvements, so if you like the look of it now is a great time to grab a copy.</p>
<p>If there&#8217;s anything else to do with Pro Theme Design themes that you&#8217;d like to see video tutorials for then please do let me know in the comments and I&#8217;ll see what I can do.</p>
]]></content:encoded>
			<wfw:commentRss>http://prothemedesign.com/how-to/how-to-customise-the-nominate-theme-homepage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Customising Pro Theme Design Child Themes</title>
		<link>http://prothemedesign.com/how-to/customising-pro-theme-design-child-themes/</link>
		<comments>http://prothemedesign.com/how-to/customising-pro-theme-design-child-themes/#comments</comments>
		<pubDate>Tue, 14 Dec 2010 07:18:59 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[How To]]></category>

		<guid isPermaLink="false">http://prothemedesign.com/?p=356</guid>
		<description><![CDATA[The biggest problems with WordPress child themes is that you can&#8217;t create children of them. This makes customising them more difficult. This post will explain how I solved this issue with the Elemental WordPress Theme Framework. Unfortunately I can&#8217;t control all themes, but for those I can control I have built in a simple system [...]]]></description>
			<content:encoded><![CDATA[<p id="lead-excerpt">The biggest problems with WordPress child themes is that you can&#8217;t create children of them. This makes customising them more difficult. This post will explain how I solved this issue with the Elemental WordPress Theme Framework.</p>
<p>Unfortunately I can&#8217;t control all themes, but for those I can control I have built in a simple system for adding your own stylesheets to child themes to allow you to edit things as you wish.</p>
<h3>Create Your Own Custom Site Styles</h3>
<p>If you have Nominate already then you can see this skinning system in place. If you open up the theme directory you will see there is a custom directory &#8211; this contains a series of css files with the name &#8216;skin_XXX.css&#8217; &#8211; these are what show up in the admin panel under &#8216;Site Style&#8217;.</p>
<p>Below is a very quick tutorial explaining how to customise Nominate without editing the core theme files.</p>
<p>Creating a new Site Style is a very simple process.</p>
<ol>
<li>Make sure that you have your theme up and running. In this case you will have installed Elemental and Nominate in the<em> wp-content/themes directory</em></li>
<li>If it doesn&#8217;t exist already create a &#8216;custom&#8217; directory in the theme folder. For Nominate this should already exist.</li>
<li>Create a new css file &#8211; give it any name you like but make sure to prefix it with &#8216;<em>skin_</em>&#8216;</li>
<li>Now when you load the theme admin panel you will be able to select the site style under the Site Styles heading in the &#8216;Basic Blog Settings&#8217; panel. The file will show up with the &#8216;site_&#8217; and &#8216;.css&#8217; part of the filename removed to make it look nice.</li>
<li>Once the style is selected you can edit the css file as much as you like and all changes will be applied to the theme.</li>
</ol>
<p>It&#8217;s that simple! A basic Site Style will take you no more than 5 minutes to create, and you can have a custom design in no time.</p>
<p>This system will work with all Elemental based child themes, which (at the time of writing) means <a href="http://prothemedesign.com/themes/elemental/">Elemental</a>, <a href="http://prothemedesign.com/themes/thelocal/">The Local</a>, and <a href="http://prothemedesign.com/themes/nominate-for-wordpress/">Nominate</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://prothemedesign.com/how-to/customising-pro-theme-design-child-themes/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Customizing Mimbo Pro&#8217;s Category Summary Display</title>
		<link>http://prothemedesign.com/how-to/customizing-mimbo-pros-category-summary-display/</link>
		<comments>http://prothemedesign.com/how-to/customizing-mimbo-pros-category-summary-display/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 22:49:23 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[How To]]></category>

		<guid isPermaLink="false">http://prothemedesign.com/?p=303</guid>
		<description><![CDATA[One of the most frequent questions we get asked is how to customize the order of the homepage category summaries on Mimbo Pro. With the power of child themes and hooks this is actually incredibly straight forward. It takes just 5 lines of code to change your homepage order.]]></description>
			<content:encoded><![CDATA[<div id="lead-excerpt">One of the most frequent questions we get asked is how to customize the order of the homepage category summaries on Mimbo Pro. With the power of child themes and hooks this is actually incredibly straight forward.</div>
<p>It takes just 5 lines of code, placed in your functions.php file, to change your homepage order.</p>
<p><code>function bm_alterCategoryOrder($settings) {<br />
$settings['category'] = array(1,2,3);<br />
return $settings;<br />
}<br />
add_filter('bm_categorySummaryDetails','bm_alterCategoryOrder');</code></p>
<p>All you have to do to set the different category orders is swap the 1,2,3 above for a comma separated list of category ids.</p>
]]></content:encoded>
			<wfw:commentRss>http://prothemedesign.com/how-to/customizing-mimbo-pros-category-summary-display/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Creating Custom WordPress Widgets</title>
		<link>http://prothemedesign.com/how-to/creating-custom-wordpress-widgets/</link>
		<comments>http://prothemedesign.com/how-to/creating-custom-wordpress-widgets/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 19:40:20 +0000</pubDate>
		<dc:creator>darren</dc:creator>
				<category><![CDATA[How To]]></category>

		<guid isPermaLink="false">http://prothemedesign.com/?p=290</guid>
		<description><![CDATA[With each new version of WordPress, the argument whether or not it qualifies as a CMS gets a little quieter.  In the WordPress core we have widgets, custom fields, custom taxonomies, and with version 2.9, an expansion of <a href="http://codex.wordpress.org/Function_Reference/get_post_type">get_post_type</a>. Add a few plugins and all sorts of <a href="http://www.kevinleary.net/6-ways-to-create-custom-write-panels-in-wordpress/">post-types and custom write panels</a> become a reality. ]]></description>
			<content:encoded><![CDATA[<p>With each new version of WordPress, the argument whether or not it qualifies as a CMS gets a little quieter.  In the WordPress core we have widgets, custom fields, custom taxonomies, and with version 2.9, an expansion of <a href="http://codex.wordpress.org/Function_Reference/get_post_type">get_post_type</a>. Add a few plugins and all sorts of <a href="http://www.kevinleary.net/6-ways-to-create-custom-write-panels-in-wordpress/">post-types and custom write panels</a> become a reality. </p>
<p>All this functionality is great so long as you, the developer, implement it in a way that is tough to break. Because once in the hands of the client, anything goes.</p>
<p>Then there is the issue of layout. For clients, moving content from one column to the other can be a technical hurdle, particularly for dynamic sites which rearrange content frequently to satisfy advertisers, audience demands, and so on. Default drag-and-drop widgets are a great part of our arsenal, but adding <strong>custom</strong> widgets can really make life simpler for both developer and client.</p>
<h2>Example Custom Widgets</h2>
<p>In the quest to give more control to end users, <a href="http://prothemedesign.com">Pro Theme</a> has been experimenting with more custom widgets. Check out the demo for themes like <a href="http://demo.prothemedesign.com/wordpress/thelocal">The Local</a> and <a href="http://demo.prothemedesign.com/wordpress/elemental">Elemental</a> for examples. </p>
<p><a href="http://demo.prothemedesign.com/wordpress/thelocal"><img class="blogpic aligncenter" src="http://darrenhoyt.com/images/blog/thelocal.png" alt="the local theme" /></a></p>
<p>Below are widgets we&#8217;ve started including with most themes, including <a href="http://demo.prothemedesign.com/wordpress/mimbo-pro">Mimbo Pro</a>:</p>
<ul>
<li><strong>Google Adsense.</strong> In the control panel you enter your Adsense ID and the widgets display ads accordingly. Works in any of the <a href="https://www.google.com/adsense/static/en_US/AdFormats.html?hl=en_US&#038;gsessionid=1nqtm0jf_zeIJPX1ABVGpw">standard block sizes</a>.</li>
<li><strong>Community Tweets.</strong> Aggregates Twitter activity according to location latitude/longitude. Contains fields for <em class="hilite">Number of Tweets</em> and <em class="hilite">Mile Radius</em>.</li>
<li><strong>Latest Tweets.</strong> Contains fields for <em class="hilite">Username</em> and <em class="hilite">Number of Tweets</em></li>
<li><strong>Post Author Details.</strong> Contains author avatar, date and comments feed. </li>
<li><strong>Upcoming Posts.</strong> Displays a list of future-dated posts.</li>
<li><strong>More from this Author.</strong> For single-post pages. Displays five headlines from the same author.</li>
<li><strong>More from this Category.</strong> For single-post pages. Displays five headlines from the same category.</li>
<li><strong>Print Preview.</strong> Uses javascript to render the page print-friendly and free of images.</li>
<li><strong>Share This.</strong> Lets you post the current page to Twitter, StumbleUpon, Digg, Delicious and Facebook.</li>
<li><strong>YouTube.</strong> Displays a featured video with fields for <em class="hilite">Embed Code</em> and <em class="hilite">Description</em></li>
<li><strong>Map Your Location.</strong> A Google Maps widget with fields for <em class="hilite">Location</em>, <em class="hilite">Zoom Amount</em> and <em class="hilite">Type of Map View (Roadmap, Satellite or Terrain).</em></li>
<li><strong>Popular Posts.</strong> Displays five headlines of most-commented posts.</li>
<li><strong>Subscribe to Feed.</strong> Includes an RSS icon and feed link.</li>
</ul>
<p>In the case of <a href="http://prothemedesign.com/themes/thelocal/">The Local</a>, the entire homepage is 90% widgetized, with four columns to configure. We&#8217;ve gotten tons of great feedback from users who rely on positioning Google Adsense blocks and want to adjust their content accordingly. Not to mention writers in the hyperlocal space who write unique content, but also rely on aggregating from other sites and social media sources.</p>
<h2>How Do Custom Widgets Work</h2>
<p>At the simplest possible level, custom widgets are implemented by 1) creating a class, and 2) registering a new widget. Forget about functionality <strong>within</strong> the widget for a moment and look at the basic setup which you would paste inside <em class="hilite">functions.php</em>:</p>
<pre name="code" class="php"><code>
class My_Widget extends WP_Widget {
	function My_Widget() {
		parent::WP_Widget(false, 'Our Test Widget');
	}

	function form($instance) {
		// outputs the options form on admin
	}

	function update($new_instance, $old_instance) {
		// processes widget options to be saved
		return $new_instance;
	}

	function widget($args, $instance) {
		// outputs the content of the widget
	}

}
register_widget('My_Widget');
</code>
</pre>
<p>That&#8217;s it. We can now visit our widgets panel to confirm:</p>
<p><img src="http://darrenhoyt.com/images/blog/customwidget.png" alt="custom widget" class="blogpic aligncenter" /></p>
<p>Adding editable <strong>functionality</strong> into our widget  is another story. Using the &#8220;Popular Posts&#8221; widget as an example, my partner <a href="http://www.binarymoon.co.uk/">Ben Gillbanks</a> will walk us through creating the rest.</p>
<h2>Creating a &#8220;Popular Posts&#8221; Widget</h2>
<p>Firstly we have to name the widget class. I prefix my functions and classes with <em>bm_</em> (<a href="http://www.binarymoon.co.uk/">Binary Moon</a>) as it means there will never be any clashes with other functions and plugins. We can then name the widget in the <em>constructor</em>, which is the first function, and it should have the same name as the class. This will be called when the class is first created and it defines the name you see in the widget editor.</p>
<p>Next up, I create the <em>last method</em> which is a form function which defines what data can be editable within the widget. In this case, it&#8217;s simply the title of the widget to be displayed on the blog. The <em>update method</em> can often remain as it is, although you may want to do some data validation (make sure the data input is safe/ allowed). </p>
<p>Then finally, the <em>widget method</em>. This is where the widget itself is displayed. You&#8217;ll notice I am actually passing the arguments to another function that is elsewhere in the theme. The reason I do this is because I like to split the display out separately so that I can use the function directly in the theme <em>without</em> widgets as well.</p>
<p>Notice the <em>$args</em> parameter in the widget method. These args are actually the arguments you pass to the register sidebar method, before_widget, after_widget etc. You can read more about these and creating custom widgets on the <a href="http://codex.wordpress.org/Widgets_API">WordPress Codex Widget API</a> page. </p>
<p>Here is the final code:</p>
<pre name="code" class="php"><code>
&lt;?php
class bm_widget_popularPosts extends WP_Widget {

	function bm_widget_popularPosts() {
		parent::WP_Widget(false, 'Popular Posts');
	}

	function widget($args, $instance) {
		$args['title'] = $instance['title'];
		bm_popularPosts($args);
	}

	function update($new_instance, $old_instance) {
		return $new_instance;
	}

	function form($instance) {
		$title = esc_attr($instance['title']);
?>
		&lt;p>&lt;label for="&lt;?php echo $this->get_field_id('title'); ?>">&lt;?php _e('Title:'); ?> &lt;input class="widefat" id="&lt;?php echo $this->get_field_id('title'); ?>" name="&lt;?php echo $this->get_field_name('title'); ?>" type="text" value="&lt;?php echo $title; ?>" />&lt;/label>&lt;/p>
&lt;?php
	}

}

function bm_popularPosts($args = array(), $displayComments = TRUE, $interval = '') {

	global $wpdb;

	$postCount = 5;

	$request = 'SELECT *
		FROM ' . $wpdb->posts . '
		WHERE ';

	if ($interval != '') {
		$request .= 'post_date>DATE_SUB(NOW(), ' . $interval . ') ';
	}

	$request .= 'post_status="publish"
			AND comment_count > 0
		ORDER BY comment_count DESC LIMIT 0, ' . $postCount;

	$posts = $wpdb->get_results($request);

	if (count($posts) >= 1) {

		if (!isset($args['title']) {
			$args['title'] = 'Popular Posts';
		}

		foreach ($posts as $post) {
			wp_cache_add($post->ID, $post, 'posts');
			$popularPosts[] = array(
				'title' => stripslashes($post->post_title),
				'url' => get_permalink($post->ID),
				'comment_count' => $post->comment_count,
			);
		}

		echo $args['before_widget'] . $args['before_title'] . $args['title'] . $args['after_title'];
?>

		&lt;ol>
&lt;?php
		foreach ($popularPosts as $post) {
?>
			&lt;li>
				&lt;a href="&lt;?php echo $post['url'];?>">&lt;?php echo $post['title']; ?>&lt;/a>
&lt;?php
			if ($displayComments) {
?>
			(&lt;?php echo $post['comment_count'] . ' ' . __('comments', BM_THEMENAME); ?>)
&lt;?php
			}
?>
			&lt;/li>
&lt;?php
		}
?>
		&lt;/ol>

&lt;?php
		echo $args['after_widget'];
	}
}
?>
</code>
</pre>
<h2>Further Uses for Custom Widgets?</h2>
<p>Clients frequently need special notifications and other dynamic bits to display on their site with minimal fuss. What other content that&#8217;s frequently handled via plugins would make a great custom widget?</p>
]]></content:encoded>
			<wfw:commentRss>http://prothemedesign.com/how-to/creating-custom-wordpress-widgets/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Elemental Tip: Remove the Pro Theme Design Footer Link</title>
		<link>http://prothemedesign.com/how-to/elemental-quick-tip-remove-the-pro-theme-design-footer-link/</link>
		<comments>http://prothemedesign.com/how-to/elemental-quick-tip-remove-the-pro-theme-design-footer-link/#comments</comments>
		<pubDate>Sat, 12 Dec 2009 22:51:37 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[How To]]></category>

		<guid isPermaLink="false">http://prothemedesign.com/?p=291</guid>
		<description><![CDATA[By default <a href="http://prothemedesign.com/themes/elemental/">Elemental</a> (and it's <a href="http://prothemedesign.com/themes/thelocal/">child themes such as The Local</a>) come with a link to Pro Theme Design in the footer. Obviously we'd love it if you kept this in place, but it's by no means a requirement at all.]]></description>
			<content:encoded><![CDATA[<p class="info">A quick note &#8211; this tutorial is no longer relevant. <a href="http://prothemedesign.com/themes/elemental/">The Elemental Framework</a> now has the functionality to remove footer links built into the theme.</p>
<p>By default <a href="http://prothemedesign.com/themes/elemental/">Elemental</a> (and it&#8217;s <a href="http://prothemedesign.com/themes/thelocal/">child themes such as The Local</a>) come with a link to Pro Theme Design in the footer. Obviously we&#8217;d love it if you kept this in place, but it&#8217;s by no means a requirement at all.</p>
<p>If you open up footer.php in Elemental you will see that there is no reference to Pro Theme Design, however we&#8217;re not trying to hide the links, what we&#8217;re trying to do is make the theme as flexible as possible, and so you can easily edit the links using a child theme and a simple filter in your child themes functions.php file (<a href="http://prothemedesign.com/support/general-wordpress-help/">more info on child themes here</a>).</p>
<h2>Swap the credit link for a &#8220;Powered by WordPress link&#8221;</h2>
<p><code><br />
function changeFooterLinks($footerLinks) {<br />
	$footerLinks[1] = 'Powered by &lt;a href="http://wordpress.org">WordPress</a>';<br />
	return $footerLinks;<br />
}<br />
add_filter('bm_footerContent', 'changeFooterLinks');<br />
</code></p>
<h2>Remove the credit entirely</h2>
<p><code><br />
function changeFooterLinks($footerLinks) {<br />
	unset($footerLinks[1]);<br />
	return $footerLinks;<br />
}<br />
add_filter('bm_footerContent', 'changeFooterLinks');<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://prothemedesign.com/how-to/elemental-quick-tip-remove-the-pro-theme-design-footer-link/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Modifying Mimbo Pro 1: Custom Skins</title>
		<link>http://prothemedesign.com/how-to/modifying-mimbo-pro-1-custom-skins/</link>
		<comments>http://prothemedesign.com/how-to/modifying-mimbo-pro-1-custom-skins/#comments</comments>
		<pubDate>Tue, 10 Jun 2008 18:07:34 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[customisation]]></category>
		<category><![CDATA[mimbo pro]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://prothemedesign.com/?p=54</guid>
		<description><![CDATA[Mimbo Pro has been out for a couple of months now and we have been seeing some common modification requests pop up in support and on the forum. So, I thought I&#8217;d write a few posts on modifying Mimbo Pro. Custom Skins Custom Skins are the colour schemes you get with the theme. The default [...]]]></description>
			<content:encoded><![CDATA[<p>Mimbo Pro has been out for a couple of months now and we have been seeing some common modification requests pop up in support and on the forum. So, I thought I&#8217;d write a few posts on modifying Mimbo Pro.</p>
<p><img src="http://prothemedesign.com/wp-content/uploads/2008/06/mimboskins.jpg" alt="Mimbo Skins Collage" title="mimboskins" width="570" height="200" class="alignnone size-full wp-image-55" /></p>
<h3>Custom Skins</h3>
<p>Custom Skins are the colour schemes you get with the theme. The default theme is blue but, from the control panel, you can also select a red or green scheme. We&#8217;ve had a number of people express interest in creating their own skins so here&#8217;s how.</p>
<ol>
<li>Navigate to the wp-content/themes/mimboPro/skins folder on your server</li>
<li>Inside the skins directory create a new folder and give it the name of your new skin (note: _ and &#8211; get converted to spaces when listed in the control panel)</li>
<li>Inside your newly created folder add a file called styles.css &#8211; this will be your new skin.</li>
</ol>
<p>To activate the skin simply go to the Mimbo Pro options page (Design -> Mimbo Pro Options) and select your new skin from the dropdown, then hit save. To give you a head-start I would suggest looking at the contents of the bundled skins as they will tell you all the properties to change to do a total colour conversion.</p>
<h3>Why use skins?</h3>
<p>The biggest reason to create a skin instead of modifying the core theme files is simple, future updates of Mimbo Pro (there have been 3 so far) will &#8220;just work&#8221;, you won&#8217;t need to go in and make all your changes again, the theme itself is untouched so you have nothing to worry about.</p>
<p>These non-destructive ideas are things I will be expanding upon in future themes, and the skins system will play a big part in it &#8211; so you might as well get used to it now <img src='http://prothemedesign.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://prothemedesign.com/how-to/modifying-mimbo-pro-1-custom-skins/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>How to develop a theme offline</title>
		<link>http://prothemedesign.com/how-to/how-to-develop-a-theme-offline/</link>
		<comments>http://prothemedesign.com/how-to/how-to-develop-a-theme-offline/#comments</comments>
		<pubDate>Wed, 27 Feb 2008 00:16:46 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[pc]]></category>
		<category><![CDATA[webserver]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://prothemedesign.com/how-to/how-to-develop-a-theme-offline/</guid>
		<description><![CDATA[When you&#8217;re working on your website it is often best to test locally and then upload to your website. Either that or you should have a test site of some sort. Working on your website whilst it&#8217;s live is just asking for problems (as I&#8217;ve found out a number of times&#8230; I&#8217;ll learn eventually). To [...]]]></description>
			<content:encoded><![CDATA[<p>When you&#8217;re working on your website it is often best to test locally and then upload to your website. Either that or you should have a test site of some sort. Working on your website whilst it&#8217;s live is just asking for problems (as I&#8217;ve found out a number of times&#8230; I&#8217;ll learn eventually).</p>
<p>To test on your local computer requires a few things.</p>
<ul>
<li> A copy of WordPress &#8211; easy, <a href="http://wordpress.org/download/">grab one here</a></li>
<li>A decent text editor &#8211; I like <a href="http://www.pspad.com/en/">PsPad</a> but you can use whatever you prefer</li>
<li>A local webserver &#8211; this is the most complicated bit but is worth doing so read on to find out how.</li>
</ul>
<h3>Local Webserver (EasyPHP)</h3>
<p>I should probably also point out that this post is a guide for getting set up to develop themes on a pc &#8211; sorry Mac and Linux users.</p>
<p>Download a webserver package. You want one that includes a server (normally Apache), and installers for both MySQL and PHP. There are many of these packages around but my fave is <a href="http://www.easyphp.org/">EasyPHP</a> (although it hasn&#8217;t been updated in a while). <a href="http://sourceforge.net/project/showfiles.php?group_id=14045">Click here to download EasyPHP</a>. If you have one you prefer then please do let me know in the comments.</p>
<p>As the name suggests it&#8217;s very easy to use EasyPHP. Just run as you would any other installer and it&#8217;s there. Now run the app (start-&gt;EasyPHP etc) and yourlocal copies of Apache and MySQL will be started up. You can now browse your brand new local webserver from the wonderfully titled url &#8211; <a href="http://localhost/">http://localhost/</a></p>
<div class="information">Note &#8211; you may find that you can&#8217;t start Apache if Skype (or some other network based software) is running. Just turn off Skype then start EasyPHP. You can restart Skype afterwards with no problems.</div>
<p>Once you have the package downloaded and installed you need to get WordPress up and running so open up your previously downloaded version and extract it to your new local directory (most likely <em>c:\program files\easyphp\www\</em> ).</p>
<p>Before setting up WordPress we need to create a database. To do this open up the EasyPHP window and administration. This will take you to the admin panel on your localhost (probably &#8211; http://localhost/home/) from there click &#8220;mysql manager&#8221;, and you will be taken to a copy of phpMyAdmin which has rather nicely been installed for you. From the phpMyAdmin splash page create a new database making sure to remember the db name/</p>
<p>Now you can set up WordPress using the fabled 5 minute install. Browse to the new WordPress folder &#8211; <a href="http://localhost/wordpress/">http://localhost/wordpress/</a> and follow the instructions. EasyPHPs database defaults are host: localhost, username: root, and the password is blank. You can also enter the name of the database you just created.</p>
<div class="information">If you were currently setting up a proper website then you should create proper mysql users and use nice strong passwords. Since this is for testing locally I don&#8217;t think it&#8217;s worth the time and effort.</div>
<p>Once complete you are good to go. Just treat the wordpress folder as if it were a remote website folder. You can install plugins, and themes, through windows explorer and start work on your local development. There are however some more changes you can make that will make the whole process even better still&#8230;</p>
<h3>Permalinks</h3>
<p>To make the most of your blog, you really should enable permalinks, which means enabling mod_rewrite on the server. Most web hosts have this turned on, but it&#8217;s something you will need to do yourself with your new local server. To do this run EasyPHP and click the &#8220;E&#8221; on the control panel. Select configuration -> Apache. This will open the httpd.conf file. Now search for and uncomment (uncomment means remove the <em>#</em>) the following two lines.</p>
<ul>
<li>LoadModule rewrite_module modules/mod_rewrite.so</li>
<li>AddModule mod_rewrite.c</li>
</ul>
<p>Restart Apache, rewrite your permalinks (from the wordpress admin) and you&#8217;re all set.</p>
<p>Let me know how you get on in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://prothemedesign.com/how-to/how-to-develop-a-theme-offline/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Designing a theme isn&#8217;t easy</title>
		<link>http://prothemedesign.com/how-to/designing-a-theme/</link>
		<comments>http://prothemedesign.com/how-to/designing-a-theme/#comments</comments>
		<pubDate>Sat, 17 Nov 2007 14:35:46 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[bad]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[theme]]></category>

		<guid isPermaLink="false">http://prothemedesign.com/?p=1</guid>
		<description><![CDATA[Lot&#8217;s of people have created WordPress themes, thousands of people in fact. However only some of them have become popular themes and I believe this is for two reasons. Bad promotion Bad design Bad Promotion How do you get people to download and use your theme? Promoting a theme, especially at the moment since there [...]]]></description>
			<content:encoded><![CDATA[<p>Lot&#8217;s of people have created WordPress themes, thousands of people in fact. However only some of them have become popular themes and I believe this is for two reasons.</p>
<ol>
<li>Bad promotion</li>
<li>Bad design</li>
</ol>
<h3>Bad Promotion</h3>
<p><em>How do you get people to download and use your theme?</em> Promoting a theme, especially at the moment since there are so many to choose from, is a challenge.</p>
<p><em>How do you get people to keep using your theme after they&#8217;ve downloaded it?</em> There are so many free themes around that it&#8217;s very easy to switch from one to another s the mood takes you.</p>
<p>Making the theme free is clearly an easy option for getting people to download the thing, but if you want people to use it you still have to make it good (see Bad Design) &#8211; however getting them to your site, in order to download it is the hard part.</p>
<p>If you do make you theme free then add a link to your own website in the footer so that new users can find you. You can also try submitting your theme to theme galleries and emailing popular WordPress based sites.</p>
<p>If it&#8217;s a premium theme you are releasing then give away free copies for review and hold theme based competitions to try and draw new users in. Anything that will get new visitors to see your theme is good.</p>
<p>Submit your theme to as many theme galleries and WordPress websites as possible. Basically get as many people talking about it as you can.</p>
<h3>Bad Design</h3>
<p>Bad design is very much a subjective thing. Different people like different things, and different websites require different types of design. However there are certain things, not necessarily visual, that you can do to take your theme to the next level, and increase adoption rates.</p>
<ul>
<li>Make sure you include as many of the WordPress built in features as possible (widgets etc) and include hooks for popular plugins. WordPress users love to customise the themes so making this as easy for them to do as possible is always a bonus.</li>
<li>Keep the theme code clean and as simple as possible. Again, people like customising things. The code doesn&#8217;t have to validate, but it&#8217;s a good idea if it does, if only for future maintenance.</li>
<li>Keep colours relatively neutral. If you go for bold colours or schemes appropriate for a narrow audience (your football teams colours for example) then your potential downloads will shrink. Also don&#8217;t go crazy with the colours, stick to a single main colour with 1 or 2 spot colours for highlights. Make these colours easy to find in the css so people can customise the theme quickly and easily.</li>
<li>Test theme with as many different html tags as possible. There will always be people who want to style their code and blockquotes (and even use &lt;b&gt; and &lt;i&gt; even though they shouldn&#8217;t) so take care to make their styles look good.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://prothemedesign.com/how-to/designing-a-theme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

