<?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>Pressed Words</title>
	<atom:link href="http://pressedwords.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://pressedwords.com</link>
	<description>News and commentary about all things WordPress</description>
	<lastBuildDate>Thu, 11 Jun 2009 03:54:22 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.1</generator>
	<item>
		<title>5 Things of Interest to Developers in the New WordPress 2.8</title>
		<link>http://pressedwords.com/stuff-new-in-wp-2-8-for-coders/</link>
		<comments>http://pressedwords.com/stuff-new-in-wp-2-8-for-coders/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 03:53:44 +0000</pubDate>
		<dc:creator><![CDATA[Austin Matzko]]></dc:creator>
				<category><![CDATA[Releases]]></category>
		<category><![CDATA[Version 2.8]]></category>
		<category><![CDATA[Widgets]]></category>

		<guid isPermaLink="false">http://pressedwords.com/?p=186</guid>
		<description><![CDATA[With each major WordPress release, public changes like the new widgets administrative interface usually get all the glory. Here are some new features in WordPress 2.8 that most users won&#8217;t even know exist but you will probably care about, if you&#8217;re a WordPress developer. Widgets API The new widgets API lets you create widgets by [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>With each major WordPress release, public changes like the new widgets administrative interface usually get all the glory.  Here are some new features in <a href="http://wordpress.org/development/2009/06/wordpress-28/">WordPress 2.8</a> that most users won&#8217;t even know exist but you will probably care about, if you&#8217;re a WordPress developer.</p>
<ul>
<li><strong>Widgets API</strong>  The <a href="http://codex.wordpress.org/WordPress_Widgets_Api">new widgets API</a> lets you create widgets by extending the <code>WP_Widget</code> class.  If making a multi-widget with the old system was like trying to piece together your kid&#8217;s bicycle on Christmas Eve, the new API rolls out the bike for you, tires inflated and topped with a bow.
</li>
<li><strong>SimplePie RSS</strong>  WordPress has been using the MagpieRSS class to parse RSS feeds.  Trouble is, Magpie development ground to a halt about four years ago, meaning when contemporary feeds flummoxed Magpie, flustered developers <a href="http://core.trac.wordpress.org/ticket/2864">fumed, futilely</a>.  In 2.8, WordPress now reads RSS with <a href="http://simplepie.org/">SimplePie</a>, an active project with a robust API.
</li>
<li><strong>New Escape Functions</strong>  A new set of functions consistently named and <a href="http://en.wikipedia.org/wiki/DRY">DRY</a>-er now make your strings sparkly clean and cuddly safe.
<ul>
<li><code>esc_sql()</code>: A wrapper for the <code>$wpdb->escape()</code> method.</li>
<li><code>esc_url()</code>: Clean up an untrustworthy URL for printing.</li>
<li><code>esc_url_raw()</code>: Clean up an untrustworthy URL for storing in the database.</li>
<li><code>esc_js()</code>: Make text suitable for printing as a JavaScript string.</li>
<li><code>esc_html()</code>: Convert characters that have special meaning in HTML (such as <code>&gt;</code> and <code>&lt;</code>) into their equivalent character entities.</li>
<li><code>esc_attr()</code>: Prepare text so that it&#8217;s safe to be used in an HTML element attribute.</li>
<li><code>esc_attr__()</code>, <code>esc_attr_e()</code>, and <code>esc_attr_x()</code>: Make a translatable string safe for printing as an HTML element attribute.  E.g., <code>&lt;a href=&#034;&#034; title=&#034;&lt;?php esc_attr_e('Translate me'); ?&gt;&#034;&gt;</code></li>
<li><code>esc_html__()</code> and <code>esc_html_e()</code>: Like the last two, but for escaping HTML characters in general.</li>
</ul>
</li>
<li><strong><code>get_the_author_meta()</code></strong> User data is spread out between two database tables and has been accessed&#8212;until now&#8212;by a number of methods.  <a href="http://codex.wordpress.org/Template_Tags/the_author_meta"><code>get_the_author_meta()</code></a> retrieves user data with one easy-to-remember function.
</li>
<li><strong><code>the_post</code> Action Hook</strong> Called in <code>setup_postdata()</code>, the <code>the_post</code> action hook is one of those things that seems so obvious and so useful that you can&#8217;t believe it hasn&#8217;t existed until now.  At a crucial moment it passes the current global <code>$post</code> variable by reference: during <a href="http://codex.wordpress.org/The_Loop">the Loop</a> right after global variables are set but before they&#8217;re used in the template.
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://pressedwords.com/stuff-new-in-wp-2-8-for-coders/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Frequently-Used WordPress Filters and Actions</title>
		<link>http://pressedwords.com/popular-wordpress-filters-and-actions/</link>
		<comments>http://pressedwords.com/popular-wordpress-filters-and-actions/#comments</comments>
		<pubDate>Mon, 19 Jan 2009 15:07:26 +0000</pubDate>
		<dc:creator><![CDATA[Austin Matzko]]></dc:creator>
				<category><![CDATA[Asides]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[action hook]]></category>
		<category><![CDATA[filter]]></category>

		<guid isPermaLink="false">http://pressedwords.com/?p=179</guid>
		<description><![CDATA[Edward Dale has grepped through the WordPress plugins repository to find the most frequently-used filters and action hooks. In case you didn&#8217;t know, the filters and action hooks API is the glory of WordPress: it&#8217;s what makes WordPress so easily modified and extended. Seeing which are the most often used should say something about what [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Edward Dale has grepped through the <a href="http://wordpress.org/extend/plugins/">WordPress plugins repository</a> <a href="http://scompt.com/archives/2009/01/18/the-most-popular-wordpress-actions-and-filters">to find the most frequently-used filters and action hooks</a>.  </p>
<p>In case you didn&#8217;t know, the <a href="http://codex.wordpress.org/Plugin_API">filters and action hooks API</a> is the glory of WordPress: it&#8217;s what makes WordPress so easily modified and extended.  Seeing which are the most often used should say something about what plugins in general are trying to do.  </p>
<p>I think the most interesting result of Dale&#8217;s survey is that so few are used frequently. Once you get past the action hooks that have to do with plugin/widget initialization and the filters of post text, few remaining are statistically significant.  That suggests to me that most plugin developers are under-utilizing WordPress&#8217;s full potential.</p>
<p>See Dale&#8217;s results <a href="http://scompt.com/archives/2009/01/18/the-most-popular-wordpress-actions-and-filters">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://pressedwords.com/popular-wordpress-filters-and-actions/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress Use Declines Among Top 100 Bloggers</title>
		<link>http://pressedwords.com/cms-use-for-top-100-bloggers-2009/</link>
		<comments>http://pressedwords.com/cms-use-for-top-100-bloggers-2009/#comments</comments>
		<pubDate>Sat, 17 Jan 2009 17:32:16 +0000</pubDate>
		<dc:creator><![CDATA[Austin Matzko]]></dc:creator>
				<category><![CDATA[Asides]]></category>
		<category><![CDATA[Industry]]></category>
		<category><![CDATA[Technorati]]></category>

		<guid isPermaLink="false">http://pressedwords.com/?p=174</guid>
		<description><![CDATA[&#8230;but just barely. Last year, 34 of the top 100 bloggers used some version of WordPress. This year it&#8217;s 32. Movable Type / TypePad use has increased&#8212;again, barely&#8212;from 23 to 28 of the top blogs. Most of the changes seem to be a result of blogs coming and going from the ranks of the top [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>&#8230;but just barely.  <a href="http://www.cmswire.com/cms/micro-cms/results-most-popular-cms-in-technoratis-top-100-002198.php">Last year</a>, 34 of the top 100 bloggers used some version of WordPress.  <a href="http://royal.pingdom.com/2009/01/15/the-blog-platforms-of-choice-among-the-top-100-blogs/">This year it&#8217;s 32</a>.  Movable Type / TypePad use has increased&#8212;again, barely&#8212;from 23 to 28 of the top blogs. </p>
<p>Most of the changes seem to be a result of blogs coming and going from the ranks of the top 100.  Glancing at a diff of the two lists, it appears the only blog to have actually changed its CMS is <a href="http://crooksandliars.com/">Crooks and Liars</a>, which switched <a href="http://drupal.org/node/341231">away from WordPress to Drupal</a>.</p>
<p>Although I wish I could share <a href="http://ma.tt/2009/01/top-100-blogs/">Matt Mullenweg&#8217;s optimistic hope that next year WordPress will be used by &#8220;between 40-50%&#8221; of the top 100 bloggers</a>, the little amount of change from last year suggests that things will remain mostly the same.  That makes sense, given that most of these blogs are big business, and big businesses tend to act conservatively.</p>
]]></content:encoded>
			<wfw:commentRss>http://pressedwords.com/cms-use-for-top-100-bloggers-2009/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Paged Comments and the SEO Problem: A Solution</title>
		<link>http://pressedwords.com/solving-wordpress-seo-paged-comments-problem/</link>
		<comments>http://pressedwords.com/solving-wordpress-seo-paged-comments-problem/#comments</comments>
		<pubDate>Mon, 15 Dec 2008 20:26:03 +0000</pubDate>
		<dc:creator><![CDATA[Austin Matzko]]></dc:creator>
				<category><![CDATA[Themes]]></category>
		<category><![CDATA[Paged comments]]></category>
		<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://pressedwords.com/?p=163</guid>
		<description><![CDATA[The paged comments feature new in WordPress 2.7 is handy for reducing page size, but it introduces the search engine optimization (SEO) problem of putting the same content on different permalinks, as some have pointed out. That&#8217;s because the complete post would appear at all of these permalinks: http://example.com/my-post-permalink/ http://example.com/my-post-permalink/comment-page-1/ http://example.com/my-post-permalink/comment-page-2/ My solution in this [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>The paged comments feature new in WordPress 2.7 is handy for reducing page size, but it introduces the search engine optimization (SEO) problem of putting the same content on different permalinks, as <a href="http://comox.textdrive.com/pipermail/wp-hackers/2008-December/023189.html">some have pointed out</a>. That&#8217;s because the complete post would appear at all of these permalinks:</p>
<p><code>http://example.com/my-post-permalink/</code><br />
<code>http://example.com/my-post-permalink/comment-page-1/</code><br />
<code>http://example.com/my-post-permalink/comment-page-2/</code></p>
<p>My solution in this short plugin is to have all but the main permalink show an excerpt of the post, with a link back to the permalink page.</p>
<pre>
&lt;?php

/* 
 Plugin Name: SEO for Paged Comments
 Version: 1.1
 Description: Reduce SEO problems when using WordPress&#039;s paged comments.
 Author: Austin Matzko
 Author URI: http://www.pressedwords.com
 */

function seo_paged_comments_content_filter($t = &#039;&#039;) {
	if ( function_exists(&#039;get_query_var&#039;) ) {
		$cpage = intval(get_query_var(&#039;cpage&#039;));
		if ( ! empty( $cpage ) ) {
			remove_filter(&#039;the_content&#039;, &#039;seo_paged_comments_content_filter&#039;);
			$t = get_the_excerpt();
			$t .= sprintf(&#039;&lt;p&gt;&lt;a href="%1$s"&gt;%2$s&lt;/a&gt;&lt;/p&gt;&#039;, get_permalink(), get_the_title());
		}
	}
	return $t;
}

add_filter(&#039;the_content&#039;, &#039;seo_paged_comments_content_filter&#039;);
</pre>
<p><strong>Download:</strong><br />
<a href='http://downloads.wordpress.org/plugin/seo-for-paged-comments.zip'>seo-for-paged-comments.zip</a></p>
<p>[<strong>Updated</strong> January 30, 2009]</p>
]]></content:encoded>
			<wfw:commentRss>http://pressedwords.com/solving-wordpress-seo-paged-comments-problem/feed/</wfw:commentRss>
		<slash:comments>89</slash:comments>
		</item>
		<item>
		<title>WordPress Themes and Vagueness</title>
		<link>http://pressedwords.com/wordpress-themes-and-vagueness/</link>
		<comments>http://pressedwords.com/wordpress-themes-and-vagueness/#comments</comments>
		<pubDate>Sun, 14 Dec 2008 14:05:35 +0000</pubDate>
		<dc:creator><![CDATA[Austin Matzko]]></dc:creator>
				<category><![CDATA[Themes]]></category>
		<category><![CDATA[GPL]]></category>
		<category><![CDATA[Premium Themes]]></category>

		<guid isPermaLink="false">http://pressedwords.com/?p=136</guid>
		<description><![CDATA[Recently there&#8217;s been a kerfuffle in the WordPress blogosphere over the fact that WordPress.org suddenly removed 200 themes from the Extend repository, in order to make all themes comply with this apparently new stipulation: Themes for sites that support &#8220;premium&#8221; (non-GPL or compatible) themes will not be approved. Alister Cameron has written a post that&#8217;s [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Recently there&#8217;s been a kerfuffle in the WordPress blogosphere <a href="http://spectacu.la/wordpressorg-pull-200-gpl-themes/">over</a> <a href="http://justintadlock.com/archives/2008/12/11/automattic-putting-the-boot-to-premium-theme-developers">the</a> <a href="http://www.jeffro2pt0.com/why-were-200-wordpress-themes-removed">fact</a> that WordPress.org suddenly removed 200 themes from the Extend repository, in order to make all themes comply with <a href="http://wordpress.org/extend/themes/about/">this apparently new stipulation</a>:</p>
<blockquote><p>Themes for sites that support &#8220;premium&#8221; (non-GPL or compatible) themes will not be approved. </p></blockquote>
<p>Alister Cameron has written <a href="http://www.alistercameron.com/2008/12/14/matt-mullenweg-wordpress-gpl/">a post that&#8217;s excellent in describing the issue</a> (Matt Mullenweg, head of WordPress.org and the one who removed the themes, <a href="http://www.alistercameron.com/2008/12/14/matt-mullenweg-wordpress-gpl/#comment-19881">seems to like Cameron&#8217;s post too</a>). Here Cameron gets to the heart of the matter:</p>
<blockquote><p>If your theme was pulled and yet it was GPL licensed, there are only two options. Either it was a mistake (email Matt), or you were linking from it to a site that sold other themes that do contravene the GPL. If the latter is the case then you are in the awkward place of making the argument that Matt was wrong to defend the spirit of the GPL, beyond just the letter of it. </p></blockquote>
<p>Perhaps unintentionally Cameron highlights the problem with WordPress.org&#8217;s actions: the <a href="http://www.gnu.org/licenses/gpl-2.0.html">GPL</a> does not really have a spirit.  The GPL is a license&#8212;a license that makes possible wonderful things, but still just a legal document.  When you start trying to defend spirits, you stray from interpretation of a legal document into divination.</p>
<p>What that really means is making judgment calls based on vague or ineffable criteria.  WordPress.org can do that because it pays the bills.  Legally and perhaps ethically it&#8217;s justified in excluding themes that overuse the color blue, if the corporation wants.  But in practice, excluding good GPL&#8217;d themes because their authors have sites that &#8220;support&#8221; non-GPL&#8217;d stuff will foster ill-will.  It will seem just as arbitrary as excluding a too-blue theme because the criteria are just as vague, and that arbitrariness will always seem like capriciousness to those on the receiving end of the stick.</p>
<p>In other words, it&#8217;s unclear what constitutes &#8220;support.&#8221;  According to comments on the posts to which I linked above, &#8220;support&#8221; meant just an ad for a premium theme developer.  What about blog posts that promote or otherwise offer aid to premium theme developers&#8212;does that taint a site with &#8220;support&#8221;?  No one should have to parse answers to questions like that.</p>
<p>We don&#8217;t need more vagueness.  One of the main reasons we have more or less precise legal documents and legal systems for their interpretation is that we want to establish confidence in the stability of the system.  We won&#8217;t invest serious time, money, or other resources when we don&#8217;t have confidence about whether our work will be contravened by a subjective judgment call.  Subjective judgment calls are fine for our own lives or the businesses that are under our purview.  But when it comes to a community, when it means possibly hurting others, there should be greater transparency and specificity regarding the criteria.</p>
<p>So WordPress.org should remove that clause forbidding sites that &#8220;support&#8221; non-GPL&#8217;d stuff, not because as an independent, non-profit organization it doesn&#8217;t have the right to do so (it does).  WordPress.org should remove that clause because it harms the WordPress community by introducing unnecessary arbitrariness. </p>
<p>Besides, good GPL&#8217;d themes&#8212;no matter who creates theme&#8212;are a benefit to the community.  We the community get a free theme, and since we&#8217;re adults we&#8217;re capable of deciding whether the theme author&#8217;s site is one that we think worthy of our attention.</p>
<p>There is a good amount of talent in the WordPress themes business.  If the Extend repository becomes hostile to theme authors of quality themes, then the talent will go somewhere else.  That hurts non-technical WordPress users, who benefit from a central repository that they know is free from spammy links and back-door code, and home to top-notch themes. </p>
]]></content:encoded>
			<wfw:commentRss>http://pressedwords.com/wordpress-themes-and-vagueness/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Monthly Archives Idea</title>
		<link>http://pressedwords.com/tabular-wordpress-archives/</link>
		<comments>http://pressedwords.com/tabular-wordpress-archives/#comments</comments>
		<pubDate>Sat, 15 Nov 2008 00:05:22 +0000</pubDate>
		<dc:creator><![CDATA[Austin Matzko]]></dc:creator>
				<category><![CDATA[Themes]]></category>
		<category><![CDATA[archives]]></category>
		<category><![CDATA[template]]></category>

		<guid isPermaLink="false">http://pressedwords.com/?p=124</guid>
		<description><![CDATA[Charles Stricklin, WordPress Podcast guru, had an interesting idea for arranging monthly WordPress archives, which is basically to make an archives page like this.]]></description>
				<content:encoded><![CDATA[<p>Charles Stricklin, WordPress Podcast guru, <a href="http://charlesstricklin.com/2008/11/12/crafting-a-different-archives-template/">had an interesting idea for arranging monthly WordPress archives</a>, which is basically to make an archives page like this:</p>
<table>
<tbody>
<tr>
<th>2005</th>
<td><a href=""/></td>
<td><a href="http://www.example.com/2005/02/">Feb</a></td>
<td><a href=""/></td>
<td><a href="http://www.example.com/2005/04/">Apr</a></td>
<td><a href=""/></td>
<td><a href="http://www.example.com/2005/06/">Jun</a></td>
<td><a href="http://www.example.com/2005/07/">Jul</a></td>
<td><a href="http://www.example.com/2005/08/">Aug</a></td>
<td><a href="http://www.example.com/2005/09/">Sep</a></td>
<td><a href="http://www.example.com/2005/10/">Oct</a></td>
<td><a href="http://www.example.com/2005/11/">Nov</a></td>
<td><a href="http://www.example.com/2005/12/">Dec</a></td>
</tr>
<tr>
<th>2006</th>
<td><a href="http://www.example.com/2006/01/">Jan</a></td>
<td><a href="http://www.example.com/2006/02/">Feb</a></td>
<td><a href="http://www.example.com/2006/03/">Mar</a></td>
<td><a href="http://www.example.com/2006/04/">Apr</a></td>
<td><a href="http://www.example.com/2006/05/">May</a></td>
<td><a href="http://www.example.com/2006/06/">Jun</a></td>
<td><a href="http://www.example.com/2006/07/">Jul</a></td>
<td><a href="http://www.example.com/2006/08/">Aug</a></td>
<td><a href="http://www.example.com/2006/09/">Sep</a></td>
<td><a href="http://www.example.com/2006/10/">Oct</a></td>
<td><a href="http://www.example.com/2006/11/">Nov</a></td>
<td><a href=""/></td>
</tr>
<tr>
<th>2007</th>
<td><a href="http://www.example.com/2007/01/">Jan</a></td>
<td><a href=""/></td>
<td><a href=""/></td>
<td><a href=""/></td>
<td><a href=""/></td>
<td><a href=""/></td>
<td><a href=""/></td>
<td><a href=""/></td>
<td><a href=""/></td>
<td><a href=""/></td>
<td><a href=""/></td>
<td><a href=""/></td>
</tr>
<tr>
<th>2008</th>
<td><a href="http://www.example.com/2008/01/">Jan</a></td>
<td><a href=""/></td>
<td><a href=""/></td>
<td><a href="http://www.example.com/2008/04/">Apr</a></td>
<td><a href=""/></td>
<td><a href="http://www.example.com/2008/06/">Jun</a></td>
<td><a href=""/></td>
<td><a href=""/></td>
<td><a href=""/></td>
<td><a href="http://www.example.com/2008/10/">Oct</a></td>
<td><a href=""/></td>
<td><a href=""/></td>
</tr>
</tbody>
</table>
<p>Here&#8217;s how to do it just using the WordPress API (instead of direct database queries):</p>
<pre>
&lt;?php
if ( ! $calendar = wp_cache_get(&#39;year_month_archive&#39;, &#39;archive&#39;) ) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$calendar = array();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$year = date(&#39;Y&#39;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$mo_qry = new WP_Query();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$yr_qry = new WP_Query();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;do {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$yr_qry-&gt;query(array(&#39;year&#39; =&gt; $year, &#39;showposts&#39; =&gt; 1));
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ( $yr_qry-&gt;have_posts() ) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for ( $m = 1; $m &lt;= 12; $m++ ) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$mo_qry-&gt;query(array(&#39;year&#39; =&gt; $year, &#39;monthnum&#39; =&gt; $m, &#39;showposts&#39; =&gt; 1));
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ( $mo_qry-&gt;have_posts() ) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$calendar[$year][$m] = array(date(&#39;M&#39;, mktime(1,1,1, $m, 1, $year)), get_month_link($year, $m));
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} else {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$calendar[$year][$m] = array(&#39;&#39;,&#39;&#39;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$year = intval($year - 1);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} while ( $yr_qry-&gt;have_posts() );
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ksort($calendar);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wp_cache_set(&#39;year_month_archive&#39;, $calendar, &#39;archive&#39;);
}
?&gt;
&lt;table&gt;
&lt;?php foreach( $calendar as $year =&gt; $m ) : ?&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;&lt;th&gt;&lt;?php echo $year; ?&gt;&lt;/th&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;?php foreach( $m as $data ) : ?&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;&lt;a href="&lt;?php echo $data[1]; ?&gt;"&gt;&lt;?php echo $data[0]; ?&gt;&lt;/a&gt;&lt;/td&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;?php endforeach; ?&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;
&lt;?php endforeach; ?&gt;
&lt;/table&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://pressedwords.com/tabular-wordpress-archives/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Beware Upgrading to a Fake WordPress 2.6.4</title>
		<link>http://pressedwords.com/beware-trojan-wordpress/</link>
		<comments>http://pressedwords.com/beware-trojan-wordpress/#comments</comments>
		<pubDate>Fri, 07 Nov 2008 12:49:26 +0000</pubDate>
		<dc:creator><![CDATA[Austin Matzko]]></dc:creator>
				<category><![CDATA[Asides]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Snoopy]]></category>
		<category><![CDATA[Trojan]]></category>

		<guid isPermaLink="false">http://pressedwords.com/?p=121</guid>
		<description><![CDATA[The Register mentions an attack on WordPress blogs that tells users to upgrade to a bogus 2.6.4 version of WordPress. This attack seems to be taking advantage of the security vulnerability that necessitated WordPress 2.6.3, whereby if an attacker could get control of an RSS feed that you publish on your blog (for example using [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.theregister.co.uk/2008/11/06/trojanised_wordpress/"><em>The Register</em> mentions an attack on WordPress blogs</a> that tells users to upgrade to a bogus 2.6.4 version of WordPress.</p>
<p>This attack seems to be taking advantage of the security vulnerability that <a href="http://wordpress.org/development/2008/10/wordpress-263/">necessitated WordPress 2.6.3</a>, whereby if an attacker could get control of an RSS feed that you publish on your blog (for example using the RSS widget), he might be able to execute any commands. </p>
]]></content:encoded>
			<wfw:commentRss>http://pressedwords.com/beware-trojan-wordpress/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Happy Halloween</title>
		<link>http://pressedwords.com/happy-halloween/</link>
		<comments>http://pressedwords.com/happy-halloween/#comments</comments>
		<pubDate>Fri, 31 Oct 2008 21:38:56 +0000</pubDate>
		<dc:creator><![CDATA[Austin Matzko]]></dc:creator>
				<category><![CDATA[Industry]]></category>
		<category><![CDATA[Halloween]]></category>
		<category><![CDATA[WordPress Pumpkin]]></category>

		<guid isPermaLink="false">http://pressedwords.com/?p=113</guid>
		<description><![CDATA[]]></description>
				<content:encoded><![CDATA[<p><img src="http://pressedwords.com/blog/uploads/2008/10/wp-pumpkin2.jpg" alt="WordPress Pumpkin" title="wp-pumpkin2" width="500" height="398" class="size-full wp-image-115" /></p>
<p><img src="http://pressedwords.com/blog/uploads/2008/10/wp-pumpkin1.jpg" alt="WordPress Pumpkin" title="wp-pumpkin1" width="500" height="648" class="size-full wp-image-116" /></p>
]]></content:encoded>
			<wfw:commentRss>http://pressedwords.com/happy-halloween/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>WordPress 2.7 Theme Comments How-To</title>
		<link>http://pressedwords.com/wordpress-threaded-comments-how-to/</link>
		<comments>http://pressedwords.com/wordpress-threaded-comments-how-to/#comments</comments>
		<pubDate>Mon, 29 Sep 2008 18:03:30 +0000</pubDate>
		<dc:creator><![CDATA[Austin Matzko]]></dc:creator>
				<category><![CDATA[Asides]]></category>
		<category><![CDATA[Releases]]></category>
		<category><![CDATA[Themes]]></category>
		<category><![CDATA[comments]]></category>
		<category><![CDATA[WordPress 2.7]]></category>

		<guid isPermaLink="false">http://pressedwords.com/?p=111</guid>
		<description><![CDATA[Otto has a good tutorial on adjusting a WordPress theme to take advantage of the upcoming comment features in WordPress 2.7, including comment threading and paging. Keep in mind that WordPress 2.7 is still under development, and these features could change somewhat before 2.7 is released.]]></description>
				<content:encoded><![CDATA[<p>Otto has <a href="http://ottodestruct.com/blog/2008/09/29/wordpress-27-comments-enhancements/">a good tutorial on adjusting a WordPress theme to take advantage of the upcoming comment features in WordPress 2.7</a>, including comment threading and paging.</p>
<p>Keep in mind that WordPress 2.7 is still under development, and these features could change somewhat before 2.7 is released.</p>
]]></content:encoded>
			<wfw:commentRss>http://pressedwords.com/wordpress-threaded-comments-how-to/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Does Google Discourage the use of WordPress Permalinks?</title>
		<link>http://pressedwords.com/google-not-attacking-wordpress-permalinks-per-se/</link>
		<comments>http://pressedwords.com/google-not-attacking-wordpress-permalinks-per-se/#comments</comments>
		<pubDate>Fri, 26 Sep 2008 15:06:09 +0000</pubDate>
		<dc:creator><![CDATA[Austin Matzko]]></dc:creator>
				<category><![CDATA[Industry]]></category>
		<category><![CDATA[Themes]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[permalinks]]></category>
		<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://pressedwords.com/?p=101</guid>
		<description><![CDATA[A recent blog entry by Google&#8217;s Search Quality Team members Juliane Stiller and Kaspar Szymanski somewhat confusingly gives the impression that Google does not like WordPress-style permalinks. Does that mean I should avoid rewriting dynamic URLs at all? That&#8217;s our recommendation, unless your rewrites are limited to removing unnecessary parameters, or you are very diligent [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>A <a href="http://googlewebmastercentral.blogspot.com/2008/09/dynamic-urls-vs-static-urls.html">recent blog entry by Google&#8217;s Search Quality Team members Juliane Stiller and Kaspar Szymanski</a> somewhat confusingly gives the impression that Google does not like WordPress-style permalinks.  </p>
<blockquote><p><strong>Does that mean I should avoid rewriting dynamic URLs at all?</strong><br />
That&#8217;s our recommendation, unless your rewrites are limited to removing unnecessary parameters, or you are very diligent in removing all parameters that could cause problems. If you transform your dynamic URL to make it look static you should be aware that we might not be able to interpret the information correctly in all cases.</p></blockquote>
<p>A number of bloggers, including <a href="http://wordpressphilippines.org/blog/google-says-dont-use-pretty-permalinks/">Sophia Lucero at WordPress Philippines</a>, draw the conclusion that WordPress permalinks are harmful to PageRank.  However, the specific concerns mentioned by Stiller and Szymanski suggest they are not actually criticizing the standard use of WordPress permalinks.</p>
<p>Instead, the authors&#8217; overriding concern seems to be static URLs that &#8220;could cause [Google] to crawl the same piece of content needlessly via many different URLs,&#8221; and the examples they give are mainly of search queries.  </p>
<p>That&#8217;s not at all like a WordPress permalink for a blog post. A WordPress post has a one-to-one relationship with its permalink, meaning that only that content will be found at that permalink and that post will not appear at any other permalink.  Or at least that&#8217;s the way things should be on a WordPress blog: for a while <abbr title="search engine optimization">SEO</abbr> experts have recommended that the <em>complete</em> content for each blog post appear only at an individual post&#8217;s permalink.  In practice that means making sure that category archives, monthly archives, and the like should show only <em>excerpts</em> of a post, not the complete text.  Most modern WordPress themes do this, but some, especially older themes, do not.</p>
<p>The Google article gives a number of bad examples of &#8220;dynamic&#8221; URLs written as &#8220;static&#8221; URLs, including this one:<br />
<code>www.example.com/article/bin/answer.foo/en/3/98971298178906/URL</code><br />
The problem with this, say the authors, is that when crawling that link it is &#8220;difficult for us to understand that URL and 98971298178906 have nothing to do with the actual content which is returned via this URL.&#8221; (Here &#8220;98971298178906&#8221; is a session id).  The authors don&#8217;t even recommend simplifying the URL to something like <code>www.example.com/article/bin/answer.foo/en/3</code>:</p>
<blockquote><p>Although we are able to process this URL correctly, we would still discourage you from using this rewrite as it is hard to maintain and needs to be updated as soon as a new parameter is added to the original dynamic URL</p></blockquote>
<p>Again, the concern seems to be that the bad &#8220;permalink&#8221; example does not have a one-to-one relationship with the content.  &#8220;98971298178906&#8221; is particular to the site visitor, not the site&#8217;s content, and even &#8220;answer.foo/en/3&#8243; could change when that answer is no longer the third one.</p>
<p>So the main lesson a WordPress blogger should take from this is the old lesson of SEO: avoid duplicate content.  WordPress permalinks that are one-to-one with their content and have relevant keywords are good for SEO.  They combine the benefits of static URLs mentioned by the authors, such as higher click-through rate, without the deficits. </p>
]]></content:encoded>
			<wfw:commentRss>http://pressedwords.com/google-not-attacking-wordpress-permalinks-per-se/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using memcached
Database Caching 1/5 queries in 0.002 seconds using memcached
Object Caching 559/570 objects using memcached

 Served from: pressedwords.com @ 2026-04-11 08:05:32 by W3 Total Cache -->