<?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>Smiths R Us &#187; WordPress</title>
	<atom:link href="http://smithsrus.com/category/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://smithsrus.com</link>
	<description>Technology, home automation, usability, and whatever else amuses me.</description>
	<lastBuildDate>Mon, 19 Jul 2010 17:38:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Loading WordPress&#8217; Thickbox Only When Needed</title>
		<link>http://smithsrus.com/loading-wordpress-thickbox-only-when-needed/</link>
		<comments>http://smithsrus.com/loading-wordpress-thickbox-only-when-needed/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 16:24:15 +0000</pubDate>
		<dc:creator>Doug Smith</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://smithsrus.com/?p=165</guid>
		<description><![CDATA[I like to use Thickbox on my site to display images and videos in overlay windows. In WordPress, it&#8217;s easy enough to use wp_enqueue_script( ) and wp_enqueue_style() to load the built-in version of Thickbox. It automatically takes care of including jQuery, putting the css in the header, and the javascript in the footer. But there&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>I like to use Thickbox on my site to display images and videos in overlay windows. In WordPress, it&#8217;s easy enough to use wp_enqueue_script( ) and wp_enqueue_style() to load the built-in version of Thickbox. It automatically takes care of including jQuery, putting the css in the header, and the javascript in the footer. </p>
<p>But there&#8217;s no need to have the bloat of Thickbox and jQuery loading on all pages when most of them don&#8217;t even use it. That&#8217;s why <a href="http://yoast.com/conditional-thickbox-loading/">Joost de Valk detailed a nice tip to only load thickbox when needed</a> by checking the page content for references to it. All it takes is a few lines of code in your functions.php file.</p>
<p>Unfortunately, you end up with some broken images because the built-in Thickbox defines their locations in thickbox.js as relative paths:<span id="more-165"></span></p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> tb_pathToImage <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;../wp-includes/js/thickbox/loadingAnimation.gif&quot;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> tb_closeImage <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;../wp-includes/js/thickbox/tb-close.png&quot;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Those paths get tacked onto the URL of whatever page you&#8217;re on, which results in an invalid URL and a couple 404 errors for each use. Now that&#8217;s not unique to Joost&#8217;s solution. It happens whenever Thickbox is loaded with wp_enqueue_script( ).</p>
<p>It can easily be fixed by adding a couple lines of javascript in the footer to redefine the image path variables. That&#8217;s as simple as a few more lines of code in your functions.php file. We&#8217;ll use Joost&#8217;s technique of only loading it when the page content requires it:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> thickbox_image_paths<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$post</span><span style="color: #339933;">;</span>
	wp_reset_query<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>is_singular<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">strpos</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$post</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">post_content</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'class=&quot;thickbox&quot;'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!==</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$thickbox_path</span> <span style="color: #339933;">=</span> get_option<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'siteurl'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'/wp-includes/js/thickbox/'</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;script type=<span style="color: #000099; font-weight: bold;">\&quot;</span>text/javascript<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;	var tb_pathToImage = <span style="color: #000099; font-weight: bold;">\&quot;</span><span style="color: #006699; font-weight: bold;">${thickbox_path}</span>loadingAnimation.gif<span style="color: #000099; font-weight: bold;">\&quot;</span>;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;	var tb_closeImage = <span style="color: #000099; font-weight: bold;">\&quot;</span><span style="color: #006699; font-weight: bold;">${thickbox_path}</span>tb-close.png<span style="color: #000099; font-weight: bold;">\&quot;</span>;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;/script&gt;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
add_action<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'wp_footer'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'thickbox_image_paths'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>My theme uses multiple loops so I had to add the wp_reset_query() to be able to examine the original content. Otherwise it would be looking at the last post in my recent posts box and not see that Thickbox was used in the current content.</p>
<p>There you have it. A nice technique from Joost and a simple addition to complement it.</p>
]]></content:encoded>
			<wfw:commentRss>http://smithsrus.com/loading-wordpress-thickbox-only-when-needed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Detecting When Gravatar Has No Image</title>
		<link>http://smithsrus.com/detecting-when-gravatar-has-no-image/</link>
		<comments>http://smithsrus.com/detecting-when-gravatar-has-no-image/#comments</comments>
		<pubDate>Mon, 23 Mar 2009 16:31:51 +0000</pubDate>
		<dc:creator>Doug Smith</dc:creator>
				<category><![CDATA[Gravatar]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[address book]]></category>
		<category><![CDATA[applescript]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[photo]]></category>

		<guid isPermaLink="false">http://smithsrus.com/?p=149</guid>
		<description><![CDATA[[This information in this post is out of date. Please see Gravatar, AppleScript, and the OS X Address Book Revisited for more current information.] We&#8217;re on our way to building an AppleScript to update all of the contacts in your Mac Address Book with pictures from the Gravatar service. This is part 3 of the [...]]]></description>
			<content:encoded><![CDATA[<p><em>[This information in this post is out of date. Please see <a href="http://smithsrus.com/gravatar-applescript-and-the-os-x-address-book-revisited/">Gravatar, AppleScript, and the OS X Address Book Revisited</a> for more current information.]</em><br />
<hr />
<p>We&#8217;re on our way to building an <a href="http://www.apple.com/applescript/">AppleScript</a> to update all of the contacts in your Mac Address Book with pictures from the <a href="http://gravatar.com/">Gravatar</a> service. This is part 3 of the series.</p>
<p>Part 1, <a href="http://smithsrus.com/gravatar-applescript-and-address-book-pictures/">Gravatar, AppleScript, and Address Book Pictures</a>, introduced the topic and ended with a short AppleScript to construct a Gravatar URL given an e-mail address.</p>
<p>Then in part 2, <a href="http://smithsrus.com/setting-an-address-book-picture-with-applescript/">Setting an Address Book Picture with AppleScript</a>, we built a script showing how to successfully set a contact photo in Address Book.</p>
<p>Now we need to detect when the Gravatar service does not have an image on file for a given e-mail address.<span id="more-149"></span> The problem is that Gravatar does one of several things when it doesn&#8217;t have a matching image: return a default image, return an image you specify, or generate an image in one of several styles. But in every case it returns an image.</p>
<p>This is all well and good if you&#8217;re displaying Gravatars on a blog comments page. The Gravatar URL ends up inside an img tag and this keeps it dead simple. It&#8217;s also nice for everyone to get some kind of avatar even if they haven&#8217;t created one.</p>
<p>But for our purposes we don&#8217;t need a default image that ends up being attached to a contact. Not only does it clutter our contacts, but it would make it more difficult if we later wanted our script to only update contacts with no existing picture and leave the others alone.</p>
<p>Detecting a no match condition would also be useful in a WordPress plugin even if a default image was used. For example, I&#8217;ve always wanted to display some sort of indicator and a link to Gravatar for those who don&#8217;t have a Gravatar yet. If we can detect that a default image was used then we can set a CSS class on the image or do other creative things.</p>
<p>So how do we tell if there is no image match? It&#8217;s simple with a little undocumented trick in the Gravatar URL.</p>
<p>There is a d= parameter where we can specify a default image to return when there is no match. If we set that to null by using two empty URL encoded quotes then instead of a default image we get nothing. For example:</p>
<p><code></p>
<p>http://www.gravatar.com/avatar/1bc47906dcb8f3661bae9a8448e49a8a?d=%22%22</p>
<p></code></p>
<p>For our Address Book script we need to save the image to a file anyway so we just check for the existence of the file or a zero size. We can skip that entry or take other action if there is nothing there.</p>
<p>In the case of a WordPress plugin it might be less convenient because we may have to hit the Gravatar servers twice; once to check for a no match condition, then again to get the image with whatever default we actually want. Of course, if we use a local default file then it would still only be one call to the Gravatar service but that rules out using one of the cool generated defaults.</p>
<p>(If any of the Gravatar folks are listening, it would be great to have an option in the URL that means I&#8217;m using this for further processing and not in an img tag then also pass back some sort of status telling if the image is a default.)</p>
<p>Here&#8217;s a demonstration AppleScript that makes use of the above technique to download a Gravatar for a given e-mail address and take action only if there was a matched image: (<a href="applescript://com.apple.scripteditor?action=new&#038;script=--%20Download%20a%20Gravatar%20image%20and%20see%20if%20it%27s%20a%20match%20or%20default.%0D--%20Released%20under%20GPL.%0D--%20by%20Doug%20Smith%2C%20http%3A//smithsrus.com%0D%0D--%20The%20e-mail%20address%20to%20look%20up.%0Dset%20email%20to%20%22someone%40somewhere.com%22%0D%0D--%20Calculate%20an%20MD5%20for%20the%20e-mail%20address.%0Dset%20md5_email%20to%20do%20shell%20script%20%22md5%20-q%20-s%20%60echo%20%22%20%26%20email%20%26%20%22%20%7C%20tr%20%27%5B%3Aupper%3A%5D%27%20%27%5B%3Alower%3A%5D%27%60%22%0D%0D--%20Construct%20the%20Gravatar%20URL.%0Dset%20grav_url%20to%20quoted%20form%20of%20%28%22http%3A//gravatar.com/avatar/%22%20%26%20md5_email%20%26%20%22%3Fd%3D%22%20%26%20%22%2522%2522%22%20as%20text%29%0D%0D--%20Make%20a%20file%20name%20in%20which%20to%20temporarily%20save%20the%20Gravatar.%0Dset%20grav_file%20to%20%28path%20to%20temporary%20items%29%20%26%20%22gravatar%22%20%26%20md5_email%20%26%20%22.jpg%22%20as%20text%0Dset%20grav_POSIX_file%20to%20quoted%20form%20of%20POSIX%20path%20of%20grav_file%0D%0D--%20Download%20the%20Gravatar%20image%20to%20the%20temporary%20file%20with%20a%20timeout%20of%2010%20seconds.%0Ddo%20shell%20script%20%22curl%20%22%20%26%20grav_url%20%26%20%22%20-m%2010%20-o%20%22%20%26%20grav_POSIX_file%0D%0Dtell%20application%20%22System%20Events%22%0D%09if%20exists%20file%20grav_file%20then%0D%09%09tell%20me%20to%20display%20dialog%20%22Yes%2C%20we%20have%20a%20matching%20Gravatar%20downloaded%20to%20%22%20%26%20grav_POSIX_file%20%26%20%22.%22%20buttons%20%7B%22Okay%22%7D%20default%20button%201%0D%09%09delete%20file%20grav_file%0D%09else%0D%09%09tell%20me%20to%20display%20dialog%20%22Sorry%2C%20there%20was%20no%20matching%20Gravatar.%22%20buttons%20%7B%22Okay%22%7D%20default%20button%201%0D%09end%20if%0Dend%20tell%0D">Open in Script Editor</a>)</p>
<p><ins datetime="2009-03-25T17:21:43+00:00">(Updated with a small bug fix on 03/25/2009.)</ins><br />
<ins datetime="2009-04-23T13:56:48+00:00">(Updated on 04/23/2009 to remove my testing e-mail address and display the downloaded file path.)</ins></p>

<div class="wp_syntax"><div class="code"><pre class="applescript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">-- Download a Gravatar image and see if it's a match or default.</span>
<span style="color: #808080; font-style: italic;">-- Released under GPL.</span>
<span style="color: #808080; font-style: italic;">-- by Doug Smith, http://smithsrus.com</span>
&nbsp;
<span style="color: #808080; font-style: italic;">-- The e-mail address to look up.</span>
<span style="color: #ff0033; font-weight: bold;">set</span> email <span style="color: #ff0033; font-weight: bold;">to</span> <span style="color: #009900;">&quot;someone@somewhere.com&quot;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">-- Calculate an MD5 for the e-mail address.</span>
<span style="color: #ff0033; font-weight: bold;">set</span> md5_email <span style="color: #ff0033; font-weight: bold;">to</span> <span style="color: #0066ff;">do shell script</span> <span style="color: #009900;">&quot;md5 -q -s `echo &quot;</span> <span style="color: #000000;">&amp;</span> email <span style="color: #000000;">&amp;</span> <span style="color: #009900;">&quot; | tr '[:upper:]' '[:lower:]'`&quot;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">-- Construct the Gravatar URL.</span>
<span style="color: #ff0033; font-weight: bold;">set</span> grav_url <span style="color: #ff0033; font-weight: bold;">to</span> <span style="color: #0066ff;">quoted form</span> <span style="color: #ff0033; font-weight: bold;">of</span> <span style="color: #000000;">&#40;</span><span style="color: #009900;">&quot;http://gravatar.com/avatar/&quot;</span> <span style="color: #000000;">&amp;</span> md5_email <span style="color: #000000;">&amp;</span> <span style="color: #009900;">&quot;?d=&quot;</span> <span style="color: #000000;">&amp;</span> <span style="color: #009900;">&quot;%22%22&quot;</span> <span style="color: #ff0033;">as</span> <span style="color: #0066ff;">text</span><span style="color: #000000;">&#41;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">-- Make a file name in which to temporarily save the Gravatar.</span>
<span style="color: #ff0033; font-weight: bold;">set</span> grav_file <span style="color: #ff0033; font-weight: bold;">to</span> <span style="color: #000000;">&#40;</span><span style="color: #0066ff;">path to</span> temporary <span style="color: #0066ff;">items</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&amp;</span> <span style="color: #009900;">&quot;gravatar&quot;</span> <span style="color: #000000;">&amp;</span> md5_email <span style="color: #000000;">&amp;</span> <span style="color: #009900;">&quot;.jpg&quot;</span> <span style="color: #ff0033;">as</span> <span style="color: #0066ff;">text</span>
<span style="color: #ff0033; font-weight: bold;">set</span> grav_POSIX_file <span style="color: #ff0033; font-weight: bold;">to</span> <span style="color: #0066ff;">quoted form</span> <span style="color: #ff0033; font-weight: bold;">of</span> <span style="color: #0066ff;">POSIX path</span> <span style="color: #ff0033; font-weight: bold;">of</span> grav_file
&nbsp;
<span style="color: #808080; font-style: italic;">-- Download the Gravatar image to the temporary file with a timeout of 10 seconds.</span>
<span style="color: #0066ff;">do shell script</span> <span style="color: #009900;">&quot;curl &quot;</span> <span style="color: #000000;">&amp;</span> grav_url <span style="color: #000000;">&amp;</span> <span style="color: #009900;">&quot; -m 10 -o &quot;</span> <span style="color: #000000;">&amp;</span> grav_POSIX_file
&nbsp;
<span style="color: #ff0033; font-weight: bold;">tell</span> <span style="color: #0066ff;">application</span> <span style="color: #009900;">&quot;System Events&quot;</span>
	<span style="color: #ff0033; font-weight: bold;">if</span> <span style="color: #0066ff;">exists</span> <span style="color: #0066ff;">file</span> grav_file <span style="color: #ff0033; font-weight: bold;">then</span>
		<span style="color: #ff0033; font-weight: bold;">tell</span> <span style="color: #0066ff;">me</span> <span style="color: #ff0033; font-weight: bold;">to</span> <span style="color: #0066ff;">display dialog</span> <span style="color: #009900;">&quot;Yes, we have a matching Gravatar downloaded to &quot;</span> <span style="color: #000000;">&amp;</span> grav_POSIX_file <span style="color: #000000;">&amp;</span> <span style="color: #009900;">&quot;.&quot;</span> <span style="color: #0066ff;">buttons</span> <span style="color: #000000;">&#123;</span><span style="color: #009900;">&quot;Okay&quot;</span><span style="color: #000000;">&#125;</span> default button <span style="color: #000000;">1</span>
		<span style="color: #0066ff;">delete</span> <span style="color: #0066ff;">file</span> grav_file
	<span style="color: #ff0033; font-weight: bold;">else</span>
		<span style="color: #ff0033; font-weight: bold;">tell</span> <span style="color: #0066ff;">me</span> <span style="color: #ff0033; font-weight: bold;">to</span> <span style="color: #0066ff;">display dialog</span> <span style="color: #009900;">&quot;Sorry, there was no matching Gravatar.&quot;</span> <span style="color: #0066ff;">buttons</span> <span style="color: #000000;">&#123;</span><span style="color: #009900;">&quot;Okay&quot;</span><span style="color: #000000;">&#125;</span> default button <span style="color: #000000;">1</span>
	<span style="color: #ff0033; font-weight: bold;">end</span> <span style="color: #ff0033; font-weight: bold;">if</span>
<span style="color: #ff0033; font-weight: bold;">end</span> <span style="color: #ff0033; font-weight: bold;">tell</span></pre></div></div>

<p>Well, we&#8217;re almost to our goal of a <a href="http://smithsrus.com/filling-mac-address-book-pictures-with-gravatars/">script to automatically update all of our Address Book contacts with Gravatars</a>. I&#8217;ll put it all together next time in <a href="http://smithsrus.com/filling-mac-address-book-pictures-with-gravatars/">part 4</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://smithsrus.com/detecting-when-gravatar-has-no-image/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>WordPress &amp; My iPhone in the Garden</title>
		<link>http://smithsrus.com/wordpress-my-iphone-in-the-garden/</link>
		<comments>http://smithsrus.com/wordpress-my-iphone-in-the-garden/#comments</comments>
		<pubDate>Tue, 22 Jul 2008 15:45:13 +0000</pubDate>
		<dc:creator>Doug Smith</dc:creator>
				<category><![CDATA[Garden]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://smithsrus.com/wordpress-my-iphone-in-the-garden/</guid>
		<description><![CDATA[I just had to try the new WordPress application for the iPhone. So I snapped a couple photos while out in the garden gathering lunch and wrote this post. It connected to my blog effortlessly and allowed me to easily add categories, tags, and a photo. Great job WordPress team! I only have a couple [...]]]></description>
			<content:encoded><![CDATA[<p>I just had to try the <a href="http://iphone.wordpress.org/2008/07/22/wordpress-for-iphone-available-now/">new WordPress application for the iPhone</a>. So I snapped a couple photos while out in the garden gathering lunch and wrote this post.</p>
<p>It connected to my blog effortlessly and allowed me to easily add categories, tags, and a photo.</p>
<p>Great job WordPress team!</p>
<p>I only have a couple minor gripes that I hope will be addressed later:</p>
<p>1. It would be easier to type if the application supported landscape mode and the wider keyboard that provides.</p>
<p>2. It&#8217;s too bad WordPress does not extract and store the GPS information along with the other metadata it grabs from photos.</p>
<p>I would love to hear comments from others who have tried it. How has it worked for you? </p>
<p><a href="http://smithsrus.com/wp-content/uploads/2008/07/l-640-480-84b93601-389a-4b83-b23d-c0be8c849609.jpeg"><img src="http://smithsrus.com/wp-content/uploads/2008/07/l-640-480-84b93601-389a-4b83-b23d-c0be8c849609.jpeg" alt="photo" width="300" height="225" class="alignnone size-full wp-image-364" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://smithsrus.com/wordpress-my-iphone-in-the-garden/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress Admin Color Scheme: Fresh Plus Visited</title>
		<link>http://smithsrus.com/wordpress-admin-color-scheme-fresh-plus-visited/</link>
		<comments>http://smithsrus.com/wordpress-admin-color-scheme-fresh-plus-visited/#comments</comments>
		<pubDate>Mon, 14 Apr 2008 02:18:44 +0000</pubDate>
		<dc:creator>Doug Smith</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[color scheme]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[WordPress 2.5]]></category>

		<guid isPermaLink="false">http://smithsrus.com/?p=96</guid>
		<description><![CDATA[Although I like the new look of WordPress 2.5, I miss having the visited links in the dashboard shown as a different color. I like to keep up on the latest WordPress news and I previously relied on the link color to see what I had not yet read. Fortunately, WordPress 2.5 has a way [...]]]></description>
			<content:encoded><![CDATA[<p>Although I like the new look of WordPress 2.5, I miss having the visited links in the dashboard shown as a different color. I like to keep up on the latest WordPress news and I previously relied on the link color to see what I had not yet read.</p>
<p> <img class="aligncenter size-full wp-image-94" title="WordPress admin color scheme" src="http://smithsrus.com/wp-content/uploads/2008/04/admin-color-scheme.jpg" alt="WordPress admin color scheme" width="423" height="104" /></p>
<p>Fortunately, WordPress 2.5 has a way for plugins to add additional color schemes. So I whipped up a quick plugin to add the style necessary to mark those visited links in a different color. You can grab a copy from my <a title="Download page for the WordPress admin color scheme Fresh Plus Visited plugin." href="http://smithsrus.com/downloads/wordpress-admin-color-fresh-plus-visited/">downloads page for admin color scheme: <em>Fresh Plus Visited</em></a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://smithsrus.com/wordpress-admin-color-scheme-fresh-plus-visited/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WordCamp Dallas 2008</title>
		<link>http://smithsrus.com/wordcamp-dallas-2008/</link>
		<comments>http://smithsrus.com/wordcamp-dallas-2008/#comments</comments>
		<pubDate>Tue, 25 Mar 2008 19:37:47 +0000</pubDate>
		<dc:creator>Doug Smith</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordCamp]]></category>
		<category><![CDATA[WordCamp Dallas 2008]]></category>
		<category><![CDATA[wordcampdallas2008]]></category>

		<guid isPermaLink="false">http://smithsrus.com/wordcamp-dallas-2008/</guid>
		<description><![CDATA[I&#8217;m looking forward to attending my first WordCamp this weekend in Dallas. I&#8217;ll be eager to learn from the great lineup of presenters, and hopefully, personally say thank you to some of you who have contributed so much to the WordPress community. Be sure to say hello if you&#8217;re attending too. I&#8217;d love to meet [...]]]></description>
			<content:encoded><![CDATA[<p><a href='http://dallas.wordcamp.org'><img class="alignright" src='http://dallas.wordcamp.org/files/2008/02/wordcampdallas-200x200-2.gif' alt='WordCamp Dallas' width='200' height='200' border='0'/></a>I&#8217;m looking forward to attending my first WordCamp this weekend in Dallas. I&#8217;ll be eager to learn from the great <a href="http://dallas.wordcamp.org/schedule/">lineup of presenters</a>, and hopefully, personally say thank you to some of you who have contributed so much to the WordPress community. Be sure to say hello if you&#8217;re attending too. I&#8217;d love to meet you.</p>
<p>I believe they are still taking registrations, so you may not be too late to <a href="http://dallas.wordcamp.org/register/">sign up</a> if you haven&#8217;t already.</p>
]]></content:encoded>
			<wfw:commentRss>http://smithsrus.com/wordcamp-dallas-2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nofollow and the Spam War Arms Race</title>
		<link>http://smithsrus.com/nofollow-and-the-spam-war-arms-race/</link>
		<comments>http://smithsrus.com/nofollow-and-the-spam-war-arms-race/#comments</comments>
		<pubDate>Mon, 25 Feb 2008 22:51:31 +0000</pubDate>
		<dc:creator>Doug Smith</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[anti-spam]]></category>
		<category><![CDATA[comment spam]]></category>
		<category><![CDATA[dofollow]]></category>
		<category><![CDATA[nofollow]]></category>
		<category><![CDATA[pagerank]]></category>

		<guid isPermaLink="false">http://smithsrus.com/nofollow-and-the-spam-war-arms-race/</guid>
		<description><![CDATA[Recent events have caused me to rethink the use of the nofollow attribute on my blog comment links. Much has already been written about whether or not to use the nofollow attribute, so I won&#8217;t re-hash those arguments here. Personally, I had come down on the side of believing that nofollow did little to stop [...]]]></description>
			<content:encoded><![CDATA[<p>Recent events have caused me to rethink the use of the <a href="http://en.wikipedia.org/wiki/Nofollow">nofollow</a> attribute on my blog comment links. Much has <a href="http://weblogtoolscollection.com/archives/2007/04/10/wp-seo-tips-to-follow-or-not-to-follow/">already been written</a> about whether or not to use the <a href="http://en.wikipedia.org/wiki/Nofollow">nofollow</a> attribute, so I won&#8217;t re-hash those arguments here. Personally, I had come down on the side of believing that nofollow did little to stop spam. Besides, commenters add value to my sites and it&#8217;s appropriate to reward them with a link. So I&#8217;ve been running one of the <a href="http://kimmo.suominen.com/sw/dofollow/">DoFollow</a> plugins for WordPress to override the default nofollow behavior.</p>
<p>Then the spam flood came that most of us have seen by now. These spam comments are harder to detect because they seem to be written by a human and customized to somewhat fit the post content.<span id="more-81"></span> You can often tell only by the URL they promote and the awkward wording of the comment that shows they don&#8217;t truly grasp the topic. More of them are slipping through the trusty spam-fighting superheroes: <a href="http://akismet.com/">Akismet</a>, <a href="http://www.bad-behavior.ioerror.us/">Bad Behavior</a>, and <a href="http://unknowngenius.com/blog/wordpress/spam-karma/">Spam Karma</a>.</p>
<p>A little research showed that my URLs were ending up on lists of dofollow blogs on sites made just for the purpose of gaming <a href="http://en.wikipedia.org/wiki/PageRank">Google&#8217;s Pagerank</a>. (I won&#8217;t link to them and give them publicity.) The lists are all neatly sorted into groups with the highest Pagerank sites at the top.</p>
<p>And then today, I found comments with a referrer from a site that sells a script to help you find blogs without nofollow. I was tempted to buy it to see how it worked so I could block it, but I just couldn&#8217;t stand the idea of giving them any money. (It&#8217;s dofollowblogs.net, which I also will not link to.) What really irks me is that they refer to this as <em>white-hat link building</em> to make it sound palatable to the average Joe! (Oh joy, here&#8217;s another one: http://www.commenthut.com/)</p>
<p>I still believe that using nofollow fails to stop spam, however, I am now convinced that:</p>
<ol>
<li>Turning off nofollow can be a spammer magnet.</li>
<li>Some sites are promoting dofollow to increase the number of sites available to abuse.</li>
<li>Some sites are promoting displaying a dofollow graphic on your site only to make it easier for them to find you.</li>
<li>Not using nofollow may effect Google search results ranking. It may be coincidence, but I had a site that by every statistic should have ranked #1 for certain keywords, yet it remained at the #3 position for many months. The site leapt past the competition to #1 within a month of turning nofollow back on. I can&#8217;t prove a correlation, but further study is certainly warranted.</li>
</ol>
<p>Well, I&#8217;m still not ready to give up. So what can we do about? Here are a few possibilities:</p>
<ol>
<li>When you run across sites like this, report to Google through their <a href="https://www.google.com/webmasters/tools/docs/en/about.html">webmaster tools</a>.</li>
<li>WordPress users should flag these comments as spam in Akismet. If we all work together, we can make a dent in the sources.</li>
<li>Use a dofollow plugin with advanced features, like the one I mentioned above.</li>
<li>It may be possible to block some of these with some .htaccess rules looking for referrers including &#8220;nofollow&#8221; or &#8220;dofollow&#8221;. Be careful, though, as it&#8217;s easy to block legitimate traffic or yourself with this, e.g., I had to quit blocking those so Google searches for this post would get through. <img src='http://smithsrus.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </li>
<li>Don&#8217;t display the little graphics announcing that you dofollow unless you rename the files so they&#8217;re not so easy to find with a Google search.</li>
</ol>
<p>Anyone have any more ideas or know anything about the scripts being used to abuse our blogs?</p>
]]></content:encoded>
			<wfw:commentRss>http://smithsrus.com/nofollow-and-the-spam-war-arms-race/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>WordPress Upgrade Preflight Plugin Version 1.1</title>
		<link>http://smithsrus.com/wordpress-upgrade-preflight-plugin-version-11/</link>
		<comments>http://smithsrus.com/wordpress-upgrade-preflight-plugin-version-11/#comments</comments>
		<pubDate>Mon, 22 Oct 2007 17:20:48 +0000</pubDate>
		<dc:creator>Doug Smith</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[compatibility]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[theme]]></category>
		<category><![CDATA[upgrade]]></category>
		<category><![CDATA[WordPress 2.3]]></category>

		<guid isPermaLink="false">http://smithsrus.com/wordpress-upgrade-preflight-plugin-version-11/</guid>
		<description><![CDATA[I just finished a minor update to my WordPress Upgrade Preflight Plugin. Here are the changes: Additional checks for plugins knowing about the new tag system so they don&#8217;t get flagged as incompatible. i.e., Sitemap Generator 3.0. Internationalization of text. The .po file is included. If you do a translation send the files over and [...]]]></description>
			<content:encoded><![CDATA[<p>I just finished a minor update to my WordPress <a href="http://smithsrus.com/downloads/wordpress-upgrade-preflight-check/">Upgrade Preflight Plugin</a>. Here are the changes:</p>
<ul>
<li>Additional checks for plugins knowing about the new tag system so they don&#8217;t get flagged as incompatible. i.e., Sitemap Generator 3.0.</li>
<li>Internationalization of text. The .po file is included. If you do a translation send the files over and I&#8217;ll be happy to post them on the download page.</li>
<li>Miscellaneous clean up.</li>
<li>Added GPL license text.</li>
</ul>
<p>Get it on the <a href="http://smithsrus.com/downloads/wordpress-upgrade-preflight-check/">Upgrade Preflight Plugin page</a>. (My apologies for this not being on the WordPress Extend plugins directory yet. I&#8217;ve applied for access but they apparently have quite a backlog in approving new plugins.)</p>
]]></content:encoded>
			<wfw:commentRss>http://smithsrus.com/wordpress-upgrade-preflight-plugin-version-11/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Upgrade Preflight Check Spanish Translation</title>
		<link>http://smithsrus.com/upgrade-preflight-check-spanish-translation/</link>
		<comments>http://smithsrus.com/upgrade-preflight-check-spanish-translation/#comments</comments>
		<pubDate>Tue, 02 Oct 2007 14:36:53 +0000</pubDate>
		<dc:creator>Doug Smith</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[compatibility]]></category>
		<category><![CDATA[multi-lingual]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[Spanish]]></category>
		<category><![CDATA[theme]]></category>
		<category><![CDATA[translation]]></category>
		<category><![CDATA[WordPress 2.3]]></category>

		<guid isPermaLink="false">http://smithsrus.com/upgrade-preflight-check-spanish-translation/</guid>
		<description><![CDATA[A big thank you to Samuel Aguilera who created a Spanish translation of my WordPress Upgrade Preflight Check plugin. You can download the translated version from his site. I plan on doing proper internationalization in the next version of the plugin. That should make translation easier for anyone who wants to make one.]]></description>
			<content:encoded><![CDATA[<p>A big thank you to <a href="http://agamum.net/blog/">Samuel Aguilera</a> who created a Spanish translation of my WordPress <a href="http://smithsrus.com/downloads/wordpress-upgrade-preflight-check/">Upgrade Preflight Check plugin</a>.</p>
<p>You can <a href="http://agamum.net/blog/archivo/comprobar-compatiblidad-wordpress-upgrade-preflight-check.xhtml">download the translated version from his site</a>.</p>
<p>I plan on doing proper internationalization in the next version of the plugin. That should make translation easier for anyone who wants to make one.</p>
]]></content:encoded>
			<wfw:commentRss>http://smithsrus.com/upgrade-preflight-check-spanish-translation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress 2.3 Upgrade Compatibility Check Plugin</title>
		<link>http://smithsrus.com/wordpress-23-upgrade-compatibility-check-plugin/</link>
		<comments>http://smithsrus.com/wordpress-23-upgrade-compatibility-check-plugin/#comments</comments>
		<pubDate>Thu, 27 Sep 2007 03:21:21 +0000</pubDate>
		<dc:creator>Doug Smith</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[compatibility]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[theme]]></category>
		<category><![CDATA[upgrade]]></category>
		<category><![CDATA[WordPress 2.3]]></category>

		<guid isPermaLink="false">http://smithsrus.com/wordpress-23-upgrade-compatibility-check-plugin/</guid>
		<description><![CDATA[I have a bunch of WordPress sites to upgrade to the new version 2.3. There have been a few changes in this version that can result in errors with some plugins and themes. To make my upgrades easier, I built a plugin to check other plugins and themes for compatibility. I decided to release it [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" src='http://smithsrus.com/wp-content/uploads/2007/09/wp-20-square-button-trans.gif' alt='WordPress logo' />I have a bunch of WordPress sites to upgrade to the<a href="http://wordpress.org/development/2007/09/wordpress-23/"> new version 2.3</a>. There have been a few changes in this version that can result in errors with some plugins and themes. To make my upgrades easier, I built a plugin to check other plugins and themes for compatibility.</p>
<p>I decided to release it in case it&#8217;s of use to others. More information and a download are on my <a href="http://smithsrus.com/downloads/wordpress-upgrade-preflight-check/">WordPress Upgrade Preflight Check</a> plugin page.</p>
<p>This is my first plugin that I&#8217;ve released publicly. I&#8217;m certainly not an expert PHP coder, so please go easy on me. <img src='http://smithsrus.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Suggestions for improvements are welcome.</p>
]]></content:encoded>
			<wfw:commentRss>http://smithsrus.com/wordpress-23-upgrade-compatibility-check-plugin/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Finally Converted My Own Site to WordPress</title>
		<link>http://smithsrus.com/finally-converted-my-own-site-to-wordpress/</link>
		<comments>http://smithsrus.com/finally-converted-my-own-site-to-wordpress/#comments</comments>
		<pubDate>Wed, 26 Sep 2007 23:25:13 +0000</pubDate>
		<dc:creator>Doug Smith</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[conversion]]></category>
		<category><![CDATA[WordPress 2.3]]></category>

		<guid isPermaLink="false">http://smithsrus.com/finally-converted-my-own-site-to-wordpress/</guid>
		<description><![CDATA[I&#8217;ve helped so many other people set up WordPress but never got around to doing it on my own site. Sure, I&#8217;ve been running versions here from time to time to test things, but I hadn&#8217;t linked it in for public consumption. Now that version 2.3 is out, it seemed like a good time to [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve helped so many other people set up <a href="http://wordpress.org/">WordPress</a> but never got around to doing it on my own site. Sure, I&#8217;ve been running versions here from time to time to test things, but I hadn&#8217;t linked it in for public consumption. Now that version 2.3 is out, it seemed like a good time to fully make the switch.</p>
<p>Hopefully, this will entice me to blog about a few things as I think of them because it&#8217;s now so easy to do. Some of my old articles are still getting a decent amount of views so I&#8217;ll soon be moving those into posts and redirecting traffic there.</p>
<p>I still haven&#8217;t settled on a theme. I&#8217;d like to customize one for this site but I just don&#8217;t have the time right now. Thanks to Jim Mitchell for his <a href="http://jimmitchell.org/projects/wordpress/bogart/">bogart</a> theme. It&#8217;s clean and easy on the eye so it will definitely do the job for the time being.</p>
]]></content:encoded>
			<wfw:commentRss>http://smithsrus.com/finally-converted-my-own-site-to-wordpress/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced)

Served from: smithsrus.com @ 2010-07-31 03:33:33 -->