<?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>matty.co.za</title>
	<atom:link href="http://matty.co.za/feed/" rel="self" type="application/rss+xml" />
	<link>http://matty.co.za</link>
	<description>Web developer, WordPress enthusiast, avid musician, music lover and blogger</description>
	<lastBuildDate>Thu, 19 Aug 2010 13:07:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>More tips for styling the WordPress tinyMCE editor</title>
		<link>http://matty.co.za/2010/08/more-wordpress-custom-editor-styles/</link>
		<comments>http://matty.co.za/2010/08/more-wordpress-custom-editor-styles/#comments</comments>
		<pubDate>Mon, 09 Aug 2010 13:11:07 +0000</pubDate>
		<dc:creator>Matty</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Theming]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[WordPress Support]]></category>
		<category><![CDATA[WordPress Themes]]></category>

		<guid isPermaLink="false">http://matty.co.za/?p=1084</guid>
		<description><![CDATA[A few weeks ago, I blogged about styling the tinyMCE editor in WordPress to resemble your WordPress theme’s content area. On this post, I received a comment from LA, asking if it’s possible to style the tinyMCE editor for specific posts or post templates. Folks, it’s WordPress… anything’s possible! With my mission at hand, I [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Browse through more posts I've written about WordPress" href="http://matty.co.za/category/wordpress/"><img class="alignright size-full wp-image-1013" title="WordPress logo in blue" src="http://matty.co.za/wp-content/uploads/2010/04/blue-m.png" alt="Blue WordPress logo, courtesy http://wordpress.org/about/logos/" width="100" height="100" /></a>A few weeks ago, I blogged about <a title="Styling the tinyMCE editor in WordPress" href="http://matty.co.za/2010/05/editor-style-in-wordpress/">styling the tinyMCE editor in WordPress</a> to resemble your WordPress theme’s content area. On this post, I received a comment from LA, asking if it’s possible to style the tinyMCE editor for specific posts or post templates. Folks, it’s <a title="Browse more posts about WordPress" href="http://matty.co.za/category/wordpress/">WordPress</a>… anything’s possible!</p>
<p>With my mission at hand, I set to work. I’d been thinking about this for a while after writing the initial blog post and am please to say that I have found a solution. Please be sure you’ve read through the <a title="Styling the tinyMCE editor in WordPress" href="http://matty.co.za/2010/05/editor-style-in-wordpress/">initial blog post</a>, as the main points are covered over there.</p>
<p>There are a few steps we need to go through here. They’re pretty straight forward, so bear with me. <img src='http://matty.co.za/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><span id="more-1084"></span></p>
<p><img class="aligncenter size-full wp-image-1088" title="LA's question regarding styling the tinyMCE editor in WordPress" src="http://matty.co.za/wp-content/uploads/2010/08/la_question.png" alt="LA's question regarding styling the tinyMCE editor in WordPress" width="620" height="150" /></p>
<h3>Reference the global $post object</h3>
<p>First things first. How do we know what page, post or custom post type entry we’re working with? We need to get this information from WordPress. Luckily for us, WordPress also needs to know which entry we’re editing. We get this information by adding the following to the beginning of our function:</p>
<pre>global $post;</pre>
<p>This lets us work with the variable $post, which was previously created outside of our function. This variable is an object that holds information about the entry we are currently editing (ID, title, content, template, etc). We will be using this information at a later stage to insert our custom CSS file(s).</p>
<p>Due to this being a custom solution specific to a particular page, post or custom post type entry, this solution will only truly take effect on the “Edit” screens when targeting a specific entry or an entry with a particular custom template applied.</p>
<h3>Check if the file we’re looking for exists</h3>
<p>We wouldn’t want to call a file that we know doesn’t exist. Therefore, we will use a conditional (in this case, an IF statement) to determine whether or not to look for our custom CSS file, based on whether or not it exists.</p>
<h3>If the CSS file exists, add it to the list of CSS files to include</h3>
<p>After the line where we include our main editor-style.css file, add the following code:</p>
<pre><code>if ( file_exists( trailingslashit( get_stylesheet_directory() ) . 'assets/css/editor-style-' . $post-&gt;post_type . '.css' ) ) {

	if ( !empty($url) )
 	$url .= ',';

	// Change the path here if using sub-directory
 	$url .= trailingslashit( get_stylesheet_directory_uri() ) . 'assets/css/editor-style-' . $post-&gt;post_type . '.css';

} // End IF Statement
</code></pre>
<p>The above code checks if our custom CSS file (in this case, for a post type-specific CSS file) exists and, if it does, adds it to the list of CSS files to include in the tinyMCE editor. We include it after checking for our main editor-style.css file so that any of our custom CSS declarations override the defaults we have in the main editor-style.css file.</p>
<h3>Extending this functionality</h3>
<p>In the above example, I am including a custom CSS file based on the post type of the entry being edited. Altering this is relatively straight forward and can allow for custom CSS files depending on date published, post publish status, custom template being used and virtually any condition imaginable.</p>
<p>As an example of extending this functionality, we will include a file based on post ID. To do this, simply paste the above code into the function again and replace all instances of ‘post_type‘ with ‘ID‘ (such that $post-&gt;post_type becomes $post-&gt;ID). Thus, if a post has an ID of 7 (for example), the system will look for a file called editor-style-7.css and, if it exists, include it in the tinyMCE editor.</p>
<p>Please note that using post IDs can result in a large quantity of custom CSS files and is not recommended. The above is simply an example for extending the functionality we just created.</p>
<p>Folks, there you have it. Not too difficult, I hope. This allows for further customisation of the WordPress tinyMCE editor, creating a richer user experience for the bloggers using your theme, as well as creating a more accurate representation of what the post will look like on the front end of their WordPress website.</p>
]]></content:encoded>
			<wfw:commentRss>http://matty.co.za/2010/08/more-wordpress-custom-editor-styles/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>This time for Africa — World Cup Pride</title>
		<link>http://matty.co.za/2010/06/this-time-for-africa/</link>
		<comments>http://matty.co.za/2010/06/this-time-for-africa/#comments</comments>
		<pubDate>Fri, 11 Jun 2010 16:49:27 +0000</pubDate>
		<dc:creator>Matty</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://matty.co.za/?p=1072</guid>
		<description><![CDATA[Okay, so the Soccer World Cup bug has definitely bitten me. I don’t generally follow much soccer, but wow, what a vibe! If one steps back and takes a look at what the world experienced not even an hour ago, it’s quite miraculous, actually. An entire nation, across all continents of the world, united in [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-1073" title="Bafana Bafana Logo" src="http://matty.co.za/wp-content/uploads/2010/06/bafana-bafana-logo.jpg" alt="Bafana Bafana Logo" width="145" height="125" /></p>
<p>Okay, so the Soccer World Cup bug has definitely bitten me. I don’t generally follow much soccer, but wow, what a vibe!</p>
<p>If one steps back and takes a look at what the world experienced not even an hour ago, it’s quite miraculous, actually. An entire nation, across all continents of the world, united in support of Bafana Bafana as they went up against Mexico in the opening match of the 2010 Soccer World Cup. And that first goal… wow!</p>
<p><span id="more-1072"></span>The game itself was a mix of various emotions. While we didn’t have the majority of possession of the ball, we managed to take what possession we did have and make some real magic out of it… which made the game all the more entertaining. The end result of a 1–1 draw was the result of both sides fighting for that last goal, which was a truly incredible sight to see.</p>
<p>On the whole, I’m just super proud of Bafana Bafana and really proud to be a South African. Feel it, it is here!</p>
]]></content:encoded>
			<wfw:commentRss>http://matty.co.za/2010/06/this-time-for-africa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Styling the tinyMCE editor in WordPress</title>
		<link>http://matty.co.za/2010/05/editor-style-in-wordpress/</link>
		<comments>http://matty.co.za/2010/05/editor-style-in-wordpress/#comments</comments>
		<pubDate>Sun, 09 May 2010 11:54:18 +0000</pubDate>
		<dc:creator>Matty</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress Support]]></category>
		<category><![CDATA[WordPress Themes]]></category>

		<guid isPermaLink="false">http://matty.co.za/?p=1048</guid>
		<description><![CDATA[With WordPress’ easy to use nature and user interface, content management of websites is accessible to a vast range of users, from the Bill Gates’ of the world right through to users who discovered this “internet thing” just yesterday. Once the concepts of “what is a content management system?” and “Okay, so this is the [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-1051" title="WordPress logo in Grey" src="http://matty.co.za/wp-content/uploads/2010/05/grey-m.png" alt="WordPress logo" width="100" height="100" />With WordPress’ easy to use nature and user interface, content management of websites is accessible to a vast range of users, from the Bill Gates’ of the world right through to users who discovered this “internet thing” just yesterday. Once the concepts of “what is a content management system?” and “Okay, so this is the ‘backend’ and the website is the ‘frontend’” have been grasped, the usual question arises: “So, why does the backend content look different to the frontend content?”. To this question, we are about to say one thing: “Question… be gone!”<span id="more-1048"></span></p>
<h3>What are we going to achieve today?</h3>
<p>Today, we’re going to style the editor in the WordPress backend to resemble the content as it is in the theme that is being used on the frontend. Simple objective, so lets get started.</p>
<h3>What do we need?</h3>
<p>We’ll need three things to get this done: an editor-specific CSS stylesheet (I usually call this editor-style.css), a PHP function to do the work and a WordPress filter to piece things all together.</p>
<h3>Creating the editor-specific CSS stylesheet</h3>
<p>To do this, we need to keep in mind one thing: we’re cloning the styling of our theme’s content area into a new stylesheet. Simply loading the existing stylesheet in place of this file will not work out properly. One other thing to note is, the content area styles are now to be placed within the .mceContentBody{} CSS style. In addition to copying and pasting the content styling from my theme  (and changing all instances of #content to read .mceContentBody), I have also imported the CSS reset script I use via an @import call. This is to ensure added consistency within the editor styling. If your theme uses a CSS reset file, I would recommend importing it as well.</p>
<p>A snippet from my editor-style.css file looks like this:</p>
<pre><code>.mceContentBody { color: #666666; font-family: Arial, Helvetica, sans-serif !important; font-size: 12px; line-height: 18px; width: 640px; }
		.mceContentBody a, .mceContentBody a:visited { background: none; color: rgb(60, 130, 170); text-decoration: underline; }
		.mceContentBody a:hover { background: none; color: rgb(60, 140, 180); text-decoration: underline; }</code></pre>
<h3>Writing the PHP function to do the work</h3>
<p>Right, folks. This is where we do the main work involved with this. We’ll be writing a function to add our new editor-style.css file into the mix with the existing tinyMCE stylesheet in the backend. The function looks like this:</p>
<pre class="code"><code>
/**
 * matty_editor_style()
 */

function matty_editor_style( $url ) {

  if ( !empty($url) )
    $url .= ',';

  // Change the path here if using sub-directory
  $url .= trailingslashit( get_stylesheet_directory_uri() ) . 'assets/css/editor-style.css';

  return $url;

} // End matty_editor_style()
</code></pre>
<p>And in English, this function reads like this:</p>
<p>The function accepts $url as a parameter. This is the existing tinyMCE stylesheet, passed through the WordPress filter. More on that in a bit. If the URL is provided (and not empty), add a comma (,) at the end of it. After that, create the URL to our editor-style.css file, as it sits in our theme folder, and add it to the end of $url. Return out the newly filtered $url back to the system.</p>
<h3>The WordPress filter that makes it all happen</h3>
<p>The last line. Nice and simple.</p>
<pre><code>add_filter( 'mce_css', 'matty_editor_style' );</code></pre>
<p>This is using the native WordPress function, add_filter(), to take in the ‘mce_css’ stylesheet (the apply_filters() function is applied to the main tinyMCE CSS stylesheet before it is loaded into the system) and add the editor-style.css file into the mix with the existing file. No mess, no fuss.</p>
<p>Place the above PHP function and filter in your theme’s functions.php file, and you’re set.</p>
<p>And there we have it, folks. The editor in the WordPress backend no resembles the frontend of our WordPress theme. I hope this tutorial helps you in creating beautiful and easy to use content managed websites with WordPress.</p>
]]></content:encoded>
			<wfw:commentRss>http://matty.co.za/2010/05/editor-style-in-wordpress/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Restaurant review: Fusion Cafe, Bistro</title>
		<link>http://matty.co.za/2010/05/fusion-cafe-restaurant-review/</link>
		<comments>http://matty.co.za/2010/05/fusion-cafe-restaurant-review/#comments</comments>
		<pubDate>Sat, 08 May 2010 06:23:08 +0000</pubDate>
		<dc:creator>Matty</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://matty.co.za/?p=1038</guid>
		<description><![CDATA[Okay, so who doesn’t love a good meal out, hmmm? I’m not much into writing restaurant reviews or anything, so I thought I’d give it a go with the restaurant I ate at last night –Fusion Cafe– and share my thoughts and experiences at the restaurant. I’ve been walking past the restaurant and not going in [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-1041" title="Fusion Cafe Logo" src="http://matty.co.za/wp-content/uploads/2010/05/fusion_cafe_logo.gif" alt="Fusion Cafe" width="200" height="92" />Okay, so who doesn’t love a good meal out, hmmm? I’m not much into writing restaurant reviews or anything, so I thought I’d give it a go with the restaurant I ate at last night –Fusion Cafe– and share my thoughts and experiences at the restaurant. I’ve been walking past the restaurant and not going in for a few months now, on the way to other restaurants, and was pleasantly surprised when I decided to finally have a meal there.</p>
<p>Fusion Cafe is a sports bar/restaurant hybrid. The sections are separated by a perpendicular walkway which allows visitors to eat in the restaurant and not be disturbed by rowdy sports fans, if they’re looking for a quiet meal. The division between the two is subtle yet just right to be convenient for virtually any visitor.<span id="more-1038"></span></p>
<p>The food at Fusion Cafe is a small yet varied menu, consisting of fish dishes, hamburgers, nachos, salads, starters and desserts. Essentially, there’s something for everyone. The unique factors come in with the presentation… wow. The non-soup dishes with side items (for example, a hamburger and chips) are presented in a stacked method, with the side order as the base on the plate. This is, I’d say, quite unique and an interesting concept for presentation.</p>
<p>Ultimately, the experience was top class. The environment is pleasant and welcoming, the food is well presented and extremely tasty and I’ll be going back there again for sure.</p>
<p>Photos will be up as soon as possible. The food presentation is best seen, rather than read about. <img src='http://matty.co.za/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://matty.co.za/2010/05/fusion-cafe-restaurant-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enhancing the comments list in WordPress</title>
		<link>http://matty.co.za/2010/05/enhancing-wordpress-comments/</link>
		<comments>http://matty.co.za/2010/05/enhancing-wordpress-comments/#comments</comments>
		<pubDate>Sun, 02 May 2010 08:21:06 +0000</pubDate>
		<dc:creator>Matty</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress Support]]></category>
		<category><![CDATA[WordPress Themes]]></category>

		<guid isPermaLink="false">http://matty.co.za/?p=1024</guid>
		<description><![CDATA[With the introduction of the wp_list_comments() function, WordPress enabled users to easily list comments on the websites without having to manually run a series of loops and queries to get the comments into neat XHTML. This function outputs default code with a selection of options for how this code is structured. Today we’ll be customising [...]]]></description>
			<content:encoded><![CDATA[<p>With the introduction of the wp_list_comments() function, WordPress enabled users to easily list comments on the websites without having to manually run a series of loops and queries to get the comments into neat XHTML. This function outputs default code with a selection of options for how this code is structured. Today we’ll be customising how comments are displayed in our WordPress theme, and adding a few extra enhancements to our comments while we’re at it (one of them being the Twitter username we added before). Lets start with the callback, shall we?<span id="more-1024"></span></p>
<h3>“Callback”, you say? Erm… what’s that?</h3>
<p>“callback” is one of the arguments we can pass to the wp_list_comments() function. The “callback” argument expects a string which, in this case, is the name of our callback function. Essentially, by using the “callback” argument, we’re saying to WordPress; “okay, that layout looks cool, but use this awesome layout instead”.</p>
<h3>So… this function…</h3>
<p>Right. The meat of this method is the callback function itself. This is the code that will be used to display each comment in the list. No need to create the list itself, just the items (as is most likely done in your comments.php theme file at this time). The callback function we’ll be creating looks something like this:</p>
<pre>
<div id="_mcePaste">&lt;?php</div>
<div id="_mcePaste">/**</div>
<div id="_mcePaste">* matty_comment_layout()</div>
<div id="_mcePaste">* A callback function to be used with the wp_list_comments() function.</div>
<div id="_mcePaste">*/</div>
<div id="_mcePaste">function matty_comment_layout ( $comment, $args, $depth ) {</div>
<div id="_mcePaste">$GLOBALS['comment'] = $comment;</div>
<div id="_mcePaste">$path_to_default_gravatar = get_bloginfo('stylesheet_directory') . '/assets/images/gravatar.png';</div>
<div id="_mcePaste">$twitter = '';</div>
<div id="_mcePaste">$twitter = get_comment_meta( get_comment_ID(), 'twitter', true );</div>
<div id="_mcePaste">if ( $twitter != '' ) {</div>
<div id="_mcePaste">$twitter = strtolower($twitter);</div>
<div id="_mcePaste">$twitter = str_replace(' ', '', $twitter);</div>
<div id="_mcePaste">$twitter = str_replace('.', '', $twitter);</div>
<div id="_mcePaste">$twitter = ' &lt;span&gt;(&lt;a href="http://twitter.com/' . $twitter . '" rel="nofollow"&gt;' . $twitter . '&lt;/a&gt;)&lt;/span&gt;';</div>
<div id="_mcePaste">} // End IF Statement</div>
<div id="_mcePaste">// Sanitise gravatar and make sure the image has an ALT attribute that isn't empty.</div>
<div id="_mcePaste">$gravatar = get_avatar($comment,$size='48',$default=$path_to_default_gravatar );</div>
<div id="_mcePaste">$gravatar = str_replace ("alt=''", 'alt="' . $comment-&gt;comment_author . '\'s Gravatar"', $gravatar);</div>
<div id="_mcePaste">?&gt;</div>
<div id="_mcePaste">&lt;li &lt;?php comment_class(); ?&gt; id="comment-&lt;?php echo $comment-&gt;comment_ID; ?&gt;"&gt;</div>
<div id="_mcePaste">&lt;div&gt;&lt;?php echo $gravatar; ?&gt;&lt;?php printf( __('&lt;cite&gt;%s&lt;/cite&gt;'), get_comment_author_link(), $twitter ); ?&gt;&lt;/div&gt;</div>
<div id="_mcePaste">&lt;div&gt;&lt;?php printf(__('Posted %1$s at %2$s (%3$s ago)', 'matty'),</div>
<div id="_mcePaste">get_comment_date(),</div>
<div id="_mcePaste">get_comment_time(),</div>
<div id="_mcePaste">human_time_diff(get_comment_date('U'), current_time('timestamp')) ); ?&gt;&lt;/div&gt;</div>
<div id="_mcePaste">&lt;?php if ($comment-&gt;comment_approved == '0') _e("\t\t\t\t\t&lt;span class='unapproved'&gt;Your comment is awaiting moderation.&lt;/span&gt;\n", 'matty') ?&gt;</div>
<div id="_mcePaste">&lt;div&gt;&lt;?php comment_text(); ?&gt;&lt;/div&gt;&lt;!--/.comment-content--&gt;</div>
<div id="_mcePaste">&lt;div&gt;&lt;?php printf(__('&lt;a href="%1$s" rel="bookmark" title="Permalink to ' . $comment-&gt;comment_author . '\'s comment"&gt;Permalink&lt;/a&gt;', 'matty'),</div>
<div id="_mcePaste">'#comment-' . $comment-&gt;comment_ID );</div>
<div id="_mcePaste">edit_comment_link(__('Edit', 'matty'), '&lt;span&gt;', '&lt;/span&gt;'); echo get_comment_reply_link(array_merge( $args, array('depth' =&gt; $depth, 'max_depth' =&gt; $args['max_depth']))) ?&gt;&lt;/div&gt;&lt;!--/.comment-links--&gt;</div>
<div id="_mcePaste">&lt;?php</div>
<div id="_mcePaste">} // End matty_comment_layout()</div>
<div id="_mcePaste">?&gt;</div>
</pre>
<p>Okay, that’s a long snippet. Lets go through it.</p>
<pre><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;">function matty_comment_layout ( $comment, $args, $depth ) {</span></pre>
<p>This is our opening function tag. What’s important to note here is the passing of three arguments: the $comment we’ll be displaying, the $args that go along with that comment and the $depth of the comment in the structure.</p>
<pre>$GLOBALS['comment'] = $comment;
$path_to_default_gravatar = get_bloginfo('stylesheet_directory') . '/assets/images/gravatar.png';
$twitter = '';
$twitter = get_comment_meta( get_comment_ID(), 'twitter', true );

if ( $twitter != '' ) {

$twitter = strtolower($twitter);
$twitter = str_replace(' ', '', $twitter);
$twitter = str_replace('.', '', $twitter);
$twitter = ' &lt;span&gt;(&lt;a href="http://twitter.com/' . $twitter . '" rel="nofollow"&gt;' . $twitter . '&lt;/a&gt;)&lt;/span&gt;';

} // End IF Statement

// Sanitise gravatar and make sure the image has an ALT attribute that isn't empty.
$gravatar = get_avatar($comment,$size='48',$default=$path_to_default_gravatar );
$gravatar = str_replace ("alt=''", 'alt="' . $comment-&gt;comment_author . '\'s Gravatar"', $gravatar);</pre>
<p>I’ve bundled the above together as it’s all extra information that isn’t directly part of the comment itself.</p>
<p>The first line is to ensure we have the correct data for our comment. Below that, $path_to_default_gravatar is where we set the URL of a custom gravatar that we would like to use to replace the default gravatar used. This can be really useful when doing advanced premium WordPress themes. Now, onto the Twitter username.</p>
<p>We create a variable called $twitter, to which we will assign whatever is returned from the native WordPress function, get_comment_meta(). This function takes in the ID of the comment we’re currently processing, the field name (in this case “twitter”) and whether to expect a single value, instead of an array of values (in most cases, this should just be set to true, as we’re only expecting a single value here). If $twitter isn’t empty, we remove and spaces or full-stops from it and create an anchor XHTML tag pointing to the user’s Twitter profile page.</p>
<p>The last two lines get the user’s gravatar and make sure it has alternative text, to keep things neat and tidy. We’ve also told the get_avatar() function that, should it not find a gravatar for the user, it must use $path_to_default_gravatar as the default gravatar to display.</p>
<p>The rest of the comment function looks like this:</p>
<pre style="font: normal normal normal 12px/18px Consolas, Monaco, 'Courier New', Courier, monospace;">
<div id="_mcePaste">&lt;li &lt;?php comment_class(); ?&gt; id="comment-&lt;?php echo $comment-&gt;comment_ID; ?&gt;"&gt;</div>
<div id="_mcePaste">&lt;div&gt;&lt;?php echo $gravatar; ?&gt;&lt;?php printf( __('&lt;cite&gt;%s&lt;/cite&gt;'), get_comment_author_link(), $twitter ); ?&gt;&lt;/div&gt;</div>
<div id="_mcePaste">&lt;div&gt;&lt;?php printf(__('Posted %1$s at %2$s (%3$s ago)', 'matty'),</div>
<div id="_mcePaste">get_comment_date(),</div>
<div id="_mcePaste">get_comment_time(),</div>
<div id="_mcePaste">human_time_diff(get_comment_date('U'), current_time('timestamp')) ); ?&gt;&lt;/div&gt;</div>
<div id="_mcePaste">&lt;?php if ($comment-&gt;comment_approved == '0') _e("\t\t\t\t\t&lt;span class='unapproved'&gt;Your comment is awaiting moderation.&lt;/span&gt;\n", 'matty') ?&gt;</div>
<div id="_mcePaste">&lt;div&gt;&lt;?php comment_text(); ?&gt;&lt;/div&gt;&lt;!--/.comment-content--&gt;</div>
<div id="_mcePaste">&lt;div&gt;&lt;?php printf(__('&lt;a href="%1$s" rel="bookmark" title="Permalink to ' . $comment-&gt;comment_author . '\'s comment"&gt;Permalink&lt;/a&gt;', 'matty'),</div>
<div id="_mcePaste">'#comment-' . $comment-&gt;comment_ID );</div>
<div id="_mcePaste">edit_comment_link(__('Edit', 'matty'), '&lt;span&gt;', '&lt;/span&gt;'); echo get_comment_reply_link(array_merge( $args, array('depth' =&gt; $depth, 'max_depth' =&gt; $args['max_depth']))) ?&gt;&lt;/div&gt;&lt;!--/.comment-links--&gt;</div>
</pre>
<p>The one very important thing to note here is the lack of a closing &lt;/li&gt; tag. WordPress inserts this automatically for us. While this still puzzles me, I’m sure there’s a decently good reason for it.</p>
<p>This code looks a bit random, doesn’t it? Well, it’s not really all that bad. Lets take a look.</p>
<p>We open the &lt;li&gt; tag and call the comment_class() WordPress function. This adds necessary microformats and comment-specific classes to the &lt;li&gt; for this comment. We also give it a unique ID.</p>
<p>Next up, we create a containing &lt;div&gt; tag and echo out our $gravatar image, as well as a prepared statement containing the comment author’s name and a link to their website (via the get_comment_author_link() function) and our $twitter URL, created in the snippet above.</p>
<p>Below the comment author information, we echo out a prepared statement with three values: the comment date, comment time and a human-readable version of how long ago the comment was posted (for example, 3 days ago).<br />
If the comment has not yet been approved, we let the user know this with <code>&lt;?php if ($comment-&gt;comment_approved == '0') _e("\t\t\t\t\t&lt;span class='unapproved'&gt;Your comment is awaiting moderation.&lt;/span&gt;\n", 'matty') ?&gt;</code>.</p>
<p>Now for the main event. The comment itself. A simple function called <code>comment_text()</code> gets this part of the show done.</p>
<p>Next up we create links that apply to this comment. In the above snippet, we create a permalink to the comment, an edit link for users who are logged in and have access to edit comments and a reply link (if we’re not too deep into the comments thread) that users can use to reply to the comment.</p>
<h3>That’s all, folks!</h3>
<p>Yep, that’s it. In the above snippet (which is almost a store-and-use-without-thinking snippet, in my opinion), we’ve created a customised layout for the way each comment is displayed, integrated a custom default gravatar, displayed a human-readable version of how long ago the comment was posted and integrated a Twitter username, submitted by the user when the comment was first made.</p>
<p>I’d really appreciate your thoughts on and ideas for this in the comments below.</p>
<p>Pretty cool, hey? <img src='http://matty.co.za/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://matty.co.za/2010/05/enhancing-wordpress-comments/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Storing a Twitter username with comments in WordPress</title>
		<link>http://matty.co.za/2010/05/storing-twitter-username-with-wordpress-comments/</link>
		<comments>http://matty.co.za/2010/05/storing-twitter-username-with-wordpress-comments/#comments</comments>
		<pubDate>Sat, 01 May 2010 09:32:29 +0000</pubDate>
		<dc:creator>Matty</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress Support]]></category>
		<category><![CDATA[WordPress Themes]]></category>

		<guid isPermaLink="false">http://matty.co.za/?p=1019</guid>
		<description><![CDATA[We’ve all seen this before when commenting on a blog post we’ve just read. The standard comment form on a WordPress-driven website asks for a user’s name, email address (not published), website address and their comment. What if we could get some other information from the user*, and later integrate that into their comment? Why [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://twitter.com/mattyza"><img class="alignright size-full wp-image-1029" title="Twitter" src="http://matty.co.za/wp-content/uploads/2010/05/twitter.png" alt="Follow me on Twitter" width="174" height="100" /></a>We’ve all seen this before when commenting on a blog post we’ve just read. The standard comment form on a WordPress-driven website asks for a user’s name, email address (not published), website address and their comment. What if we could get some other information from the user*, and later integrate that into their comment? Why not get their Twitter username and link back to their Twitter profile as well as to their website? This tutorial will explain how to do just that.</p>
<p><em>* While this tutorial uses a Twitter username as an example, virtually any additional information supplied by the user can be stored along with their comment (a rating, a selection of their social media profiles, etc).<span style="font-style: normal;"><span id="more-1019"></span></span></em></p>
<h3>Asking for it by name (aka. creating the Twitter username textfield)</h3>
<p>Here we’ll add a field to the comment form, in which the user can input their Twitter username. The snippet of code I’ve used for this is as follows:</p>
<pre>&lt;p&gt;&lt;label for="twitter"&gt;Twitter&lt;/label&gt;&lt;input type="text" name="twitter" id="twitter" value="" /&gt;&lt;/p&gt;</pre>
<p>The above code adds a field to the comment form of the theme in question. I’d recommend making a copy of the way the website field is generated and replacing all instances of the word “website” with the word “twitter”. This is an easy way to ensure consistency with the theme to which you are adding this functionality.</p>
<h3>Okay, lets store this thing!</h3>
<p>Right. The user has entered their Twitter username. Lets store it along with the comment, using the comment meta functionality provided by WordPress.</p>
<p>What we’ll be doing here is the following:</p>
<ol>
<li>Check if the user inputted a Twitter username.</li>
<li>Sanitize the username.</li>
<li>If there are any characters left after we’ve sanitised the username (it removes all unwanted characters), store the Twitter username along with the comment.</li>
</ol>
<p>And here’s how that looks in code:</p>
<pre>
<div id="_mcePaste">&lt;?php</div>
<div id="_mcePaste">/**</div>
<div id="_mcePaste">* Storing the commenter's Twitter username.</div>
<div id="_mcePaste">*/</div>
<div id="_mcePaste">function matty_store_twitter_username ( $post_id ) {</div>
<div id="_mcePaste">$twitter_username = $_POST['twitter'];</div>
<div id="_mcePaste">if ( $twitter_username ) {</div>
<div id="_mcePaste">$twitter_username = sanitize_user( $twitter_username, true );</div>
<div id="_mcePaste">$twitter_username = str_replace( ' ', '', $twitter_username );</div>
<div id="_mcePaste">$twitter_username = str_replace( '.', '', $twitter_username );</div>
<div id="_mcePaste">} // End IF Statement</div>
<div id="_mcePaste">if ( $twitter_username ) {</div>
<div id="_mcePaste">add_comment_meta( $post_id, 'twitter', $twitter_username, true );</div>
<div id="_mcePaste">} // End IF Statement</div>
<div id="_mcePaste">} // End matty_store_twitter_username()</div>
<div id="_mcePaste">add_action( 'comment_post', 'matty_store_twitter_username', 1 );</div>
<div id="_mcePaste">?&gt;</div>
</pre>
<p>Pretty simple, right?</p>
<p>If you make use of the above or know of other ways of achieving this, please share your thoughts in the comments below.</p>
<p>In a follow-up tutorial, I’ll discuss how to integrate this stored Twitter username into comments on your WordPress website, using a custom comment callback function.</p>
<p><strong>2010-05-03:</strong> Code updated thank to feedback from Ben in the comments below. Thanks man. <img src='http://matty.co.za/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://matty.co.za/2010/05/storing-twitter-username-with-wordpress-comments/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>South African bands and why they rock</title>
		<link>http://matty.co.za/2010/04/excellent-south-african-bands/</link>
		<comments>http://matty.co.za/2010/04/excellent-south-african-bands/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 06:54:23 +0000</pubDate>
		<dc:creator>Matty</dc:creator>
				<category><![CDATA[Music]]></category>
		<category><![CDATA[South Africa Bands]]></category>
		<category><![CDATA[South African Music]]></category>

		<guid isPermaLink="false">http://matty.co.za/?p=1016</guid>
		<description><![CDATA[I love South African music. There’s something unique about the South African music industry, the culture behind the bands and the unique dedication and passion with which musicians and industry folks go about things. I’ve been listening to some really excellent South African bands lately and the other way, while in the car, it occurred [...]]]></description>
			<content:encoded><![CDATA[<p>I love South African music. There’s something unique about the South African music industry, the culture behind the bands and the unique dedication and passion with which musicians and industry folks go about things. I’ve been listening to some really excellent South African bands lately and the other way, while in the car, it occurred to me that the band I was listening to released the album almost 6 years ago. Despite having released subsequent albums and having grown astoundingly as a band, the album I had on still sounded amazing. This notion lead me to the topic of this blog post– bands I’ll most likely still be listening to in 10 years time and why.</p>
<p>A few months ago, I posed the question of “<a title="Is it the bands or the musicians?" href="http://matty.co.za/2009/06/is-it-the-band-or-the-musicians/">is it the bands or the musicians?</a>”- this question repeats itself here. It is said that a song, when played in a particular context, can trigger memories and feelings from a point in your history. Below is a list of several South African bands, what they do and what they mean to me. These are just some of the bands that have fueled my love for <a title="Read other blog posts about South African music" href="http://matty.co.za/tag/south-african-music/">South African music</a>. If you haven’t heard of several of them, I recommend you try and check them out (well, those that are still around). Let’s kick things off, shall we? In no particular order…<span id="more-1016"></span></p>
<h3>HOAX</h3>
<p>Okay, these dudes rule. Off to a good start. In short, an insanely cool punk/rock band consisting of two brothers (now fronting and drumming for The Plastics), Mr. Mork on bass and the shredder Sir. Slayer in lead guitar. Wow. Fond memories are but the beginning with these guys.</p>
<p>Having managed HOAX for 2 years or so, I shared so many awesome experiences with these guys. It’s pretty clear to me that my fond memories of the band go deeper than just the awesome music. Listening to HOAX brings back fond memories of random after parties at the band room, crazy nights out, gigging up a storm and having an awesome time with band mates.</p>
<p>Quality punk-y rock. ’nuff said.</p>
<h3>The Awful Truth</h3>
<p>And the awesome continues. So much of it.</p>
<p>The Awful Truth were a ska/punk band from behind the boerewors curtain that is the gateway to Durbanville in Cape Town. An insane crew, really. The kindest most awesome of people and insanely talented musicians. You know the guys are having fun when everyone ends up going so crazy that they fall into the drumkit which, in turn, ends up falling all over the drummer. Yes, this was a ska band, believe it or not.</p>
<p>As with HOAX, many fond memories were created with these guys. Definitely one of my favourite South African bands of all time.</p>
<h3>Martin Rocka and the Sick Shop</h3>
<p>This might sound a bit odd, but one of my favourite things about Martin Rocka and the Sick Shop is that their lyrics aren’t about really serious topics. They don’t generally sing about politics and the like… more like hot rods, booze, sex and zombies. I mean, what’s wrong with a few zombies driving hot rods and drinking whisky once in a while?</p>
<p>Aside from the awesomely random lyrics, their unique brand of rockabilly is incredibly catchy. Definitely one of my favourite genres. It’s nice to have a bit of fun with the music and sing about random things (seems a recurring theme in the genre). Definitely a talented trio. If the lyrics disturb you, I’d strongly recommend trying to look past them and listening to the music. It’s really awesome.</p>
<h3>The City Bowl Mizers</h3>
<p>Similar to Martin Rocka, without the hot rods, booze, sex and zombies. Substitute those for a few martinis, some bikini-clad ladies and a few surfboards pitched in the sand on the beach. There you go.</p>
<p>The City Bowl Mizers are a surf-rock group based in Durban. These guys, like many other bands in South Africa, are incredibly hard working. I mean <strong>incredibly</strong> hard working. What it has taken for them to get from a young garage band (as we all start out) to where they are now has been what seems like the most incredible journey. Between Durban and the UK (they were there for a year or so, I believe?) their journey sounds truly unique, most likely best recounted by the band members themselves.</p>
<p>Aside from their music, which I really enjoy, one thing that can for certain be said about these talented guys is that they’re a bunch of solid stand-up okes. A friendly smile and handshake is what generally awaits you when chatting with the Mizers. The best kind of band is a band that cares. ’nuff said.</p>
<h3>The Rudimentals</h3>
<p>The Rudimentals are an 8-piece ska/reggae/dancehall band based in Cape Town.</p>
<p>The band that can make anything better. Words cannot describe the talent of these individuals. The synergy between musicians is also of such a unique nature. Their music, vibe and general approach to all things in life is heart-warming and inviting. Their music brings out all those happy feelings from inside and lets them shine on the surface. Whether or not you understand the music or lyrics, the vibe projected in their performance is of such a unique nature, they are able to impact on listeners of any age, creed, race or nationality.</p>
<h3>Fuzigish</h3>
<p>Fuzigish are a ska/punk band based in Johannesburg.</p>
<p>This is really a case, for me, of a collection of incredibly uniquely talented musicians. Rambling Jay Bones (whose solo project I’ve currently got on repeat as I type this) is an amazing musician and lyricist, able to capture an audience with the strike of a single chord. Mr. Malcolm Rockwell (aka. Chest Rockwell) has a voice and bass playing ability that not only stands steadfast on it’s own, but perfectly compliments the stylings of Bones. What sounds like a few simple chords are then added to interesting lyrics and an enthralling bassline to create the unique sound that is the core of Fuzigish. With the addition of brass and maniacal drumming, the sound is complete.</p>
<p>Their music is catchy and happy. I have many fond memories of their live performances, which I recall every time I hear their music.</p>
<h3>Hog Hoggidy Hog</h3>
<p>Okay, I’ve been listening to these guys forever. If I remember correctly, the first live concert I went to in my teens was a Hogs show. Those are the kinds of memories you can’t just conjure up.</p>
<p>This punk/ska band is a truly iconic outfit. Having been around for well over a decade now and seen the music scene morph and evolve, the Hogs have stuck it out and stood up tall, proud to be punkers and purveyors of fine pork rock.</p>
<p>Give them a listen. Make sure it’s at a live concert. You’ll know the feeling.</p>
<h3>Bed on Bricks</h3>
<p>Once again, <em>such</em> talented musicians. Where does one begin?</p>
<p>Their live performance is incredible. Truly incredible. The first time I saw them live, I wanted to pick my jaw up off the floor, go home and write a bunch of songs in the hopes of starting an awesome record-deal-acquiring band, to be as awesome as their live performance. Just typing about it brings back fond memories of the first time I saw Bed on Bricks perform live.</p>
<p>Bed on Bricks, for me, epitomises the heart of Cape Town city. Their uniquely chilled rock sound, coupled with their general approach to their music, reminds me of an act that is uniquely Capetonian.</p>
<p>Their live performance is not to be missed (in case that wasn’t clear from the first paragraph about them).</p>
<p>This list can go on forever. I could listen to any of the above bands, at any time of the day, any day of the week. They are all truly incredible, none more so than the others. Music has played such a pivotal role in my life, I find I have many many fond memories of stages, speakers being pushed to their limits, being flung across stages during insane mosh pits and generally having an amazing time to some really cool music.</p>
<p>There are loads of awesome <a title="A list of South African bands and musicians that have a Twitter profile" href="http://matty.co.za/2009/04/south-african-music-on-twitter/">South African bands on Twitter</a>, if you’re keen to connect with the bands directly.</p>
<p>If you don’t often go out to listen to <a title="Read other blog posts about South African bands" href="http://matty.co.za/tag/south-african-bands/">South African bands</a>, I’d strongly recommend you take a turn at the next gig you see and give it a go. The locals are really friendly and are always keen for more folks to join in the fun. <img src='http://matty.co.za/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://matty.co.za/2010/04/excellent-south-african-bands/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My (updated) WordPress Plugins Toolbox</title>
		<link>http://matty.co.za/2010/04/wordpress-plugins-toolbox-update/</link>
		<comments>http://matty.co.za/2010/04/wordpress-plugins-toolbox-update/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 09:43:26 +0000</pubDate>
		<dc:creator>Matty</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress Plugins]]></category>

		<guid isPermaLink="false">http://matty.co.za/?p=1010</guid>
		<description><![CDATA[Last year, I wrote about my WordPress plugins toolbox, a series of WordPress plugins I find myself using day in and day out. Since then, the list has grown and developed further to adapt to my varying needs when constructing WordPress-driven projects. Below is an updated list of the plugins I find myself using almost [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://wordpress.org/about/logos/"><img class="alignright size-full wp-image-1013" title="WordPress logo in blue" src="http://matty.co.za/wp-content/uploads/2010/04/blue-m.png" alt="Blue WordPress logo, courtesy http://wordpress.org/about/logos/" width="100" height="100" /></a>Last year, I wrote about <a title="My WordPress Plugins Toolbox" href="http://matty.co.za/2009/06/my-wordpress-plugins-toolbox/">my WordPress plugins toolbox</a>, a series of WordPress plugins I find myself using day in and day out. Since then, the list has grown and developed further to adapt to my varying needs when constructing WordPress-driven projects. Below is an updated list of the plugins I find myself using almost always, in addition to the custom tweaks and widgets I’ve written to accommodate my needs within WordPress.<span id="more-1010"></span></p>
<h3>Media Tags</h3>
<p>This plugin registers a new taxonomy (using the built-in WordPress taxonomy system) for tagging items in the Media Library. This has proved invaluable in many areas, allowing media to be stored literally as media, rather than as a content type which would be used in a non-content area, negating the purpose of storing it as a content type.</p>
<p>An example of where this has come in handy is with image areas (for example, a gallery). This “content” doesn’t really carry text and is, therefore, pointless storing it as a dedicated post type in the administration area and database. Tag the media item with whatever tag you like, use the built in function within the <a title="Download the Media Tags plugin from WordPress Extend" href="http://wordpress.org/extend/plugins/media-tags/">Media Tags plugin</a> to get the media items with that tag and then work with them within your plugin or theme. This is a real time-saver.</p>
<h3>WP Section Index</h3>
<p>Yes, this is another time-saver. The exact reason I wrote this plugin. Necessity. The WP Section Index plugin creates a table of contents for the post or page the user is currently browsing, based on the way the content is divided (I usually tell the plugin to split the content on Heading 3 tags). The plugin also adds “back to top” links to the bottom of each section, should you wish it to.</p>
<p>This can be very useful for pages where the end user wishes to say a lot while not overwhelming the visitor. The visitor is then free to skip to the sections which they would find most useful and browse the remainder of the sections at their own leisure.</p>
<p>Read up more about the <a title="WP Section Index plugin for WordPress" href="http://matty.co.za/plugins/wp-section-index">WP Section Index WordPress plugin</a>.</p>
<h3>All-in-One SEO Pack</h3>
<p>Okay, so everyone uses this guy. There’s a reason or two why.</p>
<p>Firstly, it’s really easy to use and not in any way overwhelming. Every text field is clearly labeled and easy for the end user to work with. It is also really easy to dissect and see how the plugin works, should you wish to further understand a piece of functionality. Many other plugins also carry support for this guy out of the box, which is invaluable when trying to get two plugins to play nicely together.</p>
<p>While <a title="Download the All-in-One SEO Pack plugin on WordPress Extend" href="http://wordpress.org/extend/plugins/all-in-one-seo-pack/">All-in-One SEO Pack</a> doesn’t carry certain features that others do (meta tags on category and tag pages, for example), it’s ease of use for both the developer and end user is why I use it.</p>
<h3>Capability Manager</h3>
<p>You never know just when you’ll need it. Extremely useful, I’d say.</p>
<p>The <a title="Download the Capability Manager plugin from WordPress Extend" href="http://wordpress.org/extend/plugins/capsman/">Capability Manager</a> allows an administrator to manage the user roles and capabilities within their website. For example, if making use of the Maintenance Mode plugin (an extremely useful plugin for putting up a holding page while you run maintenance on your blog) the Capability Manager provides a neat and tidy user interface for allowing non-administrator users the ability to view the website when logged in. A simple process, which explains just how useful this plugin is. It’s not something you’d generally use on a day to day basis, but it’s nice to know that you’ve got it around, just in case.</p>
<h3>wp-Typography</h3>
<p>Okay, I just had to put this one in here. I love typography and, as a developer, it’s a love that not many developers share or appreciate. Having widowed lines just doesn’t do it for me. This plugin fixes common typographical issues within your body copy as well as correcting several punctuation errors (for example, replacing quotation marks with the correct opening and closing quotations) and generally makes your text look a whole lot nicer and easier to read.</p>
<p>While not being an essential to most website owners, I love <a title="Download the wp-Typography plugin from WordPress Extend" href="http://wordpress.org/extend/plugins/wp-typography/">wp-Typography</a> and will continue to use it, knowing that my blog is typographically sound.</p>
<h3>XML Sitemap Generator</h3>
<p>Another staple. The <a title="Download the XML Sitemap Generator plugin from WordPress Extend" href="http://wordpress.org/extend/plugins/google-sitemap-generator/">XML Sitemap Generator</a>, along with the All-in-One SEO Pack and the WPTouch theme (covered below) is updated regularly and is extremely useful and power in generating a thorough and accurate sitemap for your website. This process, while seemingly tedious, is extremely important in getting your website noticed by website indexing and search engines. It provides a road map to your website’s inner pages and blog posts, prioritising them either automatically or with your own personal tweaks. A necessity for certain.</p>
<h3>WPTouch iPhone theme</h3>
<p>This plugin provides a neat and friendly interface for creating themes for your website to be easily viewable on smartphones. I believe it currently supports the iPhone, iPod Touch and Google Android. The plugin is feature rich and allows mostly full control over how your website looks on your iPhone. Smart move, I’d say, given the rise in popularity of mobile browsing. Having a mobile website is imperative in this day and age. Why not make it easy, using the <a title="Download the WPTouch plugin from WordPress Extend" href="http://wordpress.org/extend/plugins/wptouch/">WPTouch</a> plugin?</p>
<p>Along with the above, as mentioned earlier on in this post, I’ve written a few custom widgets and administration screens to make certain tasks a bit easier for the end user. Making tasks easier for the end user is, ultimately, the key in my opinion. If the end user can login and begin working right off the bat with minimal knowledge of the system, the objective has been achieved.</p>
<p>I hope this list (and how short it is) help you in your next WordPress project and show that using thousands of plugins isn’t always the best solution to a successful project.</p>
]]></content:encoded>
			<wfw:commentRss>http://matty.co.za/2010/04/wordpress-plugins-toolbox-update/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>A quick word on Freedom Day</title>
		<link>http://matty.co.za/2010/04/freedom-day/</link>
		<comments>http://matty.co.za/2010/04/freedom-day/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 08:27:59 +0000</pubDate>
		<dc:creator>Matty</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Thoughts]]></category>

		<guid isPermaLink="false">http://matty.co.za/?p=1007</guid>
		<description><![CDATA[Wow, good morning everyone. Yes, I’m up, sleepy-eyed and fighting back yawns, to blog. It feels great! Today is Freedom Day in South Africa… yes, yet another public holiday in April. This day is, however, more than just another of the many April-based public holidays. Freedom Day remembers the first post-apartheid political election, held on [...]]]></description>
			<content:encoded><![CDATA[<p>Wow, good morning everyone. Yes, I’m up, sleepy-eyed and fighting back yawns, to blog. It feels great!</p>
<p>Today is Freedom Day in South Africa… yes, yet another public holiday in April. This day is, however, more than just another of the many April-based public holidays. Freedom Day remembers the first post-apartheid political election, held on this day in 1994. For South Africans, this day was truly one of a unique nature, as for the first time in a South African election, the entire nation was truly free to cast their vote as they wished… or to even cast their vote in the first place.</p>
<p>If you were in the country at the time in 1994, try to think back on how things were at the time, and before. However you choose to spend today, please set aside a moment to think about the concept of freedom and what it truly means.</p>
]]></content:encoded>
			<wfw:commentRss>http://matty.co.za/2010/04/freedom-day/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A quick word on inspiration and driving output</title>
		<link>http://matty.co.za/2010/04/driving-productive-output/</link>
		<comments>http://matty.co.za/2010/04/driving-productive-output/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 07:21:02 +0000</pubDate>
		<dc:creator>Matty</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Inspiration]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Thoughts]]></category>
		<category><![CDATA[Writing]]></category>

		<guid isPermaLink="false">http://matty.co.za/?p=1003</guid>
		<description><![CDATA[What is inspiration? Where does it come from? How can it drive productive output? These are all valid questions. At this moment, it’s a little misty outside my window. It’s early and I’m almost on my way to a nice hot cup of tea. This doesn’t seem related to the post at all, does it? It [...]]]></description>
			<content:encoded><![CDATA[<p>What is inspiration? Where does it come from? How can it drive productive output? These are all valid questions.</p>
<p>At this moment, it’s a little misty outside my window. It’s early and I’m almost on my way to a nice hot cup of tea. This doesn’t seem related to the post at all, does it? It is. All of these factors are instrumental in driving productive output from within me. A relaxed environment with average, slightly overcast, weather conditions and the want for a soothing cup of tea.<span id="more-1003"></span></p>
<h3>But… how?</h3>
<p>It’s really straight forward, actually. The environment affords me the calm and free space to think laterally and let my mind wonder a bit. This, I’ve found, is incredibly important with the majority of tasks I do (whether it’s writing a blog post or exploring a code snippet). My mind is allowed to wonder naturally down the various avenues of possibility, possibly exploring areas I may not have arrived at, had I been in a different environment. This post is itself a product of said environment.</p>
<h3>Okay, and how does that drive your output?</h3>
<p>This part, like the first, is person-specific. It’s about finding what works best for you. The solution I have found that works for me is almost a domino effect. The output of one task drives the output of the next.</p>
<p>While many people may choose what I refer to as the “reward” system of “oh, I worked so hard on task A, let me relax for a bit as a reward and then get on to task B”, I’ve adopted a similar, yet slightly different method. The output of task A drives me to work on task B. This continues until there’s either no time left to spend for that period of time, or a simply cannot do any more at the time. In today’s case, task A is writing this blog post. Task B is various errands and such and then task C… well, who knows. <img src='http://matty.co.za/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I was thinking about my output this morning, stopped and realised, “wow, this is actually kind of weird”, so I thought I’d share it with you all and see if there’s anyone out there who has a similar process. Right, on to task B.</p>
]]></content:encoded>
			<wfw:commentRss>http://matty.co.za/2010/04/driving-productive-output/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
