<?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>Theme Lab &#187; WordPress Tutorials</title>
	<atom:link href="http://www.themelab.com/category/wordpress-tutorials/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.themelab.com</link>
	<description></description>
	<lastBuildDate>Wed, 25 Aug 2010 12:19:57 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>How To Create a Searchable Tweet Archive with WordPress</title>
		<link>http://www.themelab.com/2010/06/15/wordpress-tweet-archive/</link>
		<comments>http://www.themelab.com/2010/06/15/wordpress-tweet-archive/#comments</comments>
		<pubDate>Tue, 15 Jun 2010 16:39:13 +0000</pubDate>
		<dc:creator>Leland</dc:creator>
				<category><![CDATA[WordPress Tutorials]]></category>

		<guid isPermaLink="false">http://www.themelab.com/?p=2152</guid>
		<description><![CDATA[
			
				
			
		
Let&#8217;s face it, the Twitter search sucks and you&#8217;ll be lucky to find tweets over a week old with it even though they still exist.
Twitter has been plagued with service issues and the fail whale (which someone coded in pure CSS) is a regular occurrence once again.
I came across a tutorial the other day on [...]


Related posts:<ol><li><a href='http://www.themelab.com/2010/08/25/tl-tweets-free-wordpress-theme/' rel='bookmark' title='Permanent Link: TL Tweets &#8211; Free WordPress Theme'>TL Tweets &#8211; Free WordPress Theme</a></li><li><a href='http://www.themelab.com/2010/08/16/use-the-official-tweet-button/' rel='bookmark' title='Permanent Link: Want More Retweets? Use the Official Tweet Button'>Want More Retweets? Use the Official Tweet Button</a></li><li><a href='http://www.themelab.com/2010/03/27/useful-alternatives-monthly-archive-links/' rel='bookmark' title='Permanent Link: Useful Alternatives to the Dreaded Monthly Archive Links'>Useful Alternatives to the Dreaded Monthly Archive Links</a></li></ol>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.themelab.com%2F2010%2F06%2F15%2Fwordpress-tweet-archive%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.themelab.com%2F2010%2F06%2F15%2Fwordpress-tweet-archive%2F&amp;source=themelab&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><img src="http://www.themelab.com/wp-content/uploads/fail-whale.png" alt="twitter fail whale" title="twitter fail whale" width="150" height="113" style="float:left;margin-right:10px;" />Let&#8217;s face it, the <a href="http://searchengineland.com/where-have-all-the-old-tweets-gone-33579">Twitter search sucks</a> and you&#8217;ll be lucky to find tweets over a week old with it even though they still exist.</p>
<p>Twitter has been plagued with service issues and the fail whale (<a href="http://www.subcide.com/articles/pure-css-twitter-fail-whale/">which someone coded in pure CSS</a>) is a regular occurrence once again.</p>
<p>I came across a tutorial the other day on how to create <a href="http://stopdesign.com/archive/2010/03/02/browsable-searchable-archive-of-tweets.html">a browsable, searchable archive of tweets</a> which you can use to host your own tweets.  And the best part is?  It&#8217;s <strong>powered by WordPress</strong>.</p>
<p>In this article, I&#8217;ll go over my experience with how I set up my own <a href="http://tweets.themelab.com/">@themelab tweet archive</a> powered by WordPress, including:</p>
<ul>
<li>Backing up my tweets with a third-party service</li>
<li>Importing those older tweets into WordPress</li>
<li>Setting it up so new tweets get imported automatically</li>
<li>Installing the theme to display them nicely</li>
</ul>
<p><span id="more-2152"></span></p>
<h3>Backup Your Tweets</h3>
<p>The first step is to backup your tweets.  There are a few third-party services to do this, I personally used <a href="http://tweetbackup.com">TweetBackup</a> with good success.  It&#8217;s important to remember <strong>not to expect to backup all of your tweets</strong>.</p>
<p>I was only able to grab 910 out of over 6000+ at the time.  Even using other Twitter backup services, the same number of tweets were backed up which suggests it&#8217;s a limitation by Twitter itself.  It&#8217;s best to backup as soon as possible, especially if you&#8217;re a frequent tweeter.</p>
<p>I had some issues logging into TweetBackup at first but eventually it worked.  If you get frustrated you could also try <a href="http://backupmytweets.com/">BackupMyTweets.com</a>.  It&#8217;s worth noting that BackupMyTweets makes you &#8220;pay&#8221; by posting a tweet promoting their service.  If that&#8217;s too painful for you (it&#8217;s pretty painless, I promise) you also have the option of paying $9.95 per year.</p>
<p style="text-align:center"><img src="http://www.themelab.com/wp-content/uploads/backupmytweets.png" alt="backupmytweets" title="backupmytweets" width="500" height="215" /></p>
<p>After the backup process is complete, look for the &#8220;export&#8221; option and save as RSS.  You should have an XML file with all the tweets that were salvageable.  The next step is to import those into WordPress.</p>
<h3>Import Tweets to WordPress</h3>
<p>First of all, it&#8217;s suggested you create a new WordPress installation for your tweet archive so you don&#8217;t have to worry about separating it from the rest of your normal WordPress content.  I personally used a subdomain so it wouldn&#8217;t interfere with any permalinks from the blog.</p>
<p>The next step is to browse to Tools&rarr;Import and select the &#8220;RSS&#8221; option.</p>
<p style="text-align:center"><img src="http://www.themelab.com/wp-content/uploads/wp-rss-import.png" alt="WordPress RSS Import" title="WordPress RSS Import" width="500" height="309" /></p>
<p>On the next screen, upload the XML file you just grabbed from whatever tweet backer-upper service you just used.  Your tweets should now be loaded in your WordPress site.</p>
<ul>
<li><strong>Obvious Tip:</strong> Assuming this is a new WordPress installation, you&#8217;ll probably want to delete the &#8220;Hello World!&#8221; post.</li>
<li><strong>Not So Obvious Tip:</strong> Since tweets from the backup file are formatted like &#8220;username: tweet message is here&#8221; (i.e. &#8220;themelab: My actual tweet is displayed here&#8221;) you might want to use the <a href="http://urbangiraffe.com/plugins/search-regex/">Search Regex plugin</a> to delete this.  Just replace &#8220;username: &#8221; in post content and remember to include the space after.</li>
</ul>
<h3>Automatically Grab New Tweets</h3>
<p>Now that you have all your old tweets stored, you&#8217;ll want to make sure any new tweets are automatically grabbed and stored as WordPress posts.  For this, we&#8217;ll be using the <a href="http://alexking.org/projects/wordpress">Twitter Tools plugin</a> by Alex King.</p>
<p>After installing and verifying your Twitter account details, make sure the following two options are set on the plugin&#8217;s settings page (Settings&rarr;Twitter Tools):</p>
<ul>
<li>Enable option to create a tweet when you post in your blog? <strong>NO</strong></li>
<li>Create a blog post from each of your tweets? <strong>Yes</strong></li>
</ul>
<p style="text-align:center"><img src="http://www.themelab.com/wp-content/uploads/twitter-tools-options.png" alt="Twitter Tools Options" title="Twitter Tools Options" width="500" height="369" /></p>
<p>I&#8217;m not sure what would happen if you set &#8220;Yes&#8221; to both, but I don&#8217;t intend on finding out for myself for fear of annoying the crap out of my followers.  Douglas Bownman, the author of the original guide, described it as an &#8220;endless loop of repeating tweets and blog posts.&#8221;</p>
<p>All of the other options, like whether to exclude @replies, are either not necessary or up to your personal preferences.</p>
<p><strong>Note:</strong> After installing Twitter Tools I noticed a few duplicate tweets (in conjunction with my backed-up tweets) that I went back and manually deleted.</p>
<h3>Tweet Archive Theme</h3>
<p>Douglas Bownman of stopdesign was also nice enough to release the <a href="http://stopdesign.com/archive/2010/04/30/tweet-archive-theme-files.html" title="Theme files for my WP tweet archive">tweet archive theme</a> he used for free.</p>
<p style="text-align:center"><img src="http://www.themelab.com/wp-content/uploads/tweet-archive-theme.png" alt="Tweet Archive Theme" title="Tweet Archive Theme" width="500" height="205" /></p>
<p>The theme works out of the box but it requires some *gasp* direct theme editing to personalize the hard-coded area (that I&#8217;ve highlighted in red) with your own account information.  Just open up your <code>header.php</code> and scroll to the bottom.</p>
<p style="text-align:center"><img src="http://www.themelab.com/wp-content/uploads/tweet-archive-header.png" alt="tweet-archive-header" title="tweet-archive-header" width="500" height="247" /></p>
<p>Make sure you have the following handy to copy and paste into the &#8220;user&#8221; div area in the header file:</p>
<ul>
<li>A 48&#215;48 image URL of your Twitter avatar (or whatever you want really)</li>
<li>Your name (I used &#8220;Theme Lab&#8221; for example)</li>
<li>Your Twitter username (@themelab)</li>
<li>Location and website URL (themelab.com)</li>
</ul>
<p>Or you could just remove it completely, it&#8217;s up to you.  There is also a nice display of archive links which don&#8217;t <a href="http://www.themelab.com/2010/03/27/useful-alternatives-monthly-archive-links/" title="Useful Alternatives to the Dreaded Monthly Archive Links">seem as dreaded</a> on an archive-oriented site like this.</p>
<p>If you&#8217;re making your own <a href="http://customtheme.com">custom theme</a> make sure to display the post content and have the full date and time as the permalink to the post.  I&#8217;m not sure comments are really necessary on a theme like this, but again, it&#8217;s your site now, so you can do whatever you want with it.</p>
<p><strong>Update:</strong> I just noticed the search form had the /tweets/ URL hardcoded into the form action, which obviously won&#8217;t work if you&#8217;ve installed anywhere besides a /tweets/ subdirectory.  To correct this, replace the following code in <code>searchform.php</code>:</p>
<pre><code>&lt;form method=&quot;get&quot; id=&quot;searchform&quot; action=&quot;/tweets/&quot;&gt;</code></pre>
<p>And replace with:</p>
<pre><code>&lt;form method=&quot;get&quot; id=&quot;searchform&quot; action=&quot;&lt;?php bloginfo(&#039;url&#039;); ?&gt;/&quot;&gt;</code></pre>
<h3>Conclusion</h3>
<p>I really wish I set this up a long time ago.  I&#8217;m a Twitter addict and have over 6000 tweets (follow me at <a href="http://twitter.com/themelab">@themelab</a>) and unfortunately I wasn&#8217;t able to back all of them up, only about 15% of them.</p>
<p>Once again I&#8217;d like to thank Douglas Bowman of <a href="http://stopdesign.com/">stopdesign</a> for the guide on settings this up as well as the theme.  It was actually a lot easier than I thought and it&#8217;s great that it can be powered by my favorite CMS, WordPress, with the help of some extra plugins.</p>


<p>Related posts:<ol><li><a href='http://www.themelab.com/2010/08/25/tl-tweets-free-wordpress-theme/' rel='bookmark' title='Permanent Link: TL Tweets &#8211; Free WordPress Theme'>TL Tweets &#8211; Free WordPress Theme</a></li><li><a href='http://www.themelab.com/2010/08/16/use-the-official-tweet-button/' rel='bookmark' title='Permanent Link: Want More Retweets? Use the Official Tweet Button'>Want More Retweets? Use the Official Tweet Button</a></li><li><a href='http://www.themelab.com/2010/03/27/useful-alternatives-monthly-archive-links/' rel='bookmark' title='Permanent Link: Useful Alternatives to the Dreaded Monthly Archive Links'>Useful Alternatives to the Dreaded Monthly Archive Links</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.themelab.com/2010/06/15/wordpress-tweet-archive/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Guide to Styling the WP-PageNavi WordPress Plugin</title>
		<link>http://www.themelab.com/2010/05/04/wp-pagenavi-styling/</link>
		<comments>http://www.themelab.com/2010/05/04/wp-pagenavi-styling/#comments</comments>
		<pubDate>Tue, 04 May 2010 12:07:42 +0000</pubDate>
		<dc:creator>Leland</dc:creator>
				<category><![CDATA[CSS Tips]]></category>
		<category><![CDATA[WordPress Tutorials]]></category>

		<guid isPermaLink="false">http://www.themelab.com/?p=1280</guid>
		<description><![CDATA[
			
				
			
		
If you&#8217;re not familiar with the WP-PageNavi WordPress plugin, it allows you to replace normal previous/next navigation with a more advanced, numbered paging navigation.  This is a feature I&#8217;ve included on a number themes I&#8217;ve developed, including RS16, Blogwave, RS17, and Bright Spot.

In this tutorial, I&#8217;m going to go over how to:

Install WP-PageNavi and [...]


Related posts:<ol><li><a href='http://www.themelab.com/2008/04/04/the-ultimate-guide-to-the-wordpress-loop/' rel='bookmark' title='Permanent Link: The Ultimate Guide to the WordPress Loop'>The Ultimate Guide to the WordPress Loop</a></li><li><a href='http://www.themelab.com/2010/05/18/custom-twitter-widget-tutorial/' rel='bookmark' title='Permanent Link: Make A Custom Twitter Widget Without A Plugin'>Make A Custom Twitter Widget Without A Plugin</a></li><li><a href='http://www.themelab.com/2008/04/14/the-ultimate-guide-to-wordpress-conditional-tags/' rel='bookmark' title='Permanent Link: The Ultimate Guide to WordPress Conditional Tags'>The Ultimate Guide to WordPress Conditional Tags</a></li></ol>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.themelab.com%2F2010%2F05%2F04%2Fwp-pagenavi-styling%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.themelab.com%2F2010%2F05%2F04%2Fwp-pagenavi-styling%2F&amp;source=themelab&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>If you&#8217;re not familiar with the <a href="http://wordpress.org/extend/plugins/wp-pagenavi/">WP-PageNavi</a> WordPress plugin, it allows you to replace normal previous/next navigation with a more advanced, numbered paging navigation.  This is a feature I&#8217;ve included on a number themes I&#8217;ve developed, including <a href="http://www.themelab.com/2009/12/13/rs16-free-wordpress-theme/">RS16</a>, <a href="http://www.themelab.com/2010/01/02/blogwave-free-wordpress-blog-theme/">Blogwave</a>, <a href="http://www.themelab.com/2010/02/16/rs17-free-wordpress-theme/">RS17</a>, and <a href="http://www.themelab.com/2010/03/17/announcing-the-underground-new-newsletter-free-theme-bribe/">Bright Spot</a>.</p>
<p style="text-align: center;"><a href="http://www.themelab.com/wp-content/uploads/rs16-pagenavi.png" rel="lightbox" title="RS16 PageNavi"><img src="http://www.themelab.com/wp-content/uploads/rs16-pagenavi.thumbnail.png" alt="RS16 PageNavi" width="400" height="69" class="attachment wp-att-1225 centered" /></a></p>
<p>In this tutorial, I&#8217;m going to go over how to:</p>
<ul>
<li>Install WP-PageNavi and properly integrate it in your theme.</li>
<li>Two methods to disable and/or override default plugin styles.</li>
<li>An overview of the HTML markup output by WP-PageNavi</li>
<li>Finally, how to alter the look of your page navigation through CSS</li>
</ul>
<p><span id="more-1280"></span></p>
<h3>Install the Plugin</h3>
<p>You have two options when it comes to installing the WP-PageNavi plugin.</p>
<ul>
<li>Download it from <a href="http://wordpress.org/extend/plugins/wp-pagenavi/">WordPress.org</a>, upload it to your <code>/wp-content/plugins/</code> directory, and activate (aka, <a href="http://www.themelab.com/2008/03/07/how-to-install-a-wordpress-plugin/" title="How to install a WordPress plugin">the old fashioned way</a>).</li>
<li>Depending on your host, you can also automatically install plugins by searching them in &#8220;Add New&#8221; page under Plugins in your WordPress admin panel.  Just search for &#8220;pagenavi&#8221; and you should find it.</li>
</ul>
<p>Okay, that should&#8217;ve been pretty easy.  Now it&#8217;s time to get your hands a little dirty in code for the integration part.</p>
<h3>Theme Integration</h3>
<p>In our theme integration, we never want any errors to be displayed if the WP-PageNavi isn&#8217;t active.  Instead, we&#8217;ll make sure it falls back on the old previous/next-style navigation.  To do this, we&#8217;ll use a <a href="http://www.themelab.com/2008/06/01/fix-wordpress-fatal-error-call-to-undefined-function/" title="Fix WordPress Fatal error: Call to undefined function">function_exists conditional check</a>.</p>
<p>Let&#8217;s say this is your normal previous/next WordPress navigation code:</p>
<pre><code>&lt;div class=&quot;navigation&quot;&gt;
	&lt;div class=&quot;alignleft&quot;&gt;&lt;?php next_posts_link(&#039;&amp;laquo; Older Entries&#039;) ?&gt;&lt;/div&gt;
	&lt;div class=&quot;alignright&quot;&gt;&lt;?php previous_posts_link(&#039;Newer Entries &amp;raquo;&#039;) ?&gt;&lt;/div&gt;
&lt;/div&gt;</code></pre>
<p>We will change it to the following:</p>
<pre><code>&lt;?php if (function_exists(&#039;wp-pagenavi&#039;)) { wp_pagenavi(); } else { ?&gt;&lt;div class=&quot;navigation&quot;&gt;
	&lt;div class=&quot;alignleft&quot;&gt;&lt;?php next_posts_link(&#039;&amp;laquo; Older Entries&#039;) ?&gt;&lt;/div&gt;
	&lt;div class=&quot;alignright&quot;&gt;&lt;?php previous_posts_link(&#039;Newer Entries &amp;raquo;&#039;) ?&gt;&lt;/div&gt;
&lt;/div&gt;&lt;?php } ?&gt;</code></pre>
<p>This basically checks to see if WP-PageNavi is active and if it is, it displays the new page navigation code.  If not, it gracefully falls back to the normal previous/next navigation.</p>
<p><strong>Please Note:</strong> Depending on how your CSS is coded, you may want to put the <code>wp_pagenavi();</code> part inside the &#8220;navigation&#8221; (or equivalent) div.  Keep in mind WP-PageNavi spits out a new class called &#8220;wp-pagenavi&#8221; though which we can use to style separately.</p>
<h3>Override Plugin Styles</h3>
<p>By default, WP-PageNavi automatically inserts a CSS file called <code>pagenavi-css.css</code> from its plugin directory into the header of your site.  We don&#8217;t want these default styles to interfere with our own cool custom-made styles, so we&#8217;ll completely get rid of them, and there are two simple ways to do just that.</p>
<ul>
<li><strong>Add a CSS file to your theme directory</strong> &#8211; This is probably the easiest way to override the default WP-PageNavi styles.  If you have a file called pagenavi-css.css in your theme directory, WP-PageNavi will use this instead of the default one in the plugin directory.</li>
<li><strong>Add a snippet to your functions.php file</strong> &#8211; The following code snippet I picked up from <a href="http://www.wprecipes.com/wordpress-trick-disable-plugin-stylesheet">WP Recipes</a> will completely disable the above behavior and not include any stylesheet from the plugin (either the default one or an override in your theme directory).</li>
</ul>
<pre><code>add_action( &#039;wp_print_styles&#039;, &#039;my_deregister_styles&#039;, 100 );

function my_deregister_styles() {
	wp_deregister_style( &#039;wp-pagenavi&#039; );
}</code></pre>
<p>Just plop that code in your theme&#8217;s <code>functions.php</code> file and add the CSS styles to your regular theme&#8217;s stylesheet (usually <code>style.css</code>).</p>
<p><strong>Note:</strong> Make sure the code is surrounded by brackets like <code>&lt;?php ... ?&gt;</code> if your functions file is currently empty.</p>
<h3>WP-PageNavi HTML Markup and CSS Selectors</h3>
<p>Here&#8217;s what the WP-PageNavi markup looks like.  In the following example, there are four pages, currently on page two.</p>
<pre><code>&lt;div class=&quot;wp-pagenavi&quot;&gt;
	&lt;a href=&quot;http://example.com/&quot; &gt;Previous&lt;/a&gt;&lt;a href=&quot;http://example.com/&quot; class=&quot;page&quot; title=&quot;1&quot;&gt;1&lt;/a&gt;
	&lt;span class=&quot;current&quot;&gt;2&lt;/span&gt;
	&lt;a href=&quot;http://example.com/?paged=3&quot; class=&quot;page&quot; title=&quot;3&quot;&gt;3&lt;/a&gt;
	&lt;a href=&quot;http://example.com/?paged=3&quot; &gt;Next&lt;/a&gt;&lt;/div&gt;
	&lt;span class=&quot;extend&quot;&gt;...&lt;/span&gt;
	&lt;a href=&quot;http://example.com/?paged=4&quot; class=&quot;last&quot; title=&quot;Last &amp;raquo;&quot;&gt;Last &amp;raquo;&lt;/a&gt;
&lt;/div&gt;</code></pre>
<p>We can use the following CSS selectors to target the above HTML markup:</p>
<ul>
<li><code>.wp-pagenavi</code> &#8211; Applies to the entire div, useful for CSS clears, padding/margin, font sizes and styles (bold, italic, etc.)</li>
<li><code>.wp-pagenavi a</code> &#8211; Targets all links inside the page navigation, including page numbers and previous/next.</li>
<li><code>.wp-pagenavi a.page</code> &#8211; Targets page numbers specifically</li>
<li><code>.wp-pagenavi a.first</code> &#8211; Targets the &#8220;first&#8221; link specifically (not listed above)</li>
<li><code>.wp-pagenavi a.last</code> &#8211; Targets the &#8220;last&#8221; link specifically</li>
<li><code>.wp-pagenavi span</code> &#8211; Targets the current page number along with the extend part (the thing with three dots)</li>
<li><code>.wp-pagenavi span.current</code> &#8211; Specifically targets the current page number</li>
<li><code>.wp-pagenavi span.extend</code> &#8211; Specifically targets the extend (three dots thing)</li>
<li><code>.wp-pagenavi span.pages</code> &#8211; Specifically targets page number display (i.e. Page 1 of 4)</li>
</ul>
<p><strong>Note:</strong> The previous and next links by default, have no CSS class on them.  If you want them to completely differentiated from the page numbers and first/last links, those will need to reset any styles added to the <code>.wp-pagenavi a</code> selector.  If that made no sense, take a look at the following (really simplified) example.</p>
<p><strong>For example:</strong> Let&#8217;s say you wanted the the previous and next links to be bold, but every other link to have a normal weight.  You would need to do the following:</p>
<pre><code>.wp-pagenavi a { font-weight: bold; } /* Previous and Next links only */
.wp-pagenavi a.page,
.wp-pagenavi a.first,
.wp-pagenavi a.last { font-weight: normal; } /* Other links */</code></pre>
<p>I combined page number links, the first link, and the last link into one rule for example purposes. Of course, you can separate them and add more specific styles to each one.</p>
<p>This would be much easier if there was a class added to previous/next links by default, but there&#8217;s not.  It&#8217;s not a huge deal as you can just reset them anyway.</p>
<p><strong>Important Update:</strong> Thanks to an update from <a href="http://scribu.net/">scribu</a> in the comments, it turns out the newest version of WP-PageNavi does have previous/next classes on them (thanks in part to <a href="http://yoast.com/pagination-classes/">Yoast</a>).</p>
<p>You can use <code>.wp-pagenavi a.previouspostslink</code> and <code>.wp-pagenavi a.nextpostslink</code> to select previous and next links, respectively.</p>
<p>So pretty much everything above up until the unordered list of selectors isn&#8217;t relevant anymore, but I&#8217;ll keep it just because it could be a useful lesson in overriding CSS in some other situations.  The below CSS example will still apply as I didn&#8217;t use those selectors anyway.</p>
<h3>A CSS Example</h3>
<p>Here&#8217;s an example of a PageNavi styling which I built off of the <a href="http://customtheme.com/themes/blogwave/">Blogwave</a> theme.</p>
<p style="text-align:center"><img src="http://www.themelab.com/wp-content/uploads/blogwave-updated-pagenavi.png" alt="Blogwave Updated PageNavi" title="Blogwave Updated PageNavi" width="500" height="150" class="alignnone size-full wp-image-1967" /></p>
<p>Here&#8217;s the code I used to get this look, <a href="http://ianstormtaylor.com/discussed/multi-single-line-css/">multi-single-line CSS</a> is optional:</p>
<pre><code>.wp-pagenavi a, .wp-pagenavi span {
	padding: 5px; margin-right: 10px;
	font-size: 15px; color: #03719c; text-decoration: none;
	border: 3px solid #ccc; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px;
	}
.wp-pagenavi a:hover, .wp-pagenavi span.current {
	background: #03719c;
	color: #fff;
	border: 3px solid #AFAFAF;
	}
.wp-pagenavi span.current { font-weight: bold; }</code></pre>
<p>And here&#8217;s what it all means:</p>
<p><strong>First Rule</strong><br />
The <code>.wp-pagenavi a, .wp-pagenavi span</code> selects all anchor and span elements (pretty much everything) inside the .wp-pagenavi div.</p>
<ul>
<li>The first line of the rule sets a padding of 5px so it won&#8217;t be crammed up against the light gray border (defined below).  It also sets a consistent margin of 10px to the right of each element so there is equal spacing between each.</li>
<li>The second line sets a font size of 15px, makes the text color blue, and makes sure links have no underline.</li>
<li>The third line sets a solid 3px gray border on everything.  The <code>border-radius</code> code makes the corners rounded.</li>
</ul>
<p><strong>Second Rule</strong><br />
The <code>.wp-pagenavi a:hover, .wp-pagenavi span.current</code> selects the link hover effect as well as the current page number, respectively.</p>
<ul>
<li>The first line sets a dark blue background color.</li>
<li>The second line makes the text white.</li>
<li>The third line gives a slightly darker border.</li>
</ul>
<p><strong>Third Rule</strong><br />
This selects the current page number (again) without affecting the link hover effect as well (like the second rule).  This just makes the current page number a bold font weight.</p>
<p>The reason I didn&#8217;t include it with the link hover effect is because it has an uneven effect going from normal to bold font weight.</p>
<p><strong>Note:</strong> Depending on how your CSS is coded, you may have to use more specific selectors.  For example, if there are styles for <code>#content a</code> and your WP-PageNavi is inside the content div, you may have to rewrite your PageNavi CSS as <code>#content .wp-pagenavi a</code> and override any other less-specific styles.</p>
<h3>Conclusion</h3>
<p>I know this was a relatively simple example, you could have a lot more advanced CSS rules to differentiate the various links and other elements even more.  Hopefully you picked up a few CSS tips along the way too.</p>
<p>Optional WP-PageNavi integration is a pretty cool feature theme developers could integrate in their themes.  With the integration method I outlined above, users could easily choose whether or not to use it, and it could be a nice option for a lot of blogs.</p>
<p>Hope you all liked the tutorial, and if you have any requests for future WordPress tutorials or CSS tips, let me know in the comments.</p>


<p>Related posts:<ol><li><a href='http://www.themelab.com/2008/04/04/the-ultimate-guide-to-the-wordpress-loop/' rel='bookmark' title='Permanent Link: The Ultimate Guide to the WordPress Loop'>The Ultimate Guide to the WordPress Loop</a></li><li><a href='http://www.themelab.com/2010/05/18/custom-twitter-widget-tutorial/' rel='bookmark' title='Permanent Link: Make A Custom Twitter Widget Without A Plugin'>Make A Custom Twitter Widget Without A Plugin</a></li><li><a href='http://www.themelab.com/2008/04/14/the-ultimate-guide-to-wordpress-conditional-tags/' rel='bookmark' title='Permanent Link: The Ultimate Guide to WordPress Conditional Tags'>The Ultimate Guide to WordPress Conditional Tags</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.themelab.com/2010/05/04/wp-pagenavi-styling/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Dissecting Astatic &#8211; Thematic Child Theme Tutorial</title>
		<link>http://www.themelab.com/2010/04/10/dissecting-astatic-thematic-child-theme-tutorial/</link>
		<comments>http://www.themelab.com/2010/04/10/dissecting-astatic-thematic-child-theme-tutorial/#comments</comments>
		<pubDate>Sat, 10 Apr 2010 17:53:26 +0000</pubDate>
		<dc:creator>Leland</dc:creator>
				<category><![CDATA[Child Themes]]></category>
		<category><![CDATA[WordPress Tutorials]]></category>

		<guid isPermaLink="false">http://www.themelab.com/?p=1827</guid>
		<description><![CDATA[
			
				
			
		
Last weekend I released a free Thematic child theme called Astatic.  It was probably the most &#8220;advanced&#8221; Thematic theme I&#8217;ve ever made as I made use of several theme filters, as well as CSS styling to make certain pages look differently using the same HTML markup.
In this tutorial, I&#8217;ll go over:

The very basics of [...]


Related posts:<ol><li><a href='http://www.themelab.com/2010/04/03/astatic-free-thematic-child-theme/' rel='bookmark' title='Permanent Link: Astatic &#8211; Free Thematic Child Theme'>Astatic &#8211; Free Thematic Child Theme</a></li><li><a href='http://www.themelab.com/2010/05/08/braintied-free-thematic-child-theme/' rel='bookmark' title='Permanent Link: Braintied &#8211; Free Thematic Child Theme'>Braintied &#8211; Free Thematic Child Theme</a></li><li><a href='http://www.themelab.com/2008/08/30/monochromatic-a-thematic-child-theme/' rel='bookmark' title='Permanent Link: Monochromatic &#8211; A Thematic Child Theme'>Monochromatic &#8211; A Thematic Child Theme</a></li></ol>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.themelab.com%2F2010%2F04%2F10%2Fdissecting-astatic-thematic-child-theme-tutorial%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.themelab.com%2F2010%2F04%2F10%2Fdissecting-astatic-thematic-child-theme-tutorial%2F&amp;source=themelab&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Last weekend I released a free <a href="http://www.themelab.com/2010/04/03/astatic-free-thematic-child-theme/">Thematic child theme</a> called Astatic.  It was probably the most &#8220;advanced&#8221; <a href="http://themeshaper.com/thematic/">Thematic</a> theme I&#8217;ve ever made as I made use of several theme filters, as well as CSS styling to make certain pages look differently using the same HTML markup.</p>
<p>In this tutorial, I&#8217;ll go over:</p>
<ul>
<li>The very basics of making a child theme</li>
<li>How to use Thematic action and filter hooks</li>
<li>How to style pages differently with CSS without changing markup</li>
</ul>
<p><span id="more-1827"></span><br />
<h3>Child Theme Basics</h3>
<p>A child theme technically only needs 1 file, a stylesheet named <code>style.css</code>.  This differs from a normal theme which requires at least two files, <code>index.php</code> <em>and</em> <code>style.css</code>.  Here&#8217;s what the header of a very basic child theme&#8217;s stylesheet should look like:</p>
<pre><code>/*
Theme Name: Astatic
Theme URI: http://www.themelab.com/free-wordpress-themes/
Description: A very minimal child theme of Thematic
Author: Theme Lab
Author URI: http://www.themelab.com/
Template: thematic
Version: 0.1
*/</code></pre>
<p>Notice the line second from the bottom which says <code>Template: thematic</code>.  This is what sets the parent theme to whatever theme is in your /wp-content/themes/<strong>thematic</strong>/ directory.</p>
<p>You <em>could</em> change this to whatever directory you wanted to inheirit all the parent theme stuff from <a href="http://themeshaper.com/wordpress-theme-blank-framework/">any other theme</a>, for purposes of this tutorial we&#8217;ll stick with Thematic though.</p>
<p>Ever since WordPress 2.7, you can also make pretty much any template file you want in your child theme directory to have it override the parent theme&#8217;s template.</p>
<p>Since Thematic has a boatload of action <a href="http://themeshaper.com/thematic/guide/?page_id=10">hooks</a> and <a href="http://themeshaper.com/thematic/guide/?page_id=12">filters</a>, you probably won&#8217;t need to do that.  You can make just about any change you want through just a <code>functions.php</code> file in your child theme directory.</p>
<h3>Thematic Hooks and Filters</h3>
<p>You can take advantage of Thematic&#8217;s built-in hooks and filters by placing a file called <code>functions.php</code> in your child theme directory.</p>
<p>I used these for removing bits of code from the template without altering the parent theme files.  For example, the first part of Astatic&#8217;s functions file removes the Javascript code from the head of the document.</p>
<p>It was mostly used for Jquery dropdown menus for navigation.  Since I was only planning on having a simple one-level-deep page navigation, I decided to remove it.  Here&#8217;s the code I used.</p>
<pre><code>function remove_thematic_js() {
    remove_action(&#039;wp_head&#039;,&#039;thematic_head_scripts&#039;);
}
add_action(&#039;init&#039;,&#039;remove_thematic_js&#039;);</code></pre>
<p><strong>Code Explanation</strong></p>
<ol>
<li>The first line is where I named the function.  This could be named whatever you want but it&#8217;s best if you use a descriptive function name.  I used <code>remove_thematic_js</code> because, well, the function is for removing Thematic&#8217;s JS.</li>
<li>The second line is where I define what the function does.  In this case, I&#8217;m removing the <code>thematic_head_scripts</code> from the <code>wp_head</code> hook</li>
<li>The final line makes the magic happen.</li>
</ol>
<h3>Overriding Thematic Functions</h3>
<p>To &#8220;override&#8221; a function, you first have to remove it, then code a new function to replace it.  I did this with the <code>thematic_blogtitle</code> function, so I could wrap h1 tags around it on non-singular pages.  First, the removal code:</p>
<pre><code>function remove_thematic_blogtitle() {
    remove_action(&#039;thematic_header&#039;,&#039;thematic_blogtitle&#039;,3);
}
add_action(&#039;init&#039;,&#039;remove_thematic_blogtitle&#039;);</code></pre>
<p>Pretty much identical to the above, except for one seemingly minor detail.  Notice the number &#8220;3&#8243; in the <code>remove_action</code> line?  This is the priority defined in Thematic&#8217;s original function files, which needs to match in our function, or it won&#8217;t work.</p>
<p>You can find more of these functions in Thematic&#8217;s library files.  Just make sure the hook name (in this case, <code>thematic_header</code>) and the priority (if applicable) match.</p>
<p>Now, here&#8217;s the new and improved blogtitle function:</p>
<pre><code>function new_blogtitle() {
if (is_home() || is_front_page()) { ?&gt;
&lt;h1 id=&quot;blog-title&quot;&gt;&lt;a href=&quot;&lt;?php bloginfo(&#039;url&#039;) ?&gt;/&quot; title=&quot;&lt;?php bloginfo(&#039;name&#039;) ?&gt;&quot; rel=&quot;home&quot;&gt;&lt;?php bloginfo(&#039;name&#039;) ?&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;?php } else { ?&gt;
&lt;div id=&quot;blog-title&quot;&gt;&lt;a href=&quot;&lt;?php bloginfo(&#039;url&#039;) ?&gt;/&quot; title=&quot;&lt;?php bloginfo(&#039;name&#039;) ?&gt;&quot; rel=&quot;home&quot;&gt;&lt;?php bloginfo(&#039;name&#039;) ?&gt;&lt;/a&gt;&lt;/div&gt;
&lt;?php }
}
add_action(&#039;thematic_header&#039;,&#039;new_blogtitle&#039;,3);</code></pre>
<p><strong>Code Explanation</strong></p>
<ol>
<li>First line, is once again, to name the function.  Since this is for a new blog title, I&#8217;ll call it <code>new_blogtitle</code>.  Remember, descriptive names.</li>
<li>The second line is a <a href="http://www.themelab.com/2008/04/14/the-ultimate-guide-to-wordpress-conditional-tags/" title="The Ultimate Guide to WordPress Conditional Tags">conditional tag</a> which checks to see if you&#8217;re on the homepage or front page (basically the only pages which use h1 tags for the blog title).</li>
<li>The &#8220;else&#8221; portion is identitcal to the first part, except the <code>blog-title</code> ID is wrapped in <code>&lt;div&gt;</code> tags rather than <code>&lt;h1&gt;</code>.</li>
<li>The final line adds the action to <code>thematic_header</code> with priority 3 (remember, the same number we used to remove the old blog title function.</li>
</ol>
<h3>Excerpt Display on Homepage</h3>
<p>By default, Thematic displays the full post on the homepage (as opposed to an excerpt).  Since I want it to be consistent with all archive and search pages (which have excerpts by default) I needed to change it.  Here&#8217;s the code I used:</p>
<pre><code>function astatic_content($content) {
	if (is_home() || is_front_page()) {
		$content= &#039;excerpt&#039;;}
	return $content;
}
add_filter(&#039;thematic_content&#039;, &#039;astatic_content&#039;);</code></pre>
<p>On top of that, I wanted to limit the amount of words in the excerpt to 20.</p>
<pre><code>function new_excerpt_length($length) {
	return 20;
}
add_filter(&#039;excerpt_length&#039;, &#039;new_excerpt_length&#039;);</code></pre>
<p>Credits to <a href="http://wpengineer.com/wordpress-2-9-new-excerpt-filters/">WP Engineer</a> for the above code, which could be used on any WordPress theme (not just Thematic).</p>
<p>Of course, you can change the &#8220;20&#8243; to whatever you want, just keep in mind you may have to increase the height of the non-singular posts to accommodate more excerpt words, which we&#8217;ll go over next.</p>
<h3>Changing the Look With CSS</h3>
<p>Now on to my favorite part, the CSS.  You&#8217;ll notice on any index pages (main index, archives, categories, tags, and search) posts are laid out in two columns.  The markup between these and singular pages (single posts and pages) are essentially identical.</p>
<p>I used the <code>.not-singular</code> class to style the index posts differently.  This class is output in the <code>&lt;body&gt;</code> tag on any index pages through the <a href="http://codex.wordpress.org/Template_Tags/body_class">body_class</a> function.</p>
<p>I used the following snippet of code to style posts on these index pages.</p>
<pre><code>.not-singular .post {
	width: 400px;
	height: 150px;
	float: left;
	margin-right: 50px;
	}</code></pre>
<p><strong>Code Explanation</strong></p>
<ol>
<li>The first line selects only non-singular posts, since that&#8217;s all we want to style onw.</li>
<li>The next two lines give a fixed height and width to the div, this will help the posts look neat.</li>
<li>The <code>float: left</code> makes the post float to the left, which forms the &#8220;columns&#8221;.</li>
<li>The right margin sets 50 pixels of space between the two columns, so they aren&#8217;t crammed.</li>
</ol>
<p>Remember, the body classes change from page to page, depending on what type of page you&#8217;re on.  Let&#8217;s say you&#8217;re on a &#8220;Pink&#8221; category archive page, a body class called <code>category-pink</code> will be made available, and you could set the entire background of the page with the following code: <code>body.category-pink { background-color: pink; }</code>.</p>
<p>Keep in mind, pink background would probably make your visitors want to gauge their eyes out, although hopefully you get the idea of the potential of <code>body_class</code>.  You can also take advantage of <a href="http://codex.wordpress.org/Template_Tags/post_class">post_class</a> which functions very similarly for styling various types of posts, also integrated in Thematic.</p>
<h3>Footer Navigation</h3>
<p>Since I removed every single page navigation menu through filtering, I decided I would insert a basic page menu through the <code>thematic_abovefooter</code> hook.</p>
<pre><code>function astatic_footernav() {
?&gt;
&lt;ul id=&quot;footer-nav&quot;&gt;
&lt;li id=&quot;home-link&quot;&gt;&lt;a href=&quot;&lt;?php bloginfo(&#039;url&#039;); ?&gt;/&quot;&gt;&lt;?php _e(&#039;Home&#039;, &#039;thematic&#039;); ?&gt;&lt;/a&gt;&lt;/li&gt;
&lt;?php wp_list_pages(&#039;title_li=&amp;depth=1&#039;) ?&gt;
&lt;/ul&gt;
&lt;?php
}
add_action(&#039;thematic_abovefooter&#039;, &#039;astatic_footernav&#039;, 10);</code></pre>
<p>This is just a basic, one level deep page menu including a translation-friendly &#8220;Home&#8221; link.  Here&#8217;s the CSS code to style it:</p>
<pre><code>#footer-nav { clear: both; list-style: none; text-align: center; padding: 50px 0 20px; }
#footer-nav li { border-left: 1px solid #000; display: inline; padding: 0 10px; }
#footer-nav li#home-link { border-left: 0; }</code></pre>
<p><strong>Code Explanation</strong></p>
<ol>
<li>The <code>#footer-nav</code> clears any floats with <code>clear:both</code>, removes the default bullets with <code>list-style:none</code>, aligns the menu to the center, and adds sufficient padding above and below the list.</li>
<li><code>#footer-nav li</code> adds a 1 pixel border (or separator) to the left of every list item, sets them all up on one line, and adds padding to the left and right.</li>
<li><code>#footer-nav li#home-link</code> makes sure no border is displayed to the left of the &#8220;Home&#8221; link, since that would look slightly odd.</li>
</ol>
<h3>Footer Link</h3>
<p>I decided to add a footer link back to the Astatic theme page, in case any visitor of an Astatic site was wondering what theme it was using.  I used the following code.</p>
<pre><code>function childtheme_theme_link($themelink) {
    return $themelink . &#039; &amp; &lt;a href=&quot;http://www.themelab.com/2010/04/03/astatic-free-thematic-child-theme/&quot; title=&quot;Astatic Thematic Child Theme&quot;&gt;Astatic&lt;/a&gt;&#039;;
}
add_filter(&#039;thematic_theme_link&#039;, &#039;childtheme_theme_link&#039;);</code></pre>
<p><strong>Note:</strong> Please use <code>&amp;amp;<!--formatted--></code> instead of a straight ampersand.  I changed it above because it was messing up the code display for some reason.</p>
<p>Basically I&#8217;m piggybacking on top of the default &#8220;Thematic Theme Framework&#8221; link, which can be removed in the Thematic Options page.  I picked up this tip from this <a href="http://themeshaper.com/guide-customizing-thematic-theme-framework/">guide to customizing Thematic</a>.</p>
<h3>Conclusion</h3>
<p>Make sure to download the <a href="http://www.themelab.com/2010/04/03/astatic-free-thematic-child-theme/">Astatic theme</a> and take a peek at the code for a more in-depth look at what went on during the development.</p>
<p>For any more Thematic information, <a href="http://themeshaper.com/">ThemeShaper</a> is the ultimate resource, including their <a href="http://themeshaper.com/forums/">forums</a>.  It also may be worth following a site called <a href="http://thematic4you.com/">Thematic 4 You</a> which is run by Thematic lead developer, Chris Gossmann.</p>
<p>I plan on doing even more detailed (if that&#8217;s even possible) &#8220;theme dissection&#8221; tutorials in the <a href="http://underground.themelab.com">Underground</a> when it&#8217;s ready.  Make sure you sign up to the email list on the previously linked page for any news regarding that, among other goodies.</p>
<p>Phew.  I hope you learned a little something hear about making Thematic child themes, and hopefully about child themes in general.  Let me know what you think in the comments.</p>


<p>Related posts:<ol><li><a href='http://www.themelab.com/2010/04/03/astatic-free-thematic-child-theme/' rel='bookmark' title='Permanent Link: Astatic &#8211; Free Thematic Child Theme'>Astatic &#8211; Free Thematic Child Theme</a></li><li><a href='http://www.themelab.com/2010/05/08/braintied-free-thematic-child-theme/' rel='bookmark' title='Permanent Link: Braintied &#8211; Free Thematic Child Theme'>Braintied &#8211; Free Thematic Child Theme</a></li><li><a href='http://www.themelab.com/2008/08/30/monochromatic-a-thematic-child-theme/' rel='bookmark' title='Permanent Link: Monochromatic &#8211; A Thematic Child Theme'>Monochromatic &#8211; A Thematic Child Theme</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.themelab.com/2010/04/10/dissecting-astatic-thematic-child-theme-tutorial/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Useful Alternatives to the Dreaded Monthly Archive Links</title>
		<link>http://www.themelab.com/2010/03/27/useful-alternatives-monthly-archive-links/</link>
		<comments>http://www.themelab.com/2010/03/27/useful-alternatives-monthly-archive-links/#comments</comments>
		<pubDate>Sat, 27 Mar 2010 12:33:20 +0000</pubDate>
		<dc:creator>Leland</dc:creator>
				<category><![CDATA[WordPress Tutorials]]></category>

		<guid isPermaLink="false">http://www.themelab.com/?p=1762</guid>
		<description><![CDATA[
			
				
			
		
In a lot of WordPress sites&#8217; sidebars, you&#8217;ll probably see the monthly archive links make an appearance.  These are a list of links that categorize your post by month.  If you want to get more specific, you can even group the posts by week or even day.  Unless you&#8217;re using widgets, these [...]


Related posts:<ol><li><a href='http://www.themelab.com/2008/05/26/the-easy-way-to-display-recent-posts-in-wordpress/' rel='bookmark' title='Permanent Link: The Easy Way To Display Recent Posts in WordPress'>The Easy Way To Display Recent Posts in WordPress</a></li><li><a href='http://www.themelab.com/2010/06/15/wordpress-tweet-archive/' rel='bookmark' title='Permanent Link: How To Create a Searchable Tweet Archive with WordPress'>How To Create a Searchable Tweet Archive with WordPress</a></li><li><a href='http://www.themelab.com/2008/04/14/the-ultimate-guide-to-wordpress-conditional-tags/' rel='bookmark' title='Permanent Link: The Ultimate Guide to WordPress Conditional Tags'>The Ultimate Guide to WordPress Conditional Tags</a></li></ol>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.themelab.com%2F2010%2F03%2F27%2Fuseful-alternatives-monthly-archive-links%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.themelab.com%2F2010%2F03%2F27%2Fuseful-alternatives-monthly-archive-links%2F&amp;source=themelab&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>In a lot of WordPress sites&#8217; sidebars, you&#8217;ll probably see the monthly archive links make an appearance.  These are a list of links that categorize your post by month.  If you want to get more specific, you can even group the posts by week or even day.  Unless you&#8217;re using widgets, these lists are output using the wp_get_archives function.  Here are some examples:</p>
<ul>
<li><code>&lt;?php wp_get_archives(); ?&gt;</code> &#8211; Lists the monthly archives (no parameters needed, it&#8217;s monthly by default)</li>
<li><code>&lt;?php wp_get_archives(&#039;type=weekly&#039;); ?&gt;</code> &#8211; Lists the weekly archives</li>
<li><code>&lt;?php wp_get_archives(&#039;type=daily&#039;); ?&gt;</code> &#8211; Lists the daily archives</li>
<li><strong>Bonus:</strong> <code>&lt;?php wp_get_archives(&#039;type=yearly&#039;); ?&gt;</code> &#8211; Lists the yearly archives</li>
</ul>
<p>So what&#8217;s the problem?  Well, depending on the site, monthly archive links aren&#8217;t very useful to your visitors.  I mean, how many times have you visited a site and said &#8220;Hmm&#8230;I want to check out some posts written in January 2008&#8243;?</p>
<p>Probably never, and these links waste valuable space in your sidebar (or footer, whatever) that could be occupied by more useful links.</p>
<p>In this post, we&#8217;ll go over how to insert the following into your WordPress theme, including a widget alternative (if available):</p>
<ul>
<li>Popular post links (three separate methods)</li>
<li>Featured articles/links using the Blogroll</li>
<li>Recent post links</li>
</ul>
<p>There are a few methods to get a link list of popular/useful posts.  Here they are:</p>
<p><span id="more-1762"></span></p>
<h3>Popular Posts by Comments</h3>
<p>Sometimes the quantity of comments is a good way to gauge a post&#8217;s popularity.  If you want to generate a list of links with your most commented posts, here&#8217;s the code for that:</p>
<p>First, paste the following function in your <code>functions.php</code> file:</p>
<pre><code>function popularPosts($num) {
    global $wpdb;

    $posts = $wpdb-&gt;get_results(&quot;SELECT comment_count, ID, post_title FROM $wpdb-&gt;posts ORDER BY comment_count DESC LIMIT 0 , $num&quot;);

    foreach ($posts as $post) {
        setup_postdata($post);
        $id = $post-&gt;ID;
        $title = $post-&gt;post_title;
        $count = $post-&gt;comment_count;

        if ($count != 0) {
            $popular .= &#039;&lt;li&gt;&#039;;
            $popular .= &#039;&lt;a href=&quot;&#039; . get_permalink($id) . &#039;&quot; title=&quot;&#039; . $title . &#039;&quot;&gt;&#039; . $title . &#039;&lt;/a&gt; &#039;;
            $popular .= &#039;&lt;/li&gt;&#039;;
        }
    }
    return $popular;
}</code></pre>
<p>Then paste the following into your sidebar (or wherever you want a list of popular posts by comments):</p>
<pre><code>&lt;ul&gt;
     &lt;?php echo popularPosts(10); ?&gt;
&lt;/ul&gt;</code></pre>
<p>You can change the &#8220;10&#8243; to however many posts you want.  I&#8217;m assuming you already have CSS in place in your theme for lists like this, so I won&#8217;t go over any CSS styling.</p>
<p><strong>Source</strong>: <a href="http://bavotasan.com/tutorials/how-to-list-your-most-popular-posts-in-wordpress/">How to List Your Most Popular Posts in WordPress</a></p>
<h3>&#8220;Currently Hot&#8221; List</h3>
<p> &#8211; This is a relatively new method of generating a list of popular posts.  It requires you use the <a href="http://wordpress.org/extend/plugins/stats/">WordPress.com Stats</a> plugin.  Here&#8217;s the code:</p>
<pre><code>&lt;?php
	if (function_exists(&#039;stats_get_csv&#039;)) {
		$top_posts = stats_get_csv (&#039;postviews&#039;, &#039;days=7&amp;limit=8&#039;);

		if (count($top_posts) &gt; 0) {
			echo &#039;&lt;ol&gt;&#039;;
			foreach ($top_posts as $p) {
?&gt;
				&lt;li&gt;&lt;a href=&quot;&lt;?php echo $p[&#039;post_permalink&#039;]; ?&gt;&quot;&gt;&lt;?php echo $p[&#039;post_title&#039;]; ?&gt;&lt;/a&gt;&lt;/li&gt;
&lt;?php
			}
			echo &#039;&lt;/ol&gt;&#039;;
		}

	}
?&gt;</code></pre>
<p><strong>Remember</strong>: You need the WordPress.com stats plugin activated for this code to work.  If you just installed it, you should probably leave it on for a few days to collect enough relevant data before using it.</p>
<p>If you want to hide the smiley face added by the plugin, make sure you <a href="http://www.themelab.com/2010/02/27/hide-the-wordpress-stats-smiley/" title="How to Hide the WordPress Stats Smiley the Right Way">hide it the right way</a>.</p>
<p><strong>Hint</strong>: Change the &#8220;ol&#8221; tags to &#8220;ul&#8221; if you want an unordered list instead of a numbered list.</p>
<p><strong>Source</strong>: <a href="http://www.binarymoon.co.uk/2010/03/ultimate-add-popular-posts-wordpress-blog-1-line-code/">Quick and Easy Popular Posts for Your WordPress Blog</a></p>
<h3>Featured Articles with Blogroll</h3>
<p>Using WordPress&#8217; built-in blogroll functionality, you can manually select a link to whichever posts you want.  This is probably the most flexible way since you have the most control over how your links are displayed, and they don&#8217;t even have to be on your site.</p>
<p>You can also categorize your links and list them all in separate lists, using just one line of code with the built-in <a href="http://codex.wordpress.org/Template_Tags/wp_list_bookmarks">wp_list_bookmarks</a> function.</p>
<pre><code>&lt;?php wp_list_bookmarks(&#039;title_before=&lt;h3&gt;&amp;title_after=&lt;/h3&gt;&amp;category_before=&amp;category_after=&#039;); ?&gt;</code></pre>
<p>This will output all your blogroll list categories with &#8220;h3&#8243; titles.  Depending on your sidebar&#8217;s markup, you may want to add code to be displayed before and after each list.</p>
<p>If you want to exclude any categories, you can use the <code>exclude_category</code> parameter with a comma-separated list of link category IDs.</p>
<p>If you don&#8217;t know how to use the blogroll feature, I found this pretty nice screencast on <a href="http://wordpress.tv">WordPress.tv</a> (try watching it in full screen mode).</p>
<p style="text-align:center"><embed src="http://v.wordpress.com/wp-content/plugins/video/flvplayer.swf?ver=1.18" type="application/x-shockwave-flash" width="400" height="224" seamlesstabbing="true" allowfullscreen="true" allowscriptaccess="always" overstretch="true" flashvars="guid=jXq9MTNO&amp;width=400&amp;height=224&amp;locksize=no&amp;qc_publisherId=p-18-mFEk4J448M" title="Adding a new link"></embed></p>
<h3>Recent Post Links</h3>
<p>This is something pretty simple that I&#8217;ve <a href="http://www.themelab.com/2008/05/26/the-easy-way-to-display-recent-posts-in-wordpress/">gone over before</a>.  Using the same <code>wp_get_archives</code> function we went over above, you can modify to get a list of recent posts.</p>
<pre><code>&lt;?php wp_get_archives(&#039;title_li=&amp;type=postbypost&amp;limit=10&#039;); ?&gt;</code></pre>
<p>The <code>type=postbypost</code> is the type to use.  If you have a ton of posts, I&#8217;d recommend using a limit so all of your posts don&#8217;t show up.</p>
<p>You can also use the &#8220;Recent Posts&#8221; widget, assuming your sidebar is <a href="http://www.themelab.com/2008/04/18/see-how-easy-it-is-to-widgetize-wordpress-themes/" title="See How Easy It Is To Widgetize WordPress Themes">widgetized</a>.</p>
<h3>Conclusion</h3>
<p>I know on some sites, monthly archive links can be useful, like perhaps on a news site, or an &#8220;of the day&#8221; site (like for cartoons or recipes).</p>
<p>Some people glance at them just to see how long the blog has been active, it can help credibility (hint: add the <code>show_post_count=1</code> parameter to show a post count next to monthly archive links).</p>
<p>Most of the time, however, it&#8217;s a waste of space.  It can be replaced with some other much more useful links, like popular content or related posts that users would find more value in.</p>
<p>Any monthly archive links could be placed on a <a href="http://www.themelab.com/2008/05/06/make-a-sitemap-page-for-your-wordpress-blog/" title="Make a Sitemap Page For Your WordPress Blog">site map page</a> and out of your sidebar.</p>
<p>In the comments, I&#8217;d be interested to hear your feedback.  Do you use monthly archive links?  When do you think they could be relevant?  Do you have any other useful alternative examples?</p>


<p>Related posts:<ol><li><a href='http://www.themelab.com/2008/05/26/the-easy-way-to-display-recent-posts-in-wordpress/' rel='bookmark' title='Permanent Link: The Easy Way To Display Recent Posts in WordPress'>The Easy Way To Display Recent Posts in WordPress</a></li><li><a href='http://www.themelab.com/2010/06/15/wordpress-tweet-archive/' rel='bookmark' title='Permanent Link: How To Create a Searchable Tweet Archive with WordPress'>How To Create a Searchable Tweet Archive with WordPress</a></li><li><a href='http://www.themelab.com/2008/04/14/the-ultimate-guide-to-wordpress-conditional-tags/' rel='bookmark' title='Permanent Link: The Ultimate Guide to WordPress Conditional Tags'>The Ultimate Guide to WordPress Conditional Tags</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.themelab.com/2010/03/27/useful-alternatives-monthly-archive-links/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>How to Create a Comments Central Page Template in WordPress</title>
		<link>http://www.themelab.com/2010/02/24/how-to-create-a-comments-central-page-template-in-wordpress/</link>
		<comments>http://www.themelab.com/2010/02/24/how-to-create-a-comments-central-page-template-in-wordpress/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 15:15:57 +0000</pubDate>
		<dc:creator>Hafiz Rahman</dc:creator>
				<category><![CDATA[WordPress Tutorials]]></category>

		<guid isPermaLink="false">http://www.themelab.com/?p=1552</guid>
		<description><![CDATA[
			
				
			
		
One way to increase visitor engagements is to reward their comments by showcasing them on your website. Additionally, you can also feature the top commenters as well, linking back to their website in the process. Here we&#8217;ll create a dedicated Page Template to  display those comments and commenters in one place.
In short, this tutorial [...]


Related posts:<ol><li><a href='http://www.themelab.com/2008/05/09/add-gravatar-support-to-your-wordpress-comments/' rel='bookmark' title='Permanent Link: Add Gravatar Support to Your WordPress Comments'>Add Gravatar Support to Your WordPress Comments</a></li><li><a href='http://www.themelab.com/2008/04/28/you-dont-need-a-blog-on-your-front-page/' rel='bookmark' title='Permanent Link: You Don&#8217;t Need a Blog On Your Front Page'>You Don&#8217;t Need a Blog On Your Front Page</a></li><li><a href='http://www.themelab.com/2010/03/27/useful-alternatives-monthly-archive-links/' rel='bookmark' title='Permanent Link: Useful Alternatives to the Dreaded Monthly Archive Links'>Useful Alternatives to the Dreaded Monthly Archive Links</a></li></ol>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.themelab.com%2F2010%2F02%2F24%2Fhow-to-create-a-comments-central-page-template-in-wordpress%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.themelab.com%2F2010%2F02%2F24%2Fhow-to-create-a-comments-central-page-template-in-wordpress%2F&amp;source=themelab&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>One way to increase visitor engagements is to reward their comments by showcasing them on your website. Additionally, you can also feature the top commenters as well, linking back to their website in the process. Here we&#8217;ll create a dedicated Page Template to  display those comments and commenters in one place.</p>
<p>In short, this tutorial will teach you how to:</p>
<ol>
<li>create a Page Template,</li>
<li>use SQL queries in your code to fetch comments with varying parameters,</li>
<li>create a section of the Page that&#8217;s only viewable by Admin,</li>
<li>add support for a comment-related plugin.</li>
</ol>
<p><span id="more-1552"></span></p>
<h3>Creating a Page Template</h3>
<p>The easiest way to create a Page Template is to open the page.php file in your theme, which will roughly look like this:</p>
<pre>
&lt;?php get_header(); ?&gt;
  &lt;div id="content"&gt;
    &lt;?php if (have_posts()) : while (have_posts()) : the_post(); ?&gt;
    &lt;div class="post" id="post-&lt;?php the_ID(); ?&gt;"&gt;

    &lt;h2 class="page_title"&gt;&lt;?php the_title(); ?&gt;&lt;/h2&gt;
      &lt;?php the_content(); ?&gt;
    &lt;/div&gt;
    &lt;?php comments_template(); ?&gt;
    &lt;?php endwhile; endif; ?&gt;
  &lt;/div&gt;

&lt;?php get_sidebar(); ?&gt;
&lt;?php get_footer(); ?&gt;
</pre>
<p>Copy and paste page.php&#8217;s content and add this to the very top:</p>
<pre>
&lt;?php
/*
Template Name: Comments Central
 */
?&gt;
</pre>
<p>And save it. There&#8217;s no real rules on naming a Page Template file, but it&#8217;s a good idea to go with a prefix to make it recognizable, say &#8220;pt-comment-central.php&#8221;. We haven&#8217;t added anything into this Page Template, but it&#8217;s up and running and selectable on the write new Page dashboard area.</p>
<h3>Fetching Comments</h3>
<p>For this Page Template, we&#8217;ll feature four different aspects of comments:</p>
<ul>
<li>Recent Comments,</li>
<li>Recent Trackbacks / Pingbacks,</li>
<li>Top Commenters,</li>
<li>Most Commented Posts,</li>
</ul>
<p>First, we&#8217;ll do <strong>Recent Comments</strong>:</p>
<pre>
&lt;h3&gt;Recent Comments&lt;/h3&gt;
&lt;ul id="cc-recent-comments"&gt;
&lt;?php
  $max = 7; // number item to get
  global $wpdb;
  $sql = "SELECT c.*, p.post_title FROM $wpdb-&gt;comments c INNER JOIN $wpdb-&gt;posts p ON (c.comment_post_id=p.ID) WHERE comment_approved = '1' AND comment_type not in ('trackback','pingback') ORDER BY comment_date DESC LIMIT $max";
  $results = $wpdb-&gt;get_results($sql);

  $template = '%g &lt;a href="%au"&gt;%an&lt;/a&gt; on &lt;a href="%pu#comment-%cid"&gt;%pt&lt;/a&gt;';

  $echoed = 0;
  foreach ($results as $row) {
    $tags = array('%ct','%cd','%g','%pt','%pu','%au','%an','%cid');
    $replacements = array($row-&gt;comment_title,$row-&gt;comment_date,get_avatar($row-&gt;comment_author_email,'32'),$row-&gt;post_title,get_permalink($row-&gt;comment_post_ID),$row-&gt;comment_author_url,$row-&gt;comment_author,$row-&gt;comment_ID);
    echo '&lt;li&gt;' . str_replace($tags,$replacements,$template) . '&lt;/li&gt;';
    $echoed = 1;
  }
  if ($echoed==0)
      echo '&lt;li&gt;No comment found.&lt;/li&gt;';
?&gt;
&lt;/ul&gt;
</pre>
<p>The SQL query asks for all approved comments sorted by date (latest first). $max is where we set the amount of comments to get, 7 in our case. The output of the code above will be an unordered list of recent comments:</p>
<p><img src="http://www.themelab.com/wp-content/uploads/a7ud5.png" alt="List of Recent Comments" /></p>
<p>With a little CSS we can straighten that to look better:</p>
<pre>
#cc-recent-comments li {
  width: 100%;
  float: left;
  list-style-type: none;
}

#cc-recent-comments li img {
  float: left;
  margin-top: -5px;
}
</pre>
<p><img src="http://www.themelab.com/wp-content/uploads/lEXPU.png" alt="List of Recent Comments with proper CSS" /></p>
<p>$template determines how the actual text will be written; this is based on the format made by <a href="http://wordpress.org/extend/plugins/wp-comment-remix/">WP Comment Remix</a>, and you can follow that link to learn more on customizing it (look for &#8216;tokens&#8217;).</p>
<p>Next is <strong>Recent Pingbacks / Trackbacks</strong>:</p>
<pre>
&lt;h3&gt;Recent Pingbacks / Trackbacks &lt;/h3&gt;
&lt;ul id="cc-recent-trackbacks"&gt;
&lt;?php
  $sql = "SELECT c.*, p.post_title FROM $wpdb-&gt;comments c INNER JOIN $wpdb-&gt;posts p ON (c.comment_post_id=p.ID) WHERE comment_approved = '1' AND comment_type not in ('trackback','pingback') ORDER BY comment_date DESC LIMIT $max";
  $results = $wpdb-&gt;get_results($sql);

  $template = '%g &lt;a href="%au"&gt;%an&lt;/a&gt; on &lt;a href="%pu#comment-%cid"&gt;%pt&lt;/a&gt;';

  $echoed = 0;
  foreach ($results as $row) {
    $tags = array('%ct','%cd','%g','%pt','%pu','%au','%an','%cid');
    $replacements = array($row-&gt;comment_title,$row-&gt;comment_date,get_avatar($row-&gt;comment_author_email,'32'),$row-&gt;post_title,get_permalink($row-&gt;comment_post_ID),$row-&gt;comment_author_url,$row-&gt;comment_author,$row-&gt;comment_ID);
    echo '&lt;li&gt;' . str_replace($tags,$replacements,$template) . '&lt;/li&gt;';
    $echoed=1;
  }
  if ($echoed==0)
    echo '&lt;li&gt;No comment found.&lt;/li&gt;';
?&gt;
&lt;/ul&gt;
</pre>
<p>The code above is very similar to the one we have for Recent Comments, the only differences being that we&#8217;re now asking for comments with &#8216;comment_type&#8217; under &#8216;pingback&#8217; / &#8216;trackback&#8217;, and the template is a bit different as well. Result:</p>
<p><img src="http://www.themelab.com/wp-content/uploads/pDLJE.png" alt="List of Recent Pingbacks and Trackbacks" /></p>
<p>Here&#8217;s the code for <strong>Top Commenters</strong>:</p>
<pre>
&lt;h3&gt;Top Commenters&lt;/h3&gt;
&lt;ul id="cc-top-commenters"&gt;
&lt;?php
$sql = "SELECT comment_author, comment_author_url, comment_author_email, count(comment_ID) as comment_count FROM $wpdb-&gt;comments WHERE comment_approved = '1' AND comment_type not in ('trackback','pingback') GROUP BY comment_author, comment_author_url, comment_author_email ORDER BY comment_count DESC LIMIT $max";
$results = $wpdb-&gt;get_results($sql);

$template = '&lt;a href="%au"&gt;%g %an&lt;/a&gt; (%c comments)';

$echoed = 0;
foreach ($results as $row) {
    $tags = array('%g','%au','%an','%c');
    $replacements = array(get_avatar($row-&gt;comment_author_email,'32'),$row-&gt;comment_author_url,$row-&gt;comment_author,$row-&gt;comment_count);
    echo '&lt;li&gt;' . str_replace($tags,$replacements,$template) . '&lt;/li&gt;';
    $echoed = 1;
}
if ($echoed==0)
    echo '&lt;li&gt;No commenter found.&lt;/li&gt;';
?&gt;
&lt;/ul&gt;
</pre>
<p>Nothing too mind-blowing there. Do notice the cool <a href="http://codex.wordpress.org/Function_Reference/get_avatar"><code>get_avatar()</code></a> function, though, which will give you the Gravatar for anyone whose email address you specify. In this case, we fetch the avatar image using the commenter&#8217;s e-mail address. With the CSS similar to the one we have for recent comments, we can have this result:</p>
<pre>
#cc-top-commenters li {
  width: 100%;
  float: left;
  list-style-type: none;
}

#cc-top-commenters li img {
  float: left;
  margin-top: -5px;
}
</pre>
<p><img src="http://www.themelab.com/wp-content/uploads/YiAJV.png" alt="List of Top Commenters" /></p>
<p>Last is <strong>Most Commented Posts</strong>:</p>
<pre>
&lt;h3&gt;Most Commented Posts&lt;/h3&gt;
&lt;ul id="cc-most-comments"&gt;
$sql = "SELECT p.*, c.comment_count FROM $wpdb-&gt;posts p INNER JOIN (SELECT comment_post_id, count(comment_ID) as comment_count from $wpdb-&gt;comments WHERE comment_approved='1' GROUP BY comment_post_id) c ON (c.comment_post_id=p.ID) ORDER BY c.comment_count DESC LIMIT $max";
$results = $wpdb-&gt;get_results($sql);

$template = '&lt;a href="%pu"&gt;%pt&lt;/a&gt; (%c comments)';

$echoed = 0;
foreach ($results as $row) {
  $tags = array('%pd','%pt','%pu','%c');
  $replacements = array($row-&gt;post_date,$row-&gt;post_title,get_permalink($row-&gt;ID),$row-&gt;comment_count);
  echo '&lt;li&gt;' . str_replace($tags,$replacements,$template) . '&lt;/li&gt;';
  $echoed = 1;
}
if ($echoed==0)
    echo '&lt;li&gt;No commenter found.&lt;/li&gt;';
?&gt;
&lt;/ul&gt;
</pre>
<p><img src="http://www.themelab.com/wp-content/uploads/FWJet.png" alt="List of Most Commented Post" /></p>
<p>And that&#8217;s it. Next, we&#8217;ll add some extra coolness by adding some stuff that only the admin can see.</p>
<h3>Admin-only Information</h3>
<p>To show stuff only for the admins, we can use this code snippet from <a href="wpcandy.com/articles/tutorials/tutorial-content-for-admin-only.html">WPCandy</a>:</p>
<pre>
&lt;?php
global $user_ID;
if( $user_ID ) :
  if( current_user_can('level_10') ) :
  // admin-only stuff here.
  endif;
endif; ?&gt;
</pre>
<p>Now on the Dashboard, we get a quick glance of a site&#8217;s total, approved, pending review and spam comments. Let&#8217;s replicate this for our Page Template for easier, admin-only access:</p>
<pre>
&lt;?php
  $num_comm = wp_count_comments();
?&gt;
Total Comments: &lt;a href="&lt;?php bloginfo('wpurl'); ?&gt;/wp-admin/edit-comments.php?"&gt;&lt;?php echo $num_comm-&gt;total_comments; ?&gt;&lt;/a&gt;
Approved: &lt;a href="&lt;?php bloginfo('wpurl'); ?&gt;/wp-admin/edit-comments.php?comment_status=approved"&gt;&lt;?php echo $num_comm-&gt;approved; ?&gt;&lt;/a&gt;
Moderated: &lt;a href="&lt;?php bloginfo('wpurl'); ?&gt;/wp-admin/edit-comments.php?comment_status=moderated"&gt;&lt;?php echo $num_comm-&gt;moderated; ?&gt;&lt;/a&gt;
Spam: &lt;a href="&lt;?php bloginfo('wpurl'); ?&gt;/wp-admin/edit-comments.php?comment_status=spam"&gt;&lt;?php echo $num_comm-&gt;spam; ?&gt; &lt;/a&gt;
</pre>
<p><img src="http://www.themelab.com/wp-content/uploads/QmTkK.png" alt="Admin" /></p>
<p><code>wp_count_comments()</code> is a neat function that returns an array of various comment stat numbers. We&#8217;re adding links to the respective comment administration area too.</p>
<h3>Adding Some Sparks</h3>
<p>Last, say you find a cool comment-related plugins you want to incorporate into this Page Template. Instead of adding more codes, let&#8217;s just add support for it. For this example, I&#8217;ll go with <a href="http://wordpress.org/extend/plugins/activitysparks/">Activity Sparks</a> plugin, which can &#8220;display a &#8217;sparkline&#8217; style graph in your sidebar indicate post and/or comment activity. &#8221; Sounds great to me.</p>
<p>Usually, a plugin&#8217;s readme.txt file will teach you how to add it into your theme files. In our case, the code can be like this:</p>
<pre>
&lt;?php
  if(function_exists('activitysparks')) {
    activitysparks(array('dataset'=&gt;'legend','height_px'=&gt;100,'width_px'=&gt;600,'period'=&gt;30, 'ticks'=&gt;24));
  }
?&gt;
</pre>
<p><img src="http://www.themelab.com/wp-content/uploads/V6LDW.png" alt="ActivitySparks plugin" /></p>
<p><a href="http://codex.wordpress.org/Managing_Plugins#Hiding_Plugins_When_Deactivated"><code>function_exists()</code></a> checks whether a particular function is available; in our case, the <code>activitysparks</code> function, which will be available if the plugin has been uploaded and activated. If it&#8217;s there, we show the graph. If not, then our Page Template won&#8217;t show anything (but it will still run just fine, no errors).</p>
<h3>Result and Example</h3>
<p>An example of this Page Template is <a href="http://www.wplover.com/comments-central">available here</a>. It uses the codes you see here with a few modifications, mostly to keep the HTML structure consistent with the rest of the website. The whole code for that Page Template <a href="http://pastebin.com/u4wBFcYL">is available at Pastebin</a>.</p>
<h3>Credits and Further Readings</h3>
<ul>
<li>
The codes used to display the various recent and top comments are taken from <a href="http://wordpress.org/extend/plugins/wp-comment-remix/">WP Comment Remix</a> plugin. Take a look at its code to learn more things to do with comments, like excluding admin comments from top commenters or how to take into account recent comments only. The <code>$template</code> we use to format the output can be learned more from that page, too.
</li>
<li><a href="http://codex.wordpress.org/Pages#Creating_Your_Own_Page_Templates">Creating Your Own Page Template</a> on the WordPress Codex.</li>
<li><a href="http://www.themelab.com/wpcandy.com/articles/tutorials/tutorial-content-for-admin-only.html">Displaying admin-only content tutorial</a> on WPCandy.</li>


<p>Related posts:<ol><li><a href='http://www.themelab.com/2008/05/09/add-gravatar-support-to-your-wordpress-comments/' rel='bookmark' title='Permanent Link: Add Gravatar Support to Your WordPress Comments'>Add Gravatar Support to Your WordPress Comments</a></li><li><a href='http://www.themelab.com/2008/04/28/you-dont-need-a-blog-on-your-front-page/' rel='bookmark' title='Permanent Link: You Don&#8217;t Need a Blog On Your Front Page'>You Don&#8217;t Need a Blog On Your Front Page</a></li><li><a href='http://www.themelab.com/2010/03/27/useful-alternatives-monthly-archive-links/' rel='bookmark' title='Permanent Link: Useful Alternatives to the Dreaded Monthly Archive Links'>Useful Alternatives to the Dreaded Monthly Archive Links</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.themelab.com/2010/02/24/how-to-create-a-comments-central-page-template-in-wordpress/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Add a Widgetized Footer to Your WordPress Theme</title>
		<link>http://www.themelab.com/2009/04/25/add-a-widgetized-footer-to-your-wordpress-theme/</link>
		<comments>http://www.themelab.com/2009/04/25/add-a-widgetized-footer-to-your-wordpress-theme/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 12:33:34 +0000</pubDate>
		<dc:creator>Leland</dc:creator>
				<category><![CDATA[WordPress Tutorials]]></category>

		<guid isPermaLink="false">http://www.themelab.com/?p=714</guid>
		<description><![CDATA[
			
				
			
		
The inspiration for this tutorial comes from a tweet I received with feedback for the soon-to-be-released RS12 theme.

Although the widgetized footer did not ultimately make it in the release of the RS12 theme, I decided to write this tutorial to show people how exactly to add a widgetized footer in your theme.  In this [...]


Related posts:<ol><li><a href='http://www.themelab.com/2008/04/18/see-how-easy-it-is-to-widgetize-wordpress-themes/' rel='bookmark' title='Permanent Link: See How Easy It Is To Widgetize WordPress Themes'>See How Easy It Is To Widgetize WordPress Themes</a></li><li><a href='http://www.themelab.com/2008/03/06/what-exactly-is-a-widget-ready-wordpress-theme/' rel='bookmark' title='Permanent Link: What exactly is a widget-ready WordPress theme?'>What exactly is a widget-ready WordPress theme?</a></li><li><a href='http://www.themelab.com/2010/05/18/custom-twitter-widget-tutorial/' rel='bookmark' title='Permanent Link: Make A Custom Twitter Widget Without A Plugin'>Make A Custom Twitter Widget Without A Plugin</a></li></ol>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.themelab.com%2F2009%2F04%2F25%2Fadd-a-widgetized-footer-to-your-wordpress-theme%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.themelab.com%2F2009%2F04%2F25%2Fadd-a-widgetized-footer-to-your-wordpress-theme%2F&amp;source=themelab&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>The inspiration for this tutorial comes from a <a href="http://twitter.com/themelab/status/1482906229" title="Tweet I received from zakmorris" rel="nofollow">tweet I received</a> with feedback for the soon-to-be-released <a href="http://www.themelab.com/2009/04/09/rs12-free-wordpress-theme/" title="RS12 - Free WordPress Theme">RS12 theme</a>.</p>
<p style="text-align: center;"><a href="http://www.themelab.com/wp-content/uploads/zakmorris-twitter-response.png" rel="lightbox" title="zakmorris twitter response"><img src="http://www.themelab.com/wp-content/uploads/zakmorris-twitter-response.thumbnail.png" alt="zakmorris twitter response" width="400" height="230" /></a></p>
<p>Although the widgetized footer did not ultimately make it in the release of the RS12 theme, I decided to write this tutorial to show people how exactly to add a widgetized footer in your theme.  In this guide, you&#8217;ll learn:</p>
<ul>
<li>The HTML and CSS code needed to produce the widgetized footer</li>
<li>How to add commonly used WordPress template tags as placeholders</li>
<li>How to widgetize the footer and place widgets inside it</li>
</ul>
<p>There&#8217;s going to be a lot of code in this post, so if you&#8217;re up for it, read on&#8230;</p>
<p><span id="more-714"></span></p>
<p>I&#8217;ll be using the <a href="http://www.themelab.com/2008/10/10/green-rays-free-wordpress-theme/" title="Green Rays - Free WordPress Theme">Green Rays</a> WordPress theme as my example in this tutorial.  At the moment, the footer just has a standard &#8220;copyright&#8221; message and credits.</p>
<h3>The HTML</h3>
<p>The first step is to add the HTML markup.  Let&#8217;s say we&#8217;re going to have three different sections in the widgetized footer with lists of Most Recent Posts, Monthly Archives, and Daily Archives.  We&#8217;ll place this HTML code above the current &#8220;copyright&#8221; line.</p>
<p><code>&lt;div class=&quot;footer-item&quot;&gt;<br />
&lt;h3&gt;Recent Posts&lt;/h3&gt;<br />
&lt;ul&gt;<br />
&lt;li&gt;&lt;a href=&#039;#&#039; title=&#039;Featured post&#039;&gt;Featured post&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#039;#&#039; title=&#039;Blockquotes&#039;&gt;Blockquotes&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#039;#&#039; title=&#039;How the ‘more’ tag works&#039;&gt;How the ‘more’ tag works&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#039;#&#039; title=&#039;Order or Unorder&#039;&gt;Order or Unorder&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;/div&gt;<br />
&lt;div class=&quot;footer-item&quot;&gt;<br />
&lt;h3&gt;Monthy Archives&lt;/h3&gt;<br />
&lt;ul&gt;<br />
&lt;li&gt;&lt;a href=&#039;#&#039; title=&#039;March 2008&#039;&gt;March 2008&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#039;#&#039; title=&#039;February 2008&#039;&gt;February 2008&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#039;#&#039; title=&#039;January 2008&#039;&gt;January 2008&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#039;#&#039; title=&#039;December 2007&#039;&gt;December 2007&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;/div&gt;<br />
&lt;div class=&quot;footer-item&quot;&gt;<br />
&lt;h3&gt;Daily Archives&lt;/h3&gt;<br />
&lt;ul&gt;<br />
&lt;li&gt;&lt;a href=&#039;#&#039; title=&#039;March 7, 2008&#039;&gt;March 7, 2008&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#039;#&#039; title=&#039;February 9, 2008&#039;&gt;February 9, 2008&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#039;#&#039; title=&#039;January 4, 2008&#039;&gt;January 4, 2008&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#039;#&#039; title=&#039;December 22, 2007&#039;&gt;December 22, 2007&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;/div&gt;<br />
&lt;div class=&quot;clear&quot;&gt;&lt;/div&gt;</code></p>
<p>Basically this code puts each &#8220;widget&#8221; in a div.  Inside each widget is a heading and an unordered list with links.  Yes, I know the links don&#8217;t go anywhere.  We&#8217;ll later replace this with WordPress template tags.  Here&#8217;s what we have so far:</p>
<p style="text-align: center;"><a href="http://www.themelab.com/wp-content/uploads/green-rays-footer-1.png" rel="lightbox" title="Green Rays Footer 1"><img src="http://www.themelab.com/wp-content/uploads/green-rays-footer-1.thumbnail.png" alt="Green Rays Footer 1" width="400" height="129" /></a></p>
<h3>The CSS</h3>
<p>As you can see, this isn&#8217;t looking so good without any CSS styling.  Add the following code to your stylesheet.</p>
<p><code>.footer-item {<br />
 float: left;<br />
 width: 33%;<br />
 padding-bottom: 10px;<br />
}<br />
.footer-item ul {<br />
 padding-left: 15px;<br />
}</code></p>
<p>What this code does is float each footer item to the left, which basically means they can be side by side.  The width is set to 33%, which gives enough room for three footer items in a single row.  There is also a little bit of padding added below each footer item.  The second piece is just padding the lists 15 pixels to the left. </p>
<p>Now you can see the HTML and CSS are starting to come together.  Here&#8217;s what you should have so far:</p>
<p style="text-align: center;"><a href="http://www.themelab.com/wp-content/uploads/green-rays-footer-2.png" rel="lightbox" title="Green Rays Footer 2"><img src="http://www.themelab.com/wp-content/uploads/green-rays-footer-2.thumbnail.png" alt="Green Rays Footer 2" width="400" height="61" /></a></p>
<h3>WordPress Code</h3>
<p>At the moment, we have a bunch of empty HTML links, with no actual WordPress code.  Let&#8217;s replace the lists under Recent Posts, Monthly Archives, and Daily Archives with the WordPress template tag equivalents.  Replace what you currently have with the following:</p>
<p><code>&lt;div class=&quot;footer-item&quot;&gt;<br />
&lt;h3&gt;Recent Posts&lt;/h3&gt;<br />
&lt;ul&gt;<br />
&lt;?php wp_get_archives(&#039;type=postbypost&amp;limit=4&#039;); ?&gt;<br />
&lt;/ul&gt;<br />
&lt;/div&gt;<br />
&lt;div class=&quot;footer-item&quot;&gt;<br />
&lt;h3&gt;Monthy Archives&lt;/h3&gt;<br />
&lt;ul&gt;<br />
&lt;?php wp_get_archives(&#039;limit=4&#039;); ?&gt;<br />
&lt;/ul&gt;<br />
&lt;/div&gt;<br />
&lt;div class=&quot;footer-item&quot;&gt;<br />
&lt;h3&gt;Daily Archives&lt;/h3&gt;<br />
&lt;ul&gt;<br />
&lt;?php wp_get_archives(&#039;type=daily&amp;limit=4&#039;); ?&gt;<br />
&lt;/ul&gt;<br />
&lt;/div&gt;</code></p>
<p>The parameters should be pretty self-explanatory, but if you&#8217;re not sure about any of them, try looking up wp_get_archives in the <a href="http://www.themelab.com/wordpress-template-tag-lookup-tool/">WordPress Template Tag Lookup Tool</a>.  Remember, I&#8217;m just using the wp_get_archives() template tags as a placeholder.  We&#8217;ll be switching these out with other WordPress widgets later, after we widgetize the footer.</p>
<h3>Widgetize It</h3>
<p>For this section of the tutorial, I&#8217;ll be borrowing parts from my previous <a href="http://www.themelab.com/2008/04/18/see-how-easy-it-is-to-widgetize-wordpress-themes/" title="See How Easy It Is To Widgetize WordPress Themes">widgetizing themes</a> tutorial.</p>
<p>The first step is to register the &#8220;sidebars.&#8221;  To do this, simply replace the current contents of the functions.php file with the following:</p>
<p><code>&lt;?php<br />
if ( function_exists(&#039;register_sidebar&#039;) )<br />
    register_sidebar(array(<br />
        &#039;name&#039; =&gt; &#039;Sidebar&#039;,<br />
        &#039;before_widget&#039; =&gt; &#039;&lt;div class=&quot;sidebaritem&quot;&gt;&#039;,<br />
        &#039;after_widget&#039; =&gt; &#039;&lt;/div&gt;&#039;,<br />
        &#039;before_title&#039; =&gt; &#039;&lt;h3&gt;&#039;,<br />
        &#039;after_title&#039; =&gt; &#039;&lt;/h3&gt;&#039;,<br />
    ));<br />
if ( function_exists(&#039;register_sidebar&#039;) )<br />
    register_sidebar(array(<br />
        &#039;name&#039; =&gt; &#039;Footer&#039;,<br />
        &#039;before_widget&#039; =&gt; &#039;&lt;div class=&quot;footer-item&quot;&gt;&#039;,<br />
        &#039;after_widget&#039; =&gt; &#039;&lt;/div&gt;&#039;,<br />
        &#039;before_title&#039; =&gt; &#039;&lt;h3&gt;&#039;,<br />
        &#039;after_title&#039; =&gt; &#039;&lt;/h3&gt;&#039;,<br />
    ));<br />
?&gt;</code></p>
<p>Now we&#8217;ll go into sidebar.php and replace the current dynamic sidebar conditional tag with this:</p>
<p><code>&lt;?php if ( !function_exists(&#039;dynamic_sidebar&#039;) || !dynamic_sidebar() ) : ?&gt;</code></p>
<p>With this:</p>
<p><code>&lt;?php if ( !function_exists(&#039;dynamic_sidebar&#039;) || !dynamic_sidebar(&quot;Sidebar&quot;) ) : ?&gt;</code></p>
<p>Now we&#8217;ll go into our footer.php file and wrap the footer items in it&#8217;s own respective sidebar conditional tag.  Right before the first &#8220;sidebar-item&#8221; div, add the following.</p>
<p><code>&lt;?php if ( !function_exists(&#039;dynamic_sidebar&#039;) || !dynamic_sidebar(&quot;Footer&quot;) ) : ?&gt;</code></p>
<p>Right after the final closing &#8220;footer-item&#8221; div (and above the &#8220;clear&#8221; div which we added earlier) we&#8217;ll add the following:</p>
<p><code>&lt;?php endif; ?&gt;</code></p>
<p>Okay, now our sidebar <em>and</em> footer should be widgetized.  Let&#8217;s test it out by adding a few widgets in the footer.  I&#8217;ll add a Blogroll widget, Recent Comments widget, and a text widget.  Here&#8217;s what it should look like:</p>
<p style="text-align: center;"><a href="http://www.themelab.com/wp-content/uploads/green-rays-footer-3.png" rel="lightbox" title="Green Rays Footer 3"><img src="http://www.themelab.com/wp-content/uploads/green-rays-footer-3.thumbnail.png" alt="Green Rays Footer 3" width="400" height="82" /></a></p>
<h3>Conclusion</h3>
<p>Well, that&#8217;s the basics of adding a widgetized footer to your theme.  You may want to add separate styling rules for other types of widgets such as the calendar or search box.  This probably won&#8217;t work with every theme, such as the RS12 theme for example, as it had a non-expandable footer.</p>
<p>If anyone wants the updated Green Rays theme by any chance, you can download it <a href="http://www.themelab.com/downloads/green-rays-updated.zip" rel="nofollow" title="Download the updated Green Rays theme">here</a>.  This way you can see where exactly I added the code.  You can compare it with the <a href="http://www.themelab.com/download/91/" rel="nofollow" title="Download the original Green Rays theme">original theme</a> as well.</p>
<p>Hope you liked the tutorial.  Will you be adding a widgetized footer to your theme?  Is there anything in the code I used above you would do differently?  Questions, comments, suggestions, and criticisms are all welcome, so feel free to sound off in the comments.</p>


<p>Related posts:<ol><li><a href='http://www.themelab.com/2008/04/18/see-how-easy-it-is-to-widgetize-wordpress-themes/' rel='bookmark' title='Permanent Link: See How Easy It Is To Widgetize WordPress Themes'>See How Easy It Is To Widgetize WordPress Themes</a></li><li><a href='http://www.themelab.com/2008/03/06/what-exactly-is-a-widget-ready-wordpress-theme/' rel='bookmark' title='Permanent Link: What exactly is a widget-ready WordPress theme?'>What exactly is a widget-ready WordPress theme?</a></li><li><a href='http://www.themelab.com/2010/05/18/custom-twitter-widget-tutorial/' rel='bookmark' title='Permanent Link: Make A Custom Twitter Widget Without A Plugin'>Make A Custom Twitter Widget Without A Plugin</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.themelab.com/2009/04/25/add-a-widgetized-footer-to-your-wordpress-theme/feed/</wfw:commentRss>
		<slash:comments>59</slash:comments>
		</item>
		<item>
		<title>How To Add PollDaddy Polls On WordPress Blogs</title>
		<link>http://www.themelab.com/2008/10/16/how-to-add-polldaddy-polls-on-wordpress-blogs/</link>
		<comments>http://www.themelab.com/2008/10/16/how-to-add-polldaddy-polls-on-wordpress-blogs/#comments</comments>
		<pubDate>Thu, 16 Oct 2008 16:17:37 +0000</pubDate>
		<dc:creator>Leland</dc:creator>
				<category><![CDATA[WordPress Plugins]]></category>
		<category><![CDATA[WordPress Tutorials]]></category>

		<guid isPermaLink="false">http://www.themelab.com/?p=644</guid>
		<description><![CDATA[
			
				
			
		
It&#8217;s been a long time since I&#8217;ve written a tutorial here.  I thought with Automattic&#8217;s acquisition of PollDaddy, this would be a good opportunity to write one about adding polls to your self-hosted WordPress blogs, more specifically &#8211; PollDaddy polls.  In this tutorial I&#8217;ll go over:

Installing the PollDaddy plugin
Signing up to PollDaddy (if [...]


Related posts:<ol><li><a href='http://www.themelab.com/2008/05/03/easily-add-videos-to-your-wordpress-blogs/' rel='bookmark' title='Permanent Link: Easily Add Videos to Your WordPress Blogs'>Easily Add Videos to Your WordPress Blogs</a></li><li><a href='http://www.themelab.com/2008/06/17/wordpresscom-blogs-now-have-xml-sitemaps/' rel='bookmark' title='Permanent Link: WordPress.com Blogs Now Have XML Sitemaps'>WordPress.com Blogs Now Have XML Sitemaps</a></li><li><a href='http://www.themelab.com/2008/06/27/wordpress-weekend-resources-june-27-2008/' rel='bookmark' title='Permanent Link: WordPress Weekend Resources &#8211; June 27, 2008'>WordPress Weekend Resources &#8211; June 27, 2008</a></li></ol>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.themelab.com%2F2008%2F10%2F16%2Fhow-to-add-polldaddy-polls-on-wordpress-blogs%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.themelab.com%2F2008%2F10%2F16%2Fhow-to-add-polldaddy-polls-on-wordpress-blogs%2F&amp;source=themelab&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>It&#8217;s been a long time since I&#8217;ve written a tutorial here.  I thought with <a href="http://ma.tt/2008/10/polldaddy-goes-automattic/">Automattic&#8217;s acquisition of PollDaddy</a>, this would be a good opportunity to write one about adding polls to your self-hosted WordPress blogs, more specifically &#8211; PollDaddy polls.  In this tutorial I&#8217;ll go over:</p>
<ul>
<li>Installing the PollDaddy plugin</li>
<li>Signing up to PollDaddy (if you don&#8217;t already have an account)</li>
<li>Creating and managing polls from within your WordPress admin panel</li>
<li>Inserting the polls you create into your WordPress posts and pages</li>
</ul>
<p>And now onto the tutorial&#8230;</p>
<p><span id="more-644"></span></p>
<h3>The Plugin</h3>
<p>You can grab this plugin from <a href="http://wordpress.org/extend/plugins/polldaddy/" title="Get the PollDaddy plugin from WordPress.org">this page</a> over at WordPress.org.  After <a href="http://www.themelab.com/2008/03/07/how-to-install-a-wordpress-plugin/" title="How to Install a WordPress Plugin">installing the plugin</a>, you&#8217;ll notice a prompt to input your PollDaddy account details.</p>
<h3>Signing Up</h3>
<p>If you don&#8217;t have a PollDaddy account already, not to worry!  I&#8217;ll walk you through it.  You can sign up for a free account <a href="http://polldaddy.com/free/" title="Sign Up for a Free PollDaddy Account">here</a>.</p>
<p style="text-align: center;"><a href="http://www.themelab.com/wp-content/uploads/polldaddy-free.png" rel="lightbox" title="PollDaddy Free"><img src="http://www.themelab.com/wp-content/uploads/polldaddy-free.thumbnail.png" alt="PollDaddy Free" width="400" height="216" /></a></p>
<p>Fill in your name, e-mail address, and password choice, and you&#8217;re all set.</p>
<h3>Configuring the Plugin</h3>
<p>After this, you&#8217;ll need to go back to your WordPress admin panel and type in the login details you just created.  Upon revisiting the PollDaddy admin page, you&#8217;ll see a new screen to create and manage your polls.</p>
<p style="text-align: center;"><a href="http://www.themelab.com/wp-content/uploads/polldaddy-admin.png" rel="lightbox" title="PollDaddy Admin"><img src="http://www.themelab.com/wp-content/uploads/polldaddy-admin.thumbnail.png" alt="PollDaddy Admin" width="400" height="216" /></a></p>
<p>I&#8217;m not sure what that warning message means, but I&#8217;ll just ignore it and see if the polls work anyway.  Seems some others are having the <a href="http://wordpress.org/support/topic/210707" title="[Plugin: PollDaddy] Error On Activation">same problem</a> as well.</p>
<h3>Creating Polls</h3>
<p>Click the &#8220;Add New&#8221; link to set up your poll.  There&#8217;s an input box for the poll question, as well as three answers.  You can click the &#8220;Add Another&#8221; button for more answer choices.  You can also set up multiple choice polls, randomize the answer order, and allow other answers.</p>
<p style="text-align: center;"><a href="http://www.themelab.com/wp-content/uploads/polldaddy-create-poll.png" rel="lightbox" title="PollDaddy Create Poll"><img src="http://www.themelab.com/wp-content/uploads/polldaddy-create-poll.thumbnail.png" alt="PollDaddy Create Poll" width="400" height="216" /></a></p>
<p>I&#8217;ll choose the &#8220;Simple White&#8221; design and leave the default settings for results and repeat voters.</p>
<p>After clicking the &#8220;Add Poll&#8221; button, I was greeted with a page with two warning messages on it.  After re-logging in to the admin panel (somehow I was logged out) and visited the Polls page, it seems the poll I created was indeed successful.</p>
<h3>Inserting Polls</h3>
<p>The next step is to go write a post, and click the orange button thingy next to <em>Add Media</em>.  You should see a screen like this with your newly created poll.</p>
<p style="text-align: center;"><a href="http://www.themelab.com/wp-content/uploads/polldaddy-send.png" rel="lightbox" title="PollDaddy Send to Editor"><img src="http://www.themelab.com/wp-content/uploads/polldaddy-send.thumbnail.png" alt="PollDaddy Send to Editor" width="400" height="216" /></a></p>
<p>Again, the same warning message pops up.  I&#8217;ll try my best to ignore those since they seem not to make a difference with the actual workings of the plugin.  After sending the poll to the editor, WordPress will generate a shortcode to place in your post.</p>
<h3>Help Me!  It doesn&#8217;t work!</h3>
<p>After saving/publishing, you&#8217;ll notice the actual poll doesn&#8217;t display in your post, just the unparsed shortcode.  To correct this, you&#8217;ll need to install <em>another</em> plugin from PollDaddy.  You can get it <a href="http://support.polldaddy.com/?p=15" title="How do I integrate a poll in my WordPress blog?">here</a>.  I grabbed the one for version 2.5 and above.</p>
<p>I&#8217;m not sure why this plugin isn&#8217;t even mentioned at all on the first plugin&#8217;s page.  I had to check this <a href="http://wordpress.org/support/topic/210731" title="[Plugin: PollDaddy] Not displaying">support thread</a> to find out why the polls weren&#8217;t displaying properly.  Apparently the first plugin was <em>just</em> for creating/managing polls.  This one is for having them display in your WordPress post.</p>
<h3>All Done</h3>
<p>That&#8217;s it.  Here&#8217;s the poll I&#8217;ve just created in action.</p>
<p style="text-align: center;"><a href="http://www.themelab.com/wp-content/uploads/polldaddy-test.png" rel="lightbox[pics644]" title="PollDaddy Test"><img src="http://www.themelab.com/wp-content/uploads/polldaddy-test.thumbnail.png" alt="PollDaddy Test" width="400" height="390" /></a></p>
<p>Pretty cool?</p>
<h3>Conclusion</h3>
<p>First of all, I&#8217;d like to congratulate Matt Mullenweg and Automattic on this awesome acquisition.</p>
<p>It&#8217;s a mystery to me why the plugin for creating/managing polls and the plugin for displaying polls are separate.  Maybe someone can enlighten me.  I personally think that these two plugins should be combined into one.</p>
<p>I think it&#8217;s also worth mentioning the self-hosted <a href="http://lesterchan.net/portfolio/programming/php/#wp-polls">WP-Polls</a> plugin by Lester Chan, if you&#8217;d rather not be dependent on a third-party service.</p>
<p>Hope you all liked the tutorial.  Feel free to comment with your thoughts on the acquisition, the WordPress integration, and the tutorial.  I&#8217;d love to hear them.</p>


<p>Related posts:<ol><li><a href='http://www.themelab.com/2008/05/03/easily-add-videos-to-your-wordpress-blogs/' rel='bookmark' title='Permanent Link: Easily Add Videos to Your WordPress Blogs'>Easily Add Videos to Your WordPress Blogs</a></li><li><a href='http://www.themelab.com/2008/06/17/wordpresscom-blogs-now-have-xml-sitemaps/' rel='bookmark' title='Permanent Link: WordPress.com Blogs Now Have XML Sitemaps'>WordPress.com Blogs Now Have XML Sitemaps</a></li><li><a href='http://www.themelab.com/2008/06/27/wordpress-weekend-resources-june-27-2008/' rel='bookmark' title='Permanent Link: WordPress Weekend Resources &#8211; June 27, 2008'>WordPress Weekend Resources &#8211; June 27, 2008</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.themelab.com/2008/10/16/how-to-add-polldaddy-polls-on-wordpress-blogs/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Dipslaying Code In WordPress Posts</title>
		<link>http://www.themelab.com/2008/06/15/dipslaying-code-in-wordpress-posts/</link>
		<comments>http://www.themelab.com/2008/06/15/dipslaying-code-in-wordpress-posts/#comments</comments>
		<pubDate>Sun, 15 Jun 2008 16:41:49 +0000</pubDate>
		<dc:creator>Leland</dc:creator>
				<category><![CDATA[WordPress Plugins]]></category>
		<category><![CDATA[WordPress Tutorials]]></category>

		<guid isPermaLink="false">http://www.themelab.com/?p=362</guid>
		<description><![CDATA[
			
				
			
		
Sites that frequently publish code examples, such as tutorial sites, need an easy way to display code on their pages.  Fortunately for WordPress users, there are several great ways to display codes in your posts.  In this tutorial, you&#8217;ll learn about:

Manually displaying code
The WP Code Shield plugin
SyntaxHighligter Plus

If you run a tutorial site, [...]


Related posts:<ol><li><a href='http://www.themelab.com/2008/05/26/the-easy-way-to-display-recent-posts-in-wordpress/' rel='bookmark' title='Permanent Link: The Easy Way To Display Recent Posts in WordPress'>The Easy Way To Display Recent Posts in WordPress</a></li><li><a href='http://www.themelab.com/2008/03/21/social-bookmarking-with-wordpress/' rel='bookmark' title='Permanent Link: Social Bookmarking with WordPress'>Social Bookmarking with WordPress</a></li><li><a href='http://www.themelab.com/2008/03/16/contact-form-plugins-for-wordpress/' rel='bookmark' title='Permanent Link: Contact form plugins for WordPress'>Contact form plugins for WordPress</a></li></ol>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.themelab.com%2F2008%2F06%2F15%2Fdipslaying-code-in-wordpress-posts%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.themelab.com%2F2008%2F06%2F15%2Fdipslaying-code-in-wordpress-posts%2F&amp;source=themelab&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Sites that frequently publish code examples, such as tutorial sites, need an easy way to display code on their pages.  Fortunately for WordPress users, there are several great ways to display codes in your posts.  In this tutorial, you&#8217;ll learn about:</p>
<ul>
<li>Manually displaying code</li>
<li>The WP Code Shield plugin</li>
<li>SyntaxHighligter Plus</li>
</ul>
<p>If you run a tutorial site, or any other website that may require code examples, read on&#8230;</p>
<p><span id="more-362"></span></p>
<h3>Manually Displaying Code</h3>
<p>One of the problems most people face when trying to display code in their posts, is how to get it to <strong>not</strong> execute on the page.  To do this, you&#8217;ll need to use <strong>character entities</strong> to replace the actual brackets.</p>
<ul>
<li>&amp;gt; will become &lt;</li>
<li>&amp;lt; will become &gt;</li>
</ul>
<p>Manually changing each little symbol like this can become a tedious task.  Luckily, I&#8217;ve found a tool that can <a href="http://www.stanford.edu/~bsuter/js/convert.html">convert &lt; and &gt; to &amp;gt; and &amp;lt;</a>.</p>
<h3>WP Code Shield</h3>
<p>This is a plugin which will take any code inside &lt;code&gt; tags and convert the brackets into character entities automatically.  You can get the plugin <a href="http://wordpress.org/extend/plugins/wp-codeshield/" title="Get WP_CodeShield at WordPress.org">here</a>.</p>
<h3>SyntaxHighighter Plus</h3>
<p>If you want something more <em>interactive</em> than boring old code, then <a href="http://thislab.com/2007/12/16/release-wordpress-plugin-syntaxhighlighter-plus/">SyntaxHighlighter Plus</a> is the plugin for you.  You can download the plugin <a href="http://wordpress.org/extend/plugins/syntaxhighlighter-plus/" title="Get SyntaxHighlighter Plus at WordPress.org">here</a>.  This plugin supports syntax highlighting in the following languages:</p>
<ul>
<li>Bash</li>
<li>C++</li>
<li>C#</li>
<li>CSS</li>
<li>Delphi</li>
<li>Java</li>
<li>JavaScript</li>
<li>PHP</li>
<li>Python</li>
<li>Ruby</li>
<li>SQL</li>
<li>VB</li>
<li>XML/HTML</li>
</ul>
<p>If you wanted to highlight PHP, for example, you&#8217;d type out [php]your php code here[/php] and save.</p>
<p style="text-align: center;"><a href="http://www.themelab.com/wp-content/uploads/syntaxhighlighter-code.png" rel="lightbox" title="SyntaxHighlighter Code"><img src="http://www.themelab.com/wp-content/uploads/syntaxhighlighter-code.thumbnail.png" alt="SyntaxHighlighter Code" width="400" height="145" /></a></p>
<p>Saving this would produce a code box similar to this:</p>
<p style="text-align: center;"><a href="http://www.themelab.com/wp-content/uploads/syntaxhighlighter-view.png" rel="lightbox[pics362]" title="SyntaxHighlighter Plus View"><img src="http://www.themelab.com/wp-content/uploads/syntaxhighlighter-view.thumbnail.png" alt="SyntaxHighlighter Plus View" width="400" height="224" class="attachment wp-att-364 centered" /></a></p>
<p>As you can see, this plugin produced a feature-filled code box with the ability to copy and print.  Just a note, this plugin <strong>cannot</strong> be used alongside CodeShield.</p>
<h3>Conclusion</h3>
<p>As I browsed the WordPress plugin directory, it seems these aren&#8217;t the only <a href="http://wordpress.org/extend/plugins/tags/code">WordPress code plugins</a> available.  Feel free to look around and see if another plugin better suits you.</p>
<p>If you don&#8217;t write code in your WordPress posts very often, you&#8217;d probably want to use one of the first two methods listed here.  If you frequently post code examples, something like SyntaxHighlighter Plus will probably be more beneficial to you and your blog.</p>
<p>I hope you enjoyed this guide.  Feel free to subscribe to <a href="http://www.themelab.com/feed/">the feed</a> for more Theme Lab updates.</p>


<p>Related posts:<ol><li><a href='http://www.themelab.com/2008/05/26/the-easy-way-to-display-recent-posts-in-wordpress/' rel='bookmark' title='Permanent Link: The Easy Way To Display Recent Posts in WordPress'>The Easy Way To Display Recent Posts in WordPress</a></li><li><a href='http://www.themelab.com/2008/03/21/social-bookmarking-with-wordpress/' rel='bookmark' title='Permanent Link: Social Bookmarking with WordPress'>Social Bookmarking with WordPress</a></li><li><a href='http://www.themelab.com/2008/03/16/contact-form-plugins-for-wordpress/' rel='bookmark' title='Permanent Link: Contact form plugins for WordPress'>Contact form plugins for WordPress</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.themelab.com/2008/06/15/dipslaying-code-in-wordpress-posts/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Reset Your WordPress Password via phpMyAdmin</title>
		<link>http://www.themelab.com/2008/06/12/reset-your-wordpress-password-via-phpmyadmin/</link>
		<comments>http://www.themelab.com/2008/06/12/reset-your-wordpress-password-via-phpmyadmin/#comments</comments>
		<pubDate>Thu, 12 Jun 2008 15:33:27 +0000</pubDate>
		<dc:creator>Leland</dc:creator>
				<category><![CDATA[WordPress Tutorials]]></category>

		<guid isPermaLink="false">http://www.themelab.com/?p=349</guid>
		<description><![CDATA[
			
				
			
		

It seems since the release of WordPress 2.5.1 &#8211; WordPress users have been experiencing issues with the built in password reset function.
Basically, the reset password function doesn&#8217;t work because the e-mail that&#8217;s supposed to contain the reset link never comes.
Not to worry, there is still hope if you have forgotten or lost your password.  [...]


Related posts:<ol><li><a href='http://www.themelab.com/2009/08/11/wordpress-283-security-fix-admin-password-reset/' rel='bookmark' title='Permanent Link: WordPress 2.8.3 Security Fix: Admin Password Reset'>WordPress 2.8.3 Security Fix: Admin Password Reset</a></li><li><a href='http://www.themelab.com/2008/02/26/how-to-install-the-latest-version-of-wordpress/' rel='bookmark' title='Permanent Link: How to install the latest version of WordPress'>How to install the latest version of WordPress</a></li><li><a href='http://www.themelab.com/2008/04/09/the-importance-of-backing-up-your-wordpress-site/' rel='bookmark' title='Permanent Link: The Importance of Backing Up Your WordPress Site'>The Importance of Backing Up Your WordPress Site</a></li></ol>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.themelab.com%2F2008%2F06%2F12%2Freset-your-wordpress-password-via-phpmyadmin%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.themelab.com%2F2008%2F06%2F12%2Freset-your-wordpress-password-via-phpmyadmin%2F&amp;source=themelab&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<div style="float:left;"><img src="http://www.themelab.com/wp-content/uploads/wordpress-incorrect-password.png" alt="WordPress Incorrect Password" width="300" height="140" /></a></div>
<p>It seems since the release of WordPress 2.5.1 &#8211; WordPress users have been experiencing issues with the built in password reset function.</p>
<p>Basically, the reset password function doesn&#8217;t work because the e-mail that&#8217;s supposed to contain the reset link never comes.</p>
<p>Not to worry, there is still hope if you have forgotten or lost your password.  You can reset it via <strong>phpMyAdmin</strong>, a MySQL database administration tool.</p>
<p><span id="more-349"></span></p>
<h3>Open phpMyAdmin</h3>
<p>In your hosting control panel software, such as cPanel &#8211; there should be a link to access your phpMyAdmin.  Usually this link is bundled close together with other MySQL database management tools.  Here&#8217;s a screenshot of what it looks like in cPanel.</p>
<p style="text-align: center;"><a href="http://www.themelab.com/wp-content/uploads/phpmyadmin-cpanel.png" rel="lightbox" title="phpMyAdmin cPanel"><img src="http://www.themelab.com/wp-content/uploads/phpmyadmin-cpanel.thumbnail.png" alt="phpMyAdmin cPanel" width="400" height="82" /></a></p>
<h3>Locate the users table</h3>
<p>This is almost always called <strong>wp_users</strong>, unless you changed your database prefix.</p>
<p style="text-align: center;"><a href="http://www.themelab.com/wp-content/uploads/wordpress-user-database.png" rel="lightbox" title="WordPress User Database"><img src="http://www.themelab.com/wp-content/uploads/wordpress-user-database.thumbnail.png" alt="WordPress User Database" width="400" height="188" /></a></p>
<p>After selecting the users table, you&#8217;ll need to click the <strong>Browse</strong> tab at the top, then click the little pencil icon next to the password you wish to change.</p>
<h3>Change your password</h3>
<p>You should now be on a screen like this.</p>
<p style="text-align: center;"><a href="http://www.themelab.com/wp-content/uploads/wordpress-change-password.png" rel="lightbox" title="WordPress Change Password"><img src="http://www.themelab.com/wp-content/uploads/wordpress-change-password.thumbnail.png" alt="WordPress Change Password" width="400" height="248" /></a></p>
<p>In here, type in the new password of your choice in the appropriate input field.  Make sure you select <strong>MD5</strong> from the dropdown menu.  Click &#8220;go&#8221; and your new MD5&#8242;d password should be saved.</p>
<h3>Login to your account</h3>
<p>You should now be able to login to your account with the password you chose.  WordPress 2.5.1 will automatically upgrade your password to the new encryption when you do this.</p>
<h3>Conclusion</h3>
<p>WordPress 2.5.2 is right around the corner, and hopefully this password problem will be corrected in that release.  Make sure to always keep your passwords safe and to yourself.  I hope you found this tutorial useful if you have been locked out of your WordPress 2.5 blogs.  Thanks for reading and don&#8217;t forget to subscribe to <a href="http://www.themelab.com/feed/">the feed</a>.</p>


<p>Related posts:<ol><li><a href='http://www.themelab.com/2009/08/11/wordpress-283-security-fix-admin-password-reset/' rel='bookmark' title='Permanent Link: WordPress 2.8.3 Security Fix: Admin Password Reset'>WordPress 2.8.3 Security Fix: Admin Password Reset</a></li><li><a href='http://www.themelab.com/2008/02/26/how-to-install-the-latest-version-of-wordpress/' rel='bookmark' title='Permanent Link: How to install the latest version of WordPress'>How to install the latest version of WordPress</a></li><li><a href='http://www.themelab.com/2008/04/09/the-importance-of-backing-up-your-wordpress-site/' rel='bookmark' title='Permanent Link: The Importance of Backing Up Your WordPress Site'>The Importance of Backing Up Your WordPress Site</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.themelab.com/2008/06/12/reset-your-wordpress-password-via-phpmyadmin/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Use FeedBurner to Manage Your WordPress Feeds</title>
		<link>http://www.themelab.com/2008/06/09/use-feedburner-to-manage-your-wordpress-feeds/</link>
		<comments>http://www.themelab.com/2008/06/09/use-feedburner-to-manage-your-wordpress-feeds/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 12:05:47 +0000</pubDate>
		<dc:creator>Leland</dc:creator>
				<category><![CDATA[WordPress Plugins]]></category>
		<category><![CDATA[WordPress Tutorials]]></category>

		<guid isPermaLink="false">http://www.themelab.com/?p=303</guid>
		<description><![CDATA[
			
				
			
		
FeedBurner is an essential tool for many bloggers.  FeedBurner is a tool for managing, syndicating, and promoting your blog feeds.  Best of all, it&#8217;s a free service.  It&#8217;s very easy to get started and in this guide, I&#8217;ll show you how.

Burn your FeedBurner feed
Redirect your WordPress feed to FeedBurner
Recommended FeedBurner services

Start taking [...]


Related posts:<ol><li><a href='http://www.themelab.com/2010/01/15/take-advantage-of-scrapers/' rel='bookmark' title='Permanent Link: Stop Complaining About Scrapers and Start Taking Advantage of Them'>Stop Complaining About Scrapers and Start Taking Advantage of Them</a></li><li><a href='http://www.themelab.com/2008/03/26/put-your-dormant-domains-to-use-with-wordpress/' rel='bookmark' title='Permanent Link: Put your dormant domains to use with WordPress'>Put your dormant domains to use with WordPress</a></li><li><a href='http://www.themelab.com/2008/09/30/agregado-wordpress-theme-review/' rel='bookmark' title='Permanent Link: Agregado WordPress Theme Review'>Agregado WordPress Theme Review</a></li></ol>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.themelab.com%2F2008%2F06%2F09%2Fuse-feedburner-to-manage-your-wordpress-feeds%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.themelab.com%2F2008%2F06%2F09%2Fuse-feedburner-to-manage-your-wordpress-feeds%2F&amp;source=themelab&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>FeedBurner is an essential tool for many bloggers.  FeedBurner is a tool for managing, syndicating, and promoting your blog feeds.  Best of all, it&#8217;s a free service.  It&#8217;s very easy to get started and in this guide, I&#8217;ll show you how.</p>
<ul>
<li>Burn your FeedBurner feed</li>
<li>Redirect your WordPress feed to FeedBurner</li>
<li>Recommended FeedBurner services</li>
</ul>
<p>Start taking advantage of FeedBurner and read on&#8230;</p>
<p><span id="more-303"></span></p>
<h3>Burn Your Feed</h3>
<p>To get started, type your blog URL into <a href="http://www.feedburner.com">FeedBurner&#8217;s front page</a>.  If all is well, it should automatically detect your feed and verify it.  If you don&#8217;t already have an account with FeedBurner, it&#8217;s easy to sign up.  All you need to do is input your e-mail, as well as choose a username and password.</p>
<p style="text-align: center;"><a href="http://www.themelab.com/wp-content/uploads/feedburner-signup.png" rel="lightbox" title="FeedBurner Signup"><img src="http://www.themelab.com/wp-content/uploads/feedburner-signup.thumbnail.png" alt="FeedBurner Signup" width="400" height="358" /></a></p>
<p>Now that you&#8217;ve claimed your feed, you should be on a screen which tells you you have completed step 1.</p>
<p style="text-align: center;"><a href="http://www.themelab.com/wp-content/uploads/feedburner-step-1.png" rel="lightbox" title="FeedBurner Step 1"><img src="http://www.themelab.com/wp-content/uploads/feedburner-step-1.thumbnail.png" alt="FeedBurner Step 1" width="400" height="354" /></a></p>
<p>On step 2 of the FeedBurner process, it will prompt you to set up additional free FeedBurner stat tracking.  Besides this, you&#8217;re all done &#8211; unless you want to optimize and publicize your feed more, which will be gone over later.</p>
<h3>Integrate with WordPress</h3>
<p>Luckily for self-hosted WordPress users, FeedBurner provides an easy to use plugin to redirect your native WordPress feeds to your brand new FeedBurner-managed feed.  It&#8217;s called <strong>FeedBurner FeedSmith</strong>, and you can download it <a href="http://www.google.com/support/feedburner/bin/answer.py?answer=78483&#038;topic=13252">here</a>.</p>
<p>Once you have installed and activated the plugin, a new Settings page will be created where you can input your FeedBurner feed URL, as well as a FeedBurner comments feed URL (optional).</p>
<p style="text-align: center;"><a href="http://www.themelab.com/wp-content/uploads/feedburner-feedsmith.png" rel="lightbox" title="FeedBurner FeedSmith"><img src="http://www.themelab.com/wp-content/uploads/feedburner-feedsmith.thumbnail.png" alt="FeedBurner FeedSmith" width="400" height="154" /></a></p>
<p>After saving the settings, your WordPress feed URLs will now redirect to FeedBurner.</p>
<h3>Recommended FeedBurner Services</h3>
<p>FeedBurner offers a multitude of free and paid services you can use to optimize, publicize, and monetize your feeds.</p>
<ul>
<li><strong>BrowserFriendly</strong> &#8211; This will make your FeedBurner page more presentable to all browsers, making it easier for potential readers to subscribe to your feed.</li>
<li><strong>FeedFlare</strong> &#8211; Provides links such as &#8220;Add to del.icio.us&#8221; and &#8220;Digg This&#8221; to each of your feed items, so your readers can share content across social networks with ease.</li>
<li><strong>Email Subscriptions</strong> &#8211; Integrate your feed into an e-mail subscription service provided by your choice of either FeedBurner or <a href="http://www.feedblitz.com/">FeedBlitz</a>.</li>
<li><strong>PingShot</strong> &#8211; Automatically ping several web-based feed reading services such as <a href="http://www.technorati.com">Technorati</a>, <a href="http://www.bloglines.com">Bloglines</a>, <a href="http://www.pingomatic.com">Ping-o-matic</a>, and many more.</li>
</ul>
<p>This is just a small selection of many useful free services provided by FeedBurner.</p>
<h3>Conclusion</h3>
<p>If you don&#8217;t already use FeedBurner on your WordPress blogs, you should.  It&#8217;s super easy to sign up and get started, as I&#8217;ve gone over in this guide.  Once you build up a good amount of subscribers, you can also use the <strong>FeedCount</strong> to show off your subscriber count.  Thanks for reading, and don&#8217;t forget to subscribe to <a href="http://www.themelab.com/feed/">my feed</a> (served by FeedBurner) for more Theme Lab updates.</p>


<p>Related posts:<ol><li><a href='http://www.themelab.com/2010/01/15/take-advantage-of-scrapers/' rel='bookmark' title='Permanent Link: Stop Complaining About Scrapers and Start Taking Advantage of Them'>Stop Complaining About Scrapers and Start Taking Advantage of Them</a></li><li><a href='http://www.themelab.com/2008/03/26/put-your-dormant-domains-to-use-with-wordpress/' rel='bookmark' title='Permanent Link: Put your dormant domains to use with WordPress'>Put your dormant domains to use with WordPress</a></li><li><a href='http://www.themelab.com/2008/09/30/agregado-wordpress-theme-review/' rel='bookmark' title='Permanent Link: Agregado WordPress Theme Review'>Agregado WordPress Theme Review</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.themelab.com/2008/06/09/use-feedburner-to-manage-your-wordpress-feeds/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 1.149 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2010-09-02 03:26:01 -->
