<?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>Blogging Extreme.com&#187; Mark Jaquith</title>
	<atom:link href="http://bloggingextreme.com/author/mark-jaquith/feed/" rel="self" type="application/rss+xml" />
	<link>http://bloggingextreme.com</link>
	<description>Blogging Extreme.com ★ The Location For Learning Extreme Blogging ★</description>
	<lastBuildDate>Wed, 16 Nov 2011 02:06:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>PHP 4 and MySQL 4 End of Life Announcement</title>
		<link>http://wordpress.org/news/2010/07/eol-for-php4-and-mysql4/</link>
		<comments>http://wordpress.org/news/2010/07/eol-for-php4-and-mysql4/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 19:01:46 +0000</pubDate>
		<dc:creator>Mark Jaquith</dc:creator>
				<category><![CDATA[Hosting]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[requirements]]></category>

		<guid isPermaLink="false">http://wordpress.org/news/?p=1447</guid>
		<description><![CDATA[Our approach with WordPress has always been to make it run on common server configurations. We want users to have flexibility when choosing a host for their precious content. Because of this strategy, WordPress runs pretty much anywhere. Web hosting platforms, however, change over time, and we occasionally are able to reevaluate some of the [...]]]></description>
			<content:encoded><![CDATA[<p>Our approach with WordPress has always been to make it run on common server configurations. We want users to have flexibility when choosing a host for their precious content. Because of this strategy, WordPress runs pretty much anywhere. Web hosting platforms, however, change over time, and we occasionally are able to reevaluate some of the requirements for running WordPress. Now is one of those times. You probably guessed it from the title &#8212; we&#8217;re finally ready to announce the end of support for PHP 4 and MySQL 4!</p>
<p>First up, the announcement that developers really care about. WordPress 3.1, due in late 2010, will be the last version of WordPress to support PHP 4.</p>
<p>For WordPress 3.2, due in the first half of 2011, we will be raising the minimum required PHP version to 5.2. Why 5.2? Because that&#8217;s what the vast majority of WordPress users are using, and it offers substantial improvements over earlier PHP 5 releases. It is also the minimum PHP version that the <a href="http://drupal.org/">Drupal</a> and <a href="http://www.joomla.org/">Joomla</a> projects will be supporting in their next versions, both due out this year.</p>
<p>The numbers are now, <em>finally</em>, strongly in favor of this move. Only around 11 percent of WordPress installs are running on a PHP version below 5.2. Many of them are on hosts who support PHP 5.2 &#8212; users merely need to change a setting in their hosting control panel to activate it. We believe that percentage will only go down over the rest of the year as hosting providers realize that to support the newest versions of WordPress (or Drupal, or Joomla), they&#8217;re going to have to pull the trigger.</p>
<p>In less exciting news, we are also going to be dropping support for MySQL 4 after WordPress 3.1. Fewer than 6 percent of WordPress users are running MySQL 4. The new required MySQL version for WordPress 3.2 will be 5.0.15.</p>
<p>WordPress users will not be able to upgrade to WordPress 3.2 if their hosting environment does not meet these requirements (the built-in updater will prevent it). In order to determine which versions your host provides, we&#8217;ve created the <a href="http://wordpress.org/extend/plugins/health-check/">Health Check plugin</a>. You can download it manually, or use this <a href="http://coveredwebservices.com/wp-plugin-install/?plugin=health-check">handy plugin installation</a> tool I whipped up. Right now, Health Check will only tell you if you&#8217;re ready for WordPress 3.2. In a future release it will provide all sorts of useful information about your server and your WordPress install, so hang on to it!</p>
<p>In summary: WordPress 3.1, due in late 2010, will be the last version of WordPress to support PHP 4 and MySQL 4. WordPress 3.2, due in the first half of 2011, will require PHP 5.2 or higher, and MySQL 5.0.15 or higher. <a href="http://coveredwebservices.com/wp-plugin-install/?plugin=health-check">Install the Health Check plugin</a> to see if you&#8217;re ready!</p>
]]></content:encoded>
			<wfw:commentRss>http://wordpress.org/news/2010/07/eol-for-php4-and-mysql4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mark Jaquith: New in WordPress 2.9: Post Thumbnail Images</title>
		<link>http://markjaquith.wordpress.com/2009/12/23/new-in-wordpress-2-9-post-thumbnail-images/</link>
		<comments>http://markjaquith.wordpress.com/2009/12/23/new-in-wordpress-2-9-post-thumbnail-images/#comments</comments>
		<pubDate>Wed, 23 Dec 2009 07:19:45 +0000</pubDate>
		<dc:creator>Mark Jaquith</dc:creator>
				<category><![CDATA[1]]></category>

		<guid isPermaLink="false">http://markjaquith.wordpress.com/?p=389</guid>
		<description><![CDATA[<div class="snap_preview"><br /><p>Many WordPress themes, especially those with &#8220;magazine-like&#8221; layouts, use an image to represent each post. It might just be on the front page. It might be alone, or alongside an excerpt. Until now, there was no standardized way to do this. Many themes would require you to tediously enter a Custom Field with the value being the URL you wanted to use. Often you had to do cropping yourself. With WordPress 2.9, theme authors can easily enable Post Thumbnail selection UI and call those image using simple template tags.</p>
<p><img src="http://markjaquith.files.wordpress.com/2009/12/post-thumbnail.png?w=297&#038;h=138" alt="" title="post-thumbnail" width="297" height="138" class="aligncenter size-full wp-image-392" /></p>
<p>First, in the theme&#8217;s <code>functions.php</code>, declare that your theme supports this feature. This will enable the UI in the WP Admin.</p>
<pre class="brush: php;">add_theme_support( 'post-thumbnails' );</pre>
<p>That will enable Post Thumbnail UI for both Post and Page content types. If you&#8217;d only like to add it to one, you can do it like this:</p>
<pre class="brush: php;">add_theme_support( 'post-thumbnails', array( 'post' ) ); // Add it for posts
add_theme_support( 'post-thumbnails', array( 'page' ) ); // Add it for pages</pre>
<p>Simply remove the one you don&#8217;t want to support.</p>
<p>Next, you should specify the dimensions of your post thumbnails. You have two options here: box-resizing and hard-cropping. Box resizing shrinks an image proportionally (that is, without distorting it), until it fits inside the &#8220;box&#8221; you&#8217;ve specified with your width and height parameters. For example, a 100&#215;50 image in a 50&#215;50 box would be resized to 50&#215;25. The benefit here is that the entire image shows. The downside is that the image produced isn&#8217;t always the same size. Sometimes it will be width-limited, and sometimes it will be height-limited. If you&#8217;d like to limit images to a certain width, but don&#8217;t care how tall they are, you can specify your width and then specify a height of 9999 or something ridiculously large that will never be hit.</p>
<pre class="brush: php;">set_post_thumbnail_size( 50, 50 ); // 50 pixels wide by 50 pixels tall, box resize mode</pre>
<p>Your second option is hard-cropping. In this mode, the image is cropped to match the target aspect ratio, and is then shrunk to fit in the specified dimensions <strong>exactly</strong>. The benefit is that you get what you ask for. If you ask for a 50&#215;50 thumbnail, you get a 50&#215;50 thumbnail. The downside is that your image will be cropped (either from the sides, or from the top and bottom) to fit the target aspect ratio, and that part of the image won&#8217;t show up in the thumbnail.</p>
<pre class="brush: php;">set_post_thumbnail_size( 50, 50, true ); // 50 pixels wide by 50 pixels tall, hard crop mode</pre>
<p>Now, you can make use of the template functions to display these images in the theme. These functions should be used in the loop.</p>
<p><code>has_post_thumbnail()</code> returns true/false and indicates whether the current post has a manually-chosen Post Thumbnail (in the loop):</p>
<pre class="brush: php;">&#60;?php
if ( has_post_thumbnail() ) {
	// the current post has a thumbnail
} else {
	// the current post lacks a thumbnail
}
?&#62;</pre>
<p><code>the_post_thumbnail()</code> outputs the Post Thumbnail, if it exists (in the loop):</p>
<pre class="brush: php;">&#60;?php the_post_thumbnail(); ?&#62;</pre>
<p>Those are the basics. How about some advanced stuff?</p>
<p>What if you want to use a small 50&#215;50 hard-cropped image for the home page, but want to use a 400 pixel-wide (unlimited height) image on the post&#8217;s permalink page? You&#8217;re in luck. You can specify additional custom sizes! Here&#8217;s the code:</p>
<p><code>functions.php</code></p>
<pre class="brush: php;">add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 50, 50, true ); // Normal post thumbnails
add_image_size( 'single-post-thumbnail', 400, 9999 ); // Permalink thumbnail size</pre>
<p><code>home.php</code> or <code>index.php</code>, depending on your theme structure (in the loop):</p>
<pre class="brush: php;">&#60;?php the_post_thumbnail(); ?&#62;</pre>
<p><code>single.php</code> (in the loop):</p>
<pre class="brush: php;">&#60;?php the_post_thumbnail( 'single-post-thumbnail' ); ?&#62;</pre>
<p>That&#8217;s it! <code>set_post_thumbnail_size()</code> just calls <code>add_image_size( 'post-thumbnail' )</code> &#8212; the default Post Thumbnail &#8220;handle.&#8221; But as you can see, you can add additional ones by calling <code>add_image_size( $handle, $width, $height, {$hard_crop_switch} );</code>, and then you use that new size by passing the handle to <code>the_post_thumbnail( $handle );</code></p>
<p>If you want your theme to support earlier versions of WordPress, you&#8217;ll have to use <code>function_exists()</code> to keep from calling these new functions in those versions. I&#8217;ve omitted that code to keep these examples as simple as possible. Here would be the <code>functions.php</code> example with the wrapper code:</p>
<pre class="brush: php;">if ( function_exists( 'add_theme_support' ) ) { // Added in 2.9
	add_theme_support( 'post-thumbnails' );
	set_post_thumbnail_size( 50, 50, true ); // Normal post thumbnails
	add_image_size( 'single-post-thumbnail', 400, 9999 ); // Permalink thumbnail size
}</pre>
<p>There is one caveat for this feature in WordPress 2.9 &#8212; it only works <strong>fully</strong> for new image uploads. We can&#8217;t yet resize images on the fly, although I&#8217;m strongly considering it for a future version. If you call the template functions on a post that has a Post Thumbnail that was uploaded prior to your theme having declared the new sizes, you won&#8217;t be able to do hard-cropping, and the box-resize will be done in the browser. As a temporary solution, Viper007Bond has a great plugin that will go back and create missing image sizes for you: <a href="http://wordpress.org/extend/plugins/regenerate-thumbnails/">Regenerate Thumbnails</a>.</p>
<p>I&#8217;m looking forward to see what kinds of sites you can build with this feature!</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/markjaquith.wordpress.com/389/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/markjaquith.wordpress.com/389/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/markjaquith.wordpress.com/389/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/markjaquith.wordpress.com/389/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/markjaquith.wordpress.com/389/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/markjaquith.wordpress.com/389/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/markjaquith.wordpress.com/389/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/markjaquith.wordpress.com/389/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/markjaquith.wordpress.com/389/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/markjaquith.wordpress.com/389/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=markjaquith.wordpress.com&#038;blog=316&#038;post=389&#038;subd=markjaquith&#038;ref=&#038;feed=1" /></div>]]></description>
			<content:encoded><![CDATA[<div class="snap_preview"><br /><p>Many WordPress themes, especially those with &#8220;magazine-like&#8221; layouts, use an image to represent each post. It might just be on the front page. It might be alone, or alongside an excerpt. Until now, there was no standardized way to do this. Many themes would require you to tediously enter a Custom Field with the value being the URL you wanted to use. Often you had to do cropping yourself. With WordPress 2.9, theme authors can easily enable Post Thumbnail selection UI and call those image using simple template tags.</p>
<p><img src="http://markjaquith.files.wordpress.com/2009/12/post-thumbnail.png?w=297&#038;h=138" alt="" title="post-thumbnail" width="297" height="138" class="aligncenter size-full wp-image-392" /></p>
<p>First, in the theme&#8217;s <code>functions.php</code>, declare that your theme supports this feature. This will enable the UI in the WP Admin.</p>
<pre class="brush: php;">add_theme_support( 'post-thumbnails' );</pre>
<p>That will enable Post Thumbnail UI for both Post and Page content types. If you&#8217;d only like to add it to one, you can do it like this:</p>
<pre class="brush: php;">add_theme_support( 'post-thumbnails', array( 'post' ) ); // Add it for posts
add_theme_support( 'post-thumbnails', array( 'page' ) ); // Add it for pages</pre>
<p>Simply remove the one you don&#8217;t want to support.</p>
<p>Next, you should specify the dimensions of your post thumbnails. You have two options here: box-resizing and hard-cropping. Box resizing shrinks an image proportionally (that is, without distorting it), until it fits inside the &#8220;box&#8221; you&#8217;ve specified with your width and height parameters. For example, a 100&#215;50 image in a 50&#215;50 box would be resized to 50&#215;25. The benefit here is that the entire image shows. The downside is that the image produced isn&#8217;t always the same size. Sometimes it will be width-limited, and sometimes it will be height-limited. If you&#8217;d like to limit images to a certain width, but don&#8217;t care how tall they are, you can specify your width and then specify a height of 9999 or something ridiculously large that will never be hit.</p>
<pre class="brush: php;">set_post_thumbnail_size( 50, 50 ); // 50 pixels wide by 50 pixels tall, box resize mode</pre>
<p>Your second option is hard-cropping. In this mode, the image is cropped to match the target aspect ratio, and is then shrunk to fit in the specified dimensions <strong>exactly</strong>. The benefit is that you get what you ask for. If you ask for a 50&#215;50 thumbnail, you get a 50&#215;50 thumbnail. The downside is that your image will be cropped (either from the sides, or from the top and bottom) to fit the target aspect ratio, and that part of the image won&#8217;t show up in the thumbnail.</p>
<pre class="brush: php;">set_post_thumbnail_size( 50, 50, true ); // 50 pixels wide by 50 pixels tall, hard crop mode</pre>
<p>Now, you can make use of the template functions to display these images in the theme. These functions should be used in the loop.</p>
<p><code>has_post_thumbnail()</code> returns true/false and indicates whether the current post has a manually-chosen Post Thumbnail (in the loop):</p>
<pre class="brush: php;">&lt;?php
if ( has_post_thumbnail() ) {
	// the current post has a thumbnail
} else {
	// the current post lacks a thumbnail
}
?&gt;</pre>
<p><code>the_post_thumbnail()</code> outputs the Post Thumbnail, if it exists (in the loop):</p>
<pre class="brush: php;">&lt;?php the_post_thumbnail(); ?&gt;</pre>
<p>Those are the basics. How about some advanced stuff?</p>
<p>What if you want to use a small 50&#215;50 hard-cropped image for the home page, but want to use a 400 pixel-wide (unlimited height) image on the post&#8217;s permalink page? You&#8217;re in luck. You can specify additional custom sizes! Here&#8217;s the code:</p>
<p><code>functions.php</code></p>
<pre class="brush: php;">add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 50, 50, true ); // Normal post thumbnails
add_image_size( 'single-post-thumbnail', 400, 9999 ); // Permalink thumbnail size</pre>
<p><code>home.php</code> or <code>index.php</code>, depending on your theme structure (in the loop):</p>
<pre class="brush: php;">&lt;?php the_post_thumbnail(); ?&gt;</pre>
<p><code>single.php</code> (in the loop):</p>
<pre class="brush: php;">&lt;?php the_post_thumbnail( 'single-post-thumbnail' ); ?&gt;</pre>
<p>That&#8217;s it! <code>set_post_thumbnail_size()</code> just calls <code>add_image_size( 'post-thumbnail' )</code> &#8212; the default Post Thumbnail &#8220;handle.&#8221; But as you can see, you can add additional ones by calling <code>add_image_size( $handle, $width, $height, {$hard_crop_switch} );</code>, and then you use that new size by passing the handle to <code>the_post_thumbnail( $handle );</code></p>
<p>If you want your theme to support earlier versions of WordPress, you&#8217;ll have to use <code>function_exists()</code> to keep from calling these new functions in those versions. I&#8217;ve omitted that code to keep these examples as simple as possible. Here would be the <code>functions.php</code> example with the wrapper code:</p>
<pre class="brush: php;">if ( function_exists( 'add_theme_support' ) ) { // Added in 2.9
	add_theme_support( 'post-thumbnails' );
	set_post_thumbnail_size( 50, 50, true ); // Normal post thumbnails
	add_image_size( 'single-post-thumbnail', 400, 9999 ); // Permalink thumbnail size
}</pre>
<p>There is one caveat for this feature in WordPress 2.9 &#8212; it only works <strong>fully</strong> for new image uploads. We can&#8217;t yet resize images on the fly, although I&#8217;m strongly considering it for a future version. If you call the template functions on a post that has a Post Thumbnail that was uploaded prior to your theme having declared the new sizes, you won&#8217;t be able to do hard-cropping, and the box-resize will be done in the browser. As a temporary solution, Viper007Bond has a great plugin that will go back and create missing image sizes for you: <a href="http://wordpress.org/extend/plugins/regenerate-thumbnails/">Regenerate Thumbnails</a>.</p>
<p>I&#8217;m looking forward to see what kinds of sites you can build with this feature!</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/markjaquith.wordpress.com/389/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/markjaquith.wordpress.com/389/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/markjaquith.wordpress.com/389/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/markjaquith.wordpress.com/389/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/markjaquith.wordpress.com/389/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/markjaquith.wordpress.com/389/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/markjaquith.wordpress.com/389/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/markjaquith.wordpress.com/389/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/markjaquith.wordpress.com/389/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/markjaquith.wordpress.com/389/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=markjaquith.wordpress.com&blog=316&post=389&subd=markjaquith&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://bloggingextreme.com/1/mark-jaquith-new-in-wordpress-2-9-post-thumbnail-images/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The WordPress 2.0.x Legacy Branch is Deprecated</title>
		<link>http://wordpress.org/development/2009/07/the-wordpress-2-0-x-legacy-branch-is-deprecated/</link>
		<comments>http://wordpress.org/development/2009/07/the-wordpress-2-0-x-legacy-branch-is-deprecated/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 01:07:23 +0000</pubDate>
		<dc:creator>Mark Jaquith</dc:creator>
				<category><![CDATA[2.0]]></category>
		<category><![CDATA[branch]]></category>
		<category><![CDATA[deprecation]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[legacy]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://wordpress.org/development/?p=866</guid>
		<description><![CDATA[The WordPress team had initially committed to maintaining the WordPress 2.0.x legacy branch until 2010. Unfortunately, we bit off more than we could chew—the 2.0.x branch is now retired and deprecated, a few months shy of 2010.
Many of the security improvements to the new versions of WordPress in the last couple of years were complete [...]]]></description>
			<content:encoded><![CDATA[<p>The WordPress team had initially committed to maintaining the WordPress 2.0.x legacy branch until 2010. Unfortunately, we bit off more than we could chew—the 2.0.x branch is now retired and deprecated, a few months shy of 2010.</p>
<p>Many of the security improvements to the new versions of WordPress in the last couple of years were complete reworks of how various systems were handled. Porting those changes to the 2.0.x branch would have been a monumental task and could have introduced instability or new bugs. We had to make hard decisions between stability and merging in the latest security enhancements. Additionally, far fewer people stayed on the 2.0.x branch than we anticipated. I take that as a testament to the new features in WordPress and perhaps even more the features offered by plugins, many of which don&#8217;t support older versions of WordPress!</p>
<p>I&#8217;m disappointed that we weren&#8217;t able to keep the branch maintained until 2010, but since one of the big reasons for that failure was the massive scope of our security improvements for the newer versions of WordPress, 2.0.x doesn&#8217;t die in vain!</p>
]]></content:encoded>
			<wfw:commentRss>http://wordpress.org/development/2009/07/the-wordpress-2-0-x-legacy-branch-is-deprecated/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

