<?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>Wordpress @ GrandSlambert</title>
	<atom:link href="http://wordpress.grandslambert.com/feed" rel="self" type="application/rss+xml" />
	<link>http://wordpress.grandslambert.com</link>
	<description>Tips and Tricks to Optimizing Wordpress</description>
	<lastBuildDate>Mon, 30 Aug 2010 21:44:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Updgrade WordPress MU 2.9.2 to WordPress 3.0</title>
		<link>http://wordpress.grandslambert.com/2010/06/updgrade-wordpress-mu-2-9-2-to-wordpress-3-0.html</link>
		<comments>http://wordpress.grandslambert.com/2010/06/updgrade-wordpress-mu-2-9-2-to-wordpress-3-0.html#comments</comments>
		<pubDate>Thu, 17 Jun 2010 17:03:06 +0000</pubDate>
		<dc:creator>GrandSlambert</dc:creator>
				<category><![CDATA[Announcements]]></category>

		<guid isPermaLink="false">http://wordpress.grandslambert.com/?p=571</guid>
		<description><![CDATA[Today we finally see the release of WordPress 3.0, in fact, only a few moments ago as I type this. I have been working with the Release Candidates for quite some time, but had never attempted an upgrade from a &#8230; <a href="http://wordpress.grandslambert.com/2010/06/updgrade-wordpress-mu-2-9-2-to-wordpress-3-0.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Today we finally see the release of WordPress 3.0, in fact, only a few moments ago as I type this. I have been working with the Release Candidates for quite some time, but had never attempted an upgrade from a WordPress MU installation to WordPress 3.0. I decided to attempt an upgrade using the <a href="http://wordpress.org/extend/plugins/wordpress-beta-tester/" target="_blank">beta testers plugin</a>. I made my backups, I double checked that I could go back if I needed to, and then I headed on over to the update page.</p>
<p>But then I wondered &#8211; how easily will my MU 2.9.2 install upgrade to 3.0? Do I just try it on my live site and see what happens? I had the backups, I could easily switch back in under a minute if things broke, so why not. I clicked the button, and although it told me it would be re-installing 2.9.2, it actually did  update to 3.0. It ran for about 32 seconds and said it was done. I went back to the dashboard and there were some instructions for me to follow. I needed to change my .htaccess file in one place, and remove a file in wp-content. It also reminded me to run the update on all the sites, which was pretty much automatic and worked well.</p>
<p>So, did it work? Well, if you are reading this site, then I can tell you for certain that it worked! This site, and all of those I manage under the <a href="http://grandslambert.com" target="_blank">GrandSlambert</a> name, including two mapped domains (<a href="http://calendarpress.net" target="_blank">calendarpress.net</a> and <a href="http://recipepress.net" target="_blank">recipepress.net</a>) were running on WordPress MU 2.9.2 and are now running under WordPress 3.0!</p>
<h3>Blogs to Sites</h3>
<p>In older versions of WordPress MU, individual blogs where called just that, blogs. In WordPress 3.0, the terminology changed from &#8220;multiuser&#8221; to &#8220;multisite&#8221;, and therefore they are known as &#8220;Sites&#8221; in this latest version. Otherwise everything else still seems to work, though see my note below.</p>
<h3>Errors and Omissions?</h3>
<p>I did find one little flaw that I will make sure is reported. When looking at the &#8220;Sites&#8221; on the &#8220;Super Admin&#8221; or on the &#8220;My Sites&#8221; on the dashboard, all of the links to the &#8220;Backend&#8221; and &#8220;Dashboard&#8221; take you to the Dashboard for the existing site, and not for the site you want to switch to. For now, I have to click on &#8220;Visit&#8221;, then go to the Dashboard. Otherwise, so far, so good. All of the multiuser plugins I had active are working, domain mapping is working, and I have yet to find any other issues. Then again, I only switched about twenty minutes ago, so we shall see.</p>
<h3>Is it a go?</h3>
<p>Yep, go ahead and update &#8211; it will make your life so much easier with all the wonderful new additions to WordPress!</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow: hidden;">Though it told me it would be re-installing 2.9.2, it actually did  update to 3.0.</div>
]]></content:encoded>
			<wfw:commentRss>http://wordpress.grandslambert.com/2010/06/updgrade-wordpress-mu-2-9-2-to-wordpress-3-0.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adding Custom Post Type Counts to Dashboard</title>
		<link>http://wordpress.grandslambert.com/2010/06/adding-custom-post-counts-to-dashboard.html</link>
		<comments>http://wordpress.grandslambert.com/2010/06/adding-custom-post-counts-to-dashboard.html#comments</comments>
		<pubDate>Thu, 03 Jun 2010 20:39:50 +0000</pubDate>
		<dc:creator>GrandSlambert</dc:creator>
				<category><![CDATA[Action Reference]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[dashboard]]></category>
		<category><![CDATA[right now]]></category>
		<category><![CDATA[widgets]]></category>

		<guid isPermaLink="false">http://wordpress.grandslambert.com/?p=557</guid>
		<description><![CDATA[With the rewrite of the Recipe Press plugin to use custom post types and taxonomies, one of the pages that has gone by the wayside is the &#8220;Overview&#8221; page. I had added this page to have something like the WordPress &#8230; <a href="http://wordpress.grandslambert.com/2010/06/adding-custom-post-counts-to-dashboard.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://wordpress.grandslambert.com/files/2010/06/right-now-widget.png"><img class="alignright size-medium wp-image-561" title="right-now-widget" src="http://wordpress.grandslambert.com/files/2010/06/right-now-widget-300x191.png" alt="" width="300" height="191" /></a>With the rewrite of the <a href="http://recipepress.net" target="_blank">Recipe Press</a> plugin to use custom post types and taxonomies, one of the pages that has gone by the wayside is the &#8220;Overview&#8221; page. I had added this page to have something like the WordPress Dashboard for the plugin. Since Custom Post Types actually creates its own menus and panels, the custom panel I had created would not display in the location I want, so I removed it.</p>
<p>Today while working on the plugin I realized that I missed that overview, but rather then add it into the plugin, I decided to add the recipe counts to the &#8220;Content&#8221; colojmn of the &#8220;Right Now&#8221; widget on the WordPress Dashboard. Since I am using the built in comments feature for the custom post types, the comments on recipes already show in the &#8220;Discussion&#8221; column.</p>
<p>Of course, there was no information in the WordPress Codex, and Google searches yielded no results on how to do this, so I had to dig through core code in hopes of finding either a filter or an action that would help me.  I found the action I needed in the wp-admin/includes/dashboard.php file, starting on line 206:</p>
<ul>
<li>right_now_content_table_end (Line 285): Called after the content column in the right now widget.</li>
<li>right_now_table_end (Line 340): Called after the total number of Spam posts is listed in the &#8220;Discussion&#8221; column.</li>
<li>right_now_discussion_table_end (Line 341): Called right after the &#8220;right_now_table_end&#8221; action.</li>
<li>rightnow_end (Line 382): Called after the current version information is displayed.</li>
<li>activity_box_end (Line 383: Final action for this widget.</li>
</ul>
<p>These are the five actions listed in the function that creates the &#8220;Right Now&#8221; widget on the Dashboard. The line numbers are correct for the currently nightly build as of the date of this post. Though I will focus on the first action listed, I have to wonder if the second two are reversed. I will let the developers over at WordPress contemplate that.</p>
<h3>Action: &#8216;right_now_content_table_end&#8217;</h3>
<p>The action I need to use is the <strong>right_now_content_table_end</strong> since I want to add two rows for my recipes, one for total published recipes, and one for pending recipes, if any, in the content column of this widget. As I said above, this if or my <a href="http://recipepress.net" target="_blank">Recipe Press</a> plugin, so I will show you how I did it for this plugin:</p>
<pre class="brush: php;">
&lt;?php
add_action('right_now_content_table_end', 'add_recipe_counts');

function add_recipe_counts() {
        if (!is_post_type('recipes')) {
             return;
        }

        $num_posts = wp_count_posts( 'recipes' );
        $num = number_format_i18n( $num_posts-&gt;publish );
        $text = _n( 'Recipes', 'Recipes', intval($num_posts-&gt;publish) );
        if ( current_user_can( 'edit_posts' ) ) {
            $num = &quot;&lt;a href='edit.php?post_type=recipes'&gt;$num&lt;/a&gt;&quot;;
            $text = &quot;&lt;a href='edit.php?post_type=recipes'&gt;$text&lt;/a&gt;&quot;;
        }
        echo '&lt;td&gt;' . $num . '&lt;/td&gt;';
        echo '&lt;td&gt;' . $text . '&lt;/td&gt;';

        echo '&lt;/tr&gt;';

        if ($num_posts-&gt;pending &gt; 0) {
            $num = number_format_i18n( $num_posts-&gt;pending );
            $text = _n( 'Recipes Pending', 'Recipes Pending', intval($num_posts-&gt;pending) );
            if ( current_user_can( 'edit_posts' ) ) {
                $num = &quot;&lt;a href='edit.php?post_status=pending&amp;post_type=recipes'&gt;$num&lt;/a&gt;&quot;;
                $text = &quot;&lt;a href='edit.php?post_status=pending&amp;post_type=recipes'&gt;$text&lt;/a&gt;&quot;;
            }
            echo '&lt;td&gt;' . $num . '&lt;/td&gt;';
            echo '&lt;td&gt;' . $text . '&lt;/td&gt;';

            echo '&lt;/tr&gt;';
        }
}
?&gt;
</pre>
<p>I actually copied the code from the wp-admin/includes/dashboard.php file and changed the post type, and added the conditional to display the pending recipes, if any. You can see the results on this <a href="http://wordpress.grandslambert.com/files/2010/06/right-now-widget.png">screen shot</a>. Since my plugin also uses two different custom taxonomies, I could add them as well, but for now I will leave it at this.</p>
<p>It was great to find this action, as well as the others, to allow plugin developers to add additional information to the Right Now Dashboard widget. For the record, there was no information in the WordPress Codex on these actionsm socreated the page for <a href="http://codex.wordpress.org/Plugin_API/Action_Reference/right_now_content_table_end" target="_blank">right_now_content_table_end</a> but will leave the rest to other developers.</p>
]]></content:encoded>
			<wfw:commentRss>http://wordpress.grandslambert.com/2010/06/adding-custom-post-counts-to-dashboard.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Thoughts on Custom Post Types</title>
		<link>http://wordpress.grandslambert.com/2010/06/thoughts-on-custom-post-types.html</link>
		<comments>http://wordpress.grandslambert.com/2010/06/thoughts-on-custom-post-types.html#comments</comments>
		<pubDate>Tue, 01 Jun 2010 17:00:23 +0000</pubDate>
		<dc:creator>GrandSlambert</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[customization]]></category>
		<category><![CDATA[features]]></category>
		<category><![CDATA[post types]]></category>

		<guid isPermaLink="false">http://wordpress.grandslambert.com/?p=526</guid>
		<description><![CDATA[For the past two weeks I have been playing with the new custom post types feature in the upcoming release of WordPress 3.0. I am certain you have read other information about this new feature and in a future post &#8230; <a href="http://wordpress.grandslambert.com/2010/06/thoughts-on-custom-post-types.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>For the past two weeks I have been playing with the new custom post types feature in the upcoming release of WordPress 3.0. I am certain you have read other information about this new feature and in a future post I will share ways in which I am implementing this in a rewrite of <a href="http://recipepress.net" target="_blank">Recipe Press</a> and <a href="http://calendarpress.grandslambert.com" target="_blank">Calendar Press</a>, and you will get to see it in action in a few new plugins I have been working on. For this post I wanted to share my opinions on the simplicity of adding and using these types, and some of the caveats that you will need to be aware of.</p>
<h3>Adding the Post Type</h3>
<p>Creating a new post type in WordPress 3.0 is extremely easy and requires adding on command to your themes functions.php file.</p>
<pre class="brush: php;">&lt;?php register_post_type( $post_type, $args ); ?&gt;</pre>
<p>I will spare you all the details as you can get more information on the usage of this function on the <a href="http://codex.wordpress.org/Function_Reference/register_post_type" target="_blank">Function Reference</a> page at WordPress.org. What I will do is provide you with a usable example, such as for adding a post type to create pages for the officers of a club you belong to:</p>
<pre class="brush: php;">
&lt;?php
add_action('init', 'my_custom_init');
function my_custom_init()
{
  $labels = array(
    'name' =&gt; _x('Officers', 'post type general name'),
    'singular_name' =&gt; _x('Officer', 'post type singular name'),
    'add_new' =&gt; _x('Add New', 'officer'),
    'add_new_item' =&gt; __('Add New Officer'),
    'edit_item' =&gt; __('Edit Officer'),
    'new_item' =&gt; __('New Officer'),
    'view_item' =&gt; __('View Officer'),
    'search_items' =&gt; __('Search Officers'),
    'not_found' =&gt;  __('No books found'),
    'not_found_in_trash' =&gt; __('No officers found in Trash'),
    'parent_item_colon' =&gt; ''
  );
  $args = array(
    'labels' =&gt; $labels,
    'public' =&gt; true,
    'publicly_queryable' =&gt; true,
    'show_ui' =&gt; true,
    'query_var' =&gt; true,
    'rewrite' =&gt; true,
    'capability_type' =&gt; 'post',
    'hierarchical' =&gt; false,
    'menu_position' =&gt; null,
    'supports' =&gt; array('title','editor','author','thumbnail','excerpt','comments')
  );
  register_post_type('officers',$args);
}
?&gt;
</pre>
<p>This will create a new post type that will display in your administration menu to allow you to create posts of type &#8220;officer&#8221;. These posts will work exactly the same way as any other post or page, and will use the same templates unless you create a special template for this post type. This is really quite simple &#8211; just make a copy of the &#8220;single.php&#8221; as &#8220;single-officer.php&#8221; and this post type will begin using that template for any post of this type. You can use all of the same loop functions in the template, and you can make use of the custom fields. Later I will share additional tricks to add custom meta boxes to your post type for use in your template.</p>
<p>One major problem that I see is that in the example above, the slug for pages will be   http://siteurl/officers/page_name. However, pointing your browser at http://siteurl/officers will result in a 404 &#8211; Not Found page, and I have not found a quick and simple solution to actually listing the post types on that page. This could be handled with either a short code or some filters, but it seems this should have been a built in feature that would use some template file to list all of the entries for the given custom post type.</p>
<h3>Closing Thoughts</h3>
<p>It is great that these custom post types can be made searchable and are automatically integrated into the new menu system, which I will discuss later. However, I have not yet found a way to include these custom posts in RSS feeds or to create custom RSS feeds for these post types. It would also be nice if there was an easy way to add these new post types to the &#8220;At A Glance&#8221; section on the dashboard.</p>
<p>I will discuss later how to add custom taxonomies, meta boxes, templates, and more to custom post types. This is a great new feature for WordPress, but I think there are still some additions needed to make it a truly useful enhancement. I will add more insight into how to make the best use of this new feature in the coming weeks, but I can see a lot of great potential for this, and some wonderful new plugins!</p>
]]></content:encoded>
			<wfw:commentRss>http://wordpress.grandslambert.com/2010/06/thoughts-on-custom-post-types.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>See who is doing what on your multi-user blog</title>
		<link>http://wordpress.grandslambert.com/2010/05/audit-user-activity.html</link>
		<comments>http://wordpress.grandslambert.com/2010/05/audit-user-activity.html#comments</comments>
		<pubDate>Tue, 18 May 2010 17:32:23 +0000</pubDate>
		<dc:creator>GrandSlambert</dc:creator>
				<category><![CDATA[Plugins]]></category>

		<guid isPermaLink="false">http://wordpress.grandslambert.com/?p=522</guid>
		<description><![CDATA[I have been working with a few clients recently who have multiple employees or members with access to change items on a blog or web site powered by WordPress. The problem is that WordPress has very limited user logging capabilities &#8230; <a href="http://wordpress.grandslambert.com/2010/05/audit-user-activity.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I have been working with a few clients recently who have multiple employees or members with access to change items on a blog or web site powered by WordPress. The problem is that WordPress has very limited user logging capabilities and when mistakes are made there is no way to know who it was that made the mistake. Having access to this type of information, such as who last changed a page, who worked on themes or plugins, or even who is accessing the site, can help with training new staff. I was getting ready to create such a plugin when I came across the <a href="http://urbangiraffe.com/plugins/audit-trail/" target="_blank">Audit Trail</a> plugin. I read the introduction on the site:</p>
<blockquote><p>Audit Trail is a plugin to keep track of what is going on inside your blog. It does this by recording certain actions (such as who logged in and when) and storing this information in the form of a log. Not only that but it records the full contents of posts (and pages) and allows you to restore a post to a previous version at any time.</p></blockquote>
<p>Sounded like the perfect plugin for this purpose. I installed it on a test web site to see what the logging screen looked like. Of course, it was blank, so I started modifying items to see if I could create some records. Hmm, still blank. On a whim, I clicked on the Options panel for the plugin and found that none of the items that could be monitored were checked, so of course the log would be blank. You have access to monitor:</p>
<ul>
<li>File attachments</li>
<li>Audit Trail actions</li>
<li>Category management</li>
<li>Comment management</li>
<li>Link management</li>
<li>Post and page management</li>
<li>Theme switching</li>
<li>User profiles and logins</li>
<li>User page visits</li>
</ul>
<p>I checked in the plugin information pages and found no information that you had to first configure the plugin to log certain activities. There is some mention of this in the comments on the web page for the plugin and any savvy WordPress user would be able to figure it out. I am pointing it out here to provide some help for those not so savvy users.</p>
<p>So far it seems to be working very well, and allows me to see who is making changes to the site. It is a great start, but the plugin is lacking a couple of features that I need, such as logging activity on the plugins and settings pages. Since most users on my client sites are not admins, they will not have access to these areas so Audit Trail will work for now. However, I will certainly submit these feature requests to the plugin author.</p>
]]></content:encoded>
			<wfw:commentRss>http://wordpress.grandslambert.com/2010/05/audit-user-activity.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress 2.9 Is A Go&#8230;</title>
		<link>http://wordpress.grandslambert.com/2009/12/wordpress-2-9-is-a-go.html</link>
		<comments>http://wordpress.grandslambert.com/2009/12/wordpress-2-9-is-a-go.html#comments</comments>
		<pubDate>Sat, 19 Dec 2009 19:41:53 +0000</pubDate>
		<dc:creator>GrandSlambert</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[imagges]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[upgrades]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://wordpress.grandslambert.com/?p=403</guid>
		<description><![CDATA[Yesterday, version 2.9 was released with little or no fanfare and I wanted to take a few moments to share my experience so far. First, head on over to the Announcement and check out the video, but come back here &#8230; <a href="http://wordpress.grandslambert.com/2009/12/wordpress-2-9-is-a-go.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Yesterday, version 2.9 was released with little or no fanfare and I wanted to take a few moments to share my experience so far. First, head on over to the <a href="http://wordpress.org/development/2009/12/wordpress-2-9/" target="_blank">Announcement</a> and check out the video, but come back here for more details.</p>
<h3>Upgrade Experience</h3>
<p>As many of you know, I manage a lot of WordPress sites, the number is fast approaching 100. I have a half dozen that are not considered any where near mission critical so the become the test bed for upgrades. So far, so good, in fact, with 8 sites already updated to Version 2.9 I have found absolutely no issues with sites breaking or data loss. Just before starting this article I updated this site to Version 2.9 and used some of the new features to complete this post. I still recommend making a backup of your site if you don&#8217;t already have one before upgrading. Then, check out all the new features and enjoy!</p>
<h3>My Favorite Upgrades</h3>
<p>This new version finally takes care of a couple of issues for me, the most annoying has been the work needed to update plugins. I run many web sites, and each of those sites runs from 8 to 35 plugins depending on the needs of the site. Previously, I would need to upgrade each plugin individually. Version 2.9 adds a one stop plugin update script that will save a lot of time. I have already tried this feature on a half dozen blogs and it works great. WordPress was even able to determine if the plugin would work in 2.9 and not update those plugins. And yes, there is still the option to update plugins individually.</p>
<p>The other upgrade is the photo cropping capabilities added to the Media Manager. Now when I take a screen shot I don&#8217;t have to open the file in GIMP or some other graphics program first. I just upload it to the site and use the built in editor to crop and resize the photo. You can see some screen shots below, which were all edited using this new feature.</p>
<h3>Screen Shots of New Features</h3>

<a href='http://wordpress.grandslambert.com/2009/12/wordpress-2-9-is-a-go.html/image-editor-screen' title='Image loaded into the editor.'><img width="150" height="150" src="http://wordpress.grandslambert.com/files/2009/12/image-editor-screen-e1261250128678-150x150.png" class="attachment-thumbnail" alt="Image Editor with screen capture loaded." title="Image loaded into the editor." /></a>
<a href='http://wordpress.grandslambert.com/2009/12/wordpress-2-9-is-a-go.html/image-editor-cropped' title='The Cropped Image'><img width="150" height="150" src="http://wordpress.grandslambert.com/files/2009/12/image-editor-cropped-e1261250147901-150x150.png" class="attachment-thumbnail" alt="The same image cropped to size." title="The Cropped Image" /></a>
<a href='http://wordpress.grandslambert.com/2009/12/wordpress-2-9-is-a-go.html/multipl-plugin-update' title='Screen Shot of Multiple Plugin Update'><img width="150" height="150" src="http://wordpress.grandslambert.com/files/2009/12/multipl-plugin-update-e1261251313960-150x150.png" class="attachment-thumbnail" alt="Multipe Plugin Update Screen" title="Screen Shot of Multiple Plugin Update" /></a>
<a href='http://wordpress.grandslambert.com/2009/12/wordpress-2-9-is-a-go.html/multiple-plugins-updated' title='Multiple Plugins Updated Results'><img width="150" height="150" src="http://wordpress.grandslambert.com/files/2009/12/multiple-plugins-updated-e1261251437621-150x150.png" class="attachment-thumbnail" alt="Plugin Update Results" title="Multiple Plugins Updated Results" /></a>

<p>There is a lot more to the new version, but rather than list them all here, I&#8217;ll just refer you to the <a href="http://wordpress.org/development/2009/12/wordpress-2-9/" target="_blank">Official Announcement</a> on the WordPress.org blog. In my opinion, the upgrade is well worth the two clicks it takes to complete, and so far has not caused me any issues. Thank you WordPress for some wonderful new additions &#8211; keep them coming!</p>
]]></content:encoded>
			<wfw:commentRss>http://wordpress.grandslambert.com/2009/12/wordpress-2-9-is-a-go.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bug Fixes and Enhancements</title>
		<link>http://wordpress.grandslambert.com/2009/11/bug-fixes-and-enhancements.html</link>
		<comments>http://wordpress.grandslambert.com/2009/11/bug-fixes-and-enhancements.html#comments</comments>
		<pubDate>Sat, 21 Nov 2009 15:49:22 +0000</pubDate>
		<dc:creator>GrandSlambert</dc:creator>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Better RSS Widget]]></category>
		<category><![CDATA[Login Configurator]]></category>

		<guid isPermaLink="false">http://wordpress.grandslambert.com/?p=356</guid>
		<description><![CDATA[After a lot time away from development due to an illness, I have started back on updates, improvements, and bug fixes for my plugins. The first was a bug fix in the Login Configurator plugin fixing a problem where the &#8230; <a href="http://wordpress.grandslambert.com/2009/11/bug-fixes-and-enhancements.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>After a lot time away from development due to an illness, I have started back on updates, improvements, and bug fixes for my plugins. The first was a bug fix in the <a href="/plugins/login-configurator.html">Login Configurator</a> plugin fixing a problem where the &#8220;Teaser&#8221; option did not work on a static page. If you have any comments or suggestions for that plugin, please let me know.</p>
<p>The other recent updates was in the <a href="/plugins/better-rss-widget.html">Better RSS Widget</a> plugin. I have added a short code to this plugin to allow you to embed RSS feeds into posts and pages.  I have included a couple samples of embedded RSS (you may need to view the full article) and you can find more information and usage instructions on the <a href="/plugins/better-rss-widget/rss-shortcode.html" class="broken_link">RSS Shortcode</a> page. Future additions to this plugin will include conditionals so that you can place widgets only on specific pages, and perhaps a feed aggregator function to bring multiple feeds into one widget.</p>
<h3>Example of Embedded RSS with Date and Author</h3>
<p><em>better-rss feed=&#8221;http://wordpress.org/development/feed&#8221; items=5 show_date=1 show_author=1</em></p>
<ul><li><a class='rsswidget' href='http://wordpress.org/news/2010/07/wordpress-3-0-1/' title='After nearly 11 million downloads of WordPress 3.0 in just 42 days, we’re releasing WordPress 3.0.1. The requisite haiku: Three dot oh dot one Bug fixes to make you smile Update your WordPress This maintenance release addresses about 50 minor issues. The testing many of you contributed prior to the release of 3.0 helped make [...] [&hellip;]' target="_blank">WordPress 3.0.1</a> <span class="rss-date">July 29, 2010</span> <cite>Andrew Nacin</cite></li><li><a class='rsswidget' href='http://wordpress.org/news/2010/07/eol-for-php4-and-mysql4/' title='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 [...] [&hellip;]' target="_blank">PHP 4 and MySQL 4 End of Life Announcement</a> <span class="rss-date">July 23, 2010</span> <cite>Mark Jaquith</cite></li><li><a class='rsswidget' href='http://wordpress.org/news/2010/07/100-million/' title='WordPress 3.0 Thelonious passed 3 million downloads yesterday, and today the plugin directory followed suit with a milestone of its own: 100 million downloads. The WordPress community’s growth over the years has been tremendous, and we want to reinvest in it. So we’re taking the next two months to concentrate on improving WordPress.org. A major [...] [&hellip;]' target="_blank">100 Million Plugin Downloads and Counting</a> <span class="rss-date">July 2, 2010</span> <cite>Andrew Nacin</cite></li><li><a class='rsswidget' href='http://wordpress.org/news/2010/06/summer-of-wordcamp/' title='It’s been summer for about a week now. Whether you’re on vacation or burning the midnight oil, attending a local/nearby WordCamp is a great way to spend a weekend. Meet other WordPress users, developers, designers &amp; consultants, learn a little something, maybe share a little of your own experience and knowledge, and break bread (or [...] [&hellip;]' target="_blank">Summer of WordCamp</a> <span class="rss-date">June 29, 2010</span> <cite>Jane Wells</cite></li><li><a class='rsswidget' href='http://wordpress.org/news/2010/06/thelonious/' title='Arm your vuvuzelas: WordPress 3.0, the thirteenth major release of WordPress and the culmination of half a year of work by 218 contributors, is now available for download (or upgrade within your dashboard). Major new features in this release include a sexy new default theme called Twenty Ten. Theme developers have new APIs that allow [...] [&hellip;]' target="_blank">WordPress 3.0 &quot;Thelonious&quot;</a> <span class="rss-date">June 17, 2010</span> <cite>Matt Mullenweg</cite></li></ul>
<h3>Same RSS Feed with Summary</h3>
<p><em>better-rss feed=&#8221;http://wordpress.org/development/feed&#8221; items=5 show_date=1 show_author=1 show_summary=1</em></p>
<ul><li><a class='rsswidget' href='http://wordpress.org/news/2010/07/wordpress-3-0-1/' title='After nearly 11 million downloads of WordPress 3.0 in just 42 days, we’re releasing WordPress 3.0.1. The requisite haiku: Three dot oh dot one Bug fixes to make you smile Update your WordPress This maintenance release addresses about 50 minor issues. The testing many of you contributed prior to the release of 3.0 helped make [...] [&hellip;]' target="_blank">WordPress 3.0.1</a> <span class="rss-date">July 29, 2010</span><div class='rssSummary'>After nearly 11 million downloads of WordPress 3.0 in just 42 days, we’re releasing WordPress 3.0.1. The requisite haiku: Three dot oh dot one Bug fixes to make you smile Update your WordPress This maintenance release addresses about 50 minor issues. The testing many of you contributed prior to the release of 3.0 helped make [...] [&hellip;]</div> <cite>Andrew Nacin</cite></li><li><a class='rsswidget' href='http://wordpress.org/news/2010/07/eol-for-php4-and-mysql4/' title='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 [...] [&hellip;]' target="_blank">PHP 4 and MySQL 4 End of Life Announcement</a> <span class="rss-date">July 23, 2010</span><div class='rssSummary'>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 [...] [&hellip;]</div> <cite>Mark Jaquith</cite></li><li><a class='rsswidget' href='http://wordpress.org/news/2010/07/100-million/' title='WordPress 3.0 Thelonious passed 3 million downloads yesterday, and today the plugin directory followed suit with a milestone of its own: 100 million downloads. The WordPress community’s growth over the years has been tremendous, and we want to reinvest in it. So we’re taking the next two months to concentrate on improving WordPress.org. A major [...] [&hellip;]' target="_blank">100 Million Plugin Downloads and Counting</a> <span class="rss-date">July 2, 2010</span><div class='rssSummary'>WordPress 3.0 Thelonious passed 3 million downloads yesterday, and today the plugin directory followed suit with a milestone of its own: 100 million downloads. The WordPress community’s growth over the years has been tremendous, and we want to reinvest in it. So we’re taking the next two months to concentrate on improving WordPress.org. A major [...] [&hellip;]</div> <cite>Andrew Nacin</cite></li><li><a class='rsswidget' href='http://wordpress.org/news/2010/06/summer-of-wordcamp/' title='It’s been summer for about a week now. Whether you’re on vacation or burning the midnight oil, attending a local/nearby WordCamp is a great way to spend a weekend. Meet other WordPress users, developers, designers &amp; consultants, learn a little something, maybe share a little of your own experience and knowledge, and break bread (or [...] [&hellip;]' target="_blank">Summer of WordCamp</a> <span class="rss-date">June 29, 2010</span><div class='rssSummary'>It’s been summer for about a week now. Whether you’re on vacation or burning the midnight oil, attending a local/nearby WordCamp is a great way to spend a weekend. Meet other WordPress users, developers, designers &amp; consultants, learn a little something, maybe share a little of your own experience and knowledge, and break bread (or [...] [&hellip;]</div> <cite>Jane Wells</cite></li><li><a class='rsswidget' href='http://wordpress.org/news/2010/06/thelonious/' title='Arm your vuvuzelas: WordPress 3.0, the thirteenth major release of WordPress and the culmination of half a year of work by 218 contributors, is now available for download (or upgrade within your dashboard). Major new features in this release include a sexy new default theme called Twenty Ten. Theme developers have new APIs that allow [...] [&hellip;]' target="_blank">WordPress 3.0 &quot;Thelonious&quot;</a> <span class="rss-date">June 17, 2010</span><div class='rssSummary'>Arm your vuvuzelas: WordPress 3.0, the thirteenth major release of WordPress and the culmination of half a year of work by 218 contributors, is now available for download (or upgrade within your dashboard). Major new features in this release include a sexy new default theme called Twenty Ten. Theme developers have new APIs that allow [...] [&hellip;]</div> <cite>Matt Mullenweg</cite></li></ul>
<p><em><strong>Note:</strong> The text in italics is the actual shortcode used to create the output. The plugin does not display this, it is simply included on this page so you can view the examples.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://wordpress.grandslambert.com/2009/11/bug-fixes-and-enhancements.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sorry About the Absence</title>
		<link>http://wordpress.grandslambert.com/2009/11/sorry-about-the-absence.html</link>
		<comments>http://wordpress.grandslambert.com/2009/11/sorry-about-the-absence.html#comments</comments>
		<pubDate>Fri, 20 Nov 2009 23:35:59 +0000</pubDate>
		<dc:creator>GrandSlambert</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Plugins]]></category>

		<guid isPermaLink="false">http://wordpress.grandslambert.com/?p=346</guid>
		<description><![CDATA[I want to take a moment today to apologize to all the users of my plugins and those awaiting response via email and in the Support Forums. Earlier this month I was stricken with the swine flu and have not &#8230; <a href="http://wordpress.grandslambert.com/2009/11/sorry-about-the-absence.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I want to take a moment today to apologize to all the users of my plugins and those awaiting response via email and in the Support Forums. Earlier this month I was stricken with the swine flu and have not been able to tend to my work for some time. Last week I thought things were getting better only to become extremely ill again this past week. Today I am again feeling better and will try to get to some of the tasks at hand, and possibly some plugin fixes and upgrades. No promises though&#8230;</p>
<p>Hopefully within the next week or so I can get back to my regular schedule and get many of the little nagging problems fixed in the <a href="http://recipepress.net">Recipe Share</a> plugin, and just a few moments ago I did in fact fix a bug with static pages in the <a href="/plugins/login-configurator.html">Login Configurator</a> plugin. I also have a couple new plugins that I started on before I get sick that will be added as time permits. Thank you for your patience, and I hope to be back at it hard within the next couple of days.</p>
]]></content:encoded>
			<wfw:commentRss>http://wordpress.grandslambert.com/2009/11/sorry-about-the-absence.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>New Support Groups Added</title>
		<link>http://wordpress.grandslambert.com/2009/10/new-support-group-added.html</link>
		<comments>http://wordpress.grandslambert.com/2009/10/new-support-group-added.html#comments</comments>
		<pubDate>Fri, 30 Oct 2009 19:26:18 +0000</pubDate>
		<dc:creator>GrandSlambert</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Groups]]></category>
		<category><![CDATA[Support]]></category>

		<guid isPermaLink="false">http://wordpress.grandslambert.com/?p=340</guid>
		<description><![CDATA[In addition to the Support Forums available here, I have decided to include a support group over at Google and at Facebook for users to ask questions and get help with my plugins. This is just another way for my &#8230; <a href="http://wordpress.grandslambert.com/2009/10/new-support-group-added.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In addition to the <a title="Support Forums" href="http://support.grandslambert.com/" target="_blank">Support Forums</a> available here, I have decided to include a support group over at <a href="http://groups.google.com/group/GrandSlambert" target="_blank">Google</a> and at <a href="http://www.facebook.com/group.php?gid=161820369569" target="_self">Facebook</a> for users to ask questions and get help with my plugins. This is just another way for my valued users to get the best possible use out of the plugins I am creating.</p>
<ol>
<li>To join the Google Group, visit <a href="http://groups.google.com/group/GrandSlambert" target="_blank">http://groups.google.com/group/GrandSlambert</a> and register for immediate access.</li>
<li>To join the Facebook Group, visit <a href="http://www.facebook.com/group.php?gid=161820369569" target="_blank">http://www.facebook.com/group.php?gid=161820369569</a> and join.</li>
</ol>
<p>I will use these groups to announce new plugins, updates, and provide other information about the plugins and eventually themes I am working on.</p>
]]></content:encoded>
			<wfw:commentRss>http://wordpress.grandslambert.com/2009/10/new-support-group-added.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Finally Some Action &#8211; Work Commences on a New Plugin</title>
		<link>http://wordpress.grandslambert.com/2009/10/finally-some-action.html</link>
		<comments>http://wordpress.grandslambert.com/2009/10/finally-some-action.html#comments</comments>
		<pubDate>Fri, 09 Oct 2009 02:15:39 +0000</pubDate>
		<dc:creator>GrandSlambert</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Recipe Press]]></category>

		<guid isPermaLink="false">http://wordpress.grandslambert.com/?p=208</guid>
		<description><![CDATA[I know it has been very quite around here lately, and that is due to relocating from Kansas City, MO to Holmen, WI and trying to find full time employment. Needless to say that has not gone very well, and &#8230; <a href="http://wordpress.grandslambert.com/2009/10/finally-some-action.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I know it has been very quite around here lately, and that is due to relocating from Kansas City, MO to Holmen, WI and trying to find full time employment. Needless to say that has not gone very well, and I have returned to free lance web development. Today a client asked me for a plugin to share recipes on her web site, and alas there was nothing out there that was even close to what she wanted. So, introducing&#8230;</p>
<h3>Recipe Share</h3>
<p>A WordPress plugin that will allow you to share recipes on a WordPress site. After searching for hours and asking around I was unable to find any plugin that had the following features: categories, tagging, comments, searching, pictures, ratings and sidebar widgets.</p>
<p>I just started developing this and have made quite a bit of progress. I am on a truncated timeline and will be beta testing before the weekend. I am looking for a few people who can test this new plugin for me. Use the form below to request to be a beta tester.</p>
<p><!--cforms name="Beta Testing - Recipe Share"--></p>
]]></content:encoded>
			<wfw:commentRss>http://wordpress.grandslambert.com/2009/10/finally-some-action.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Can I have .html extensions on my WordPress Site?</title>
		<link>http://wordpress.grandslambert.com/2009/07/html-extensions-in-wordpress.html</link>
		<comments>http://wordpress.grandslambert.com/2009/07/html-extensions-in-wordpress.html#comments</comments>
		<pubDate>Mon, 20 Jul 2009 15:00:00 +0000</pubDate>
		<dc:creator>GrandSlambert</dc:creator>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Pages]]></category>
		<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://wordpress.grandslambert.com/?p=168</guid>
		<description><![CDATA[One of the biggest hesitations I have found for customers not wanting to switch their static web sites to WordPress is the change in page URLs. Most static web sites have the .html extension on every page, and those pages &#8230; <a href="http://wordpress.grandslambert.com/2009/07/html-extensions-in-wordpress.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>One of the biggest hesitations I have found for customers not wanting to switch their static web sites to WordPress is the change in page URLs. Most static web sites have the .html extension on every page, and those pages are already listed in Google. If a site were switched and all the URLs for the pages changed it could cause some problems with search engine results and broken links. WordPress allows you to add extensions to your blog posts by editing the permalink structure, but this does not affect any static pages in the system. To combat this problem, a plugin is needed.</p>
<p>In the past I have used the plugin named <a href="http://wordpress.org/extend/plugins/html-on-pages/" target="_blank">.html on Pages</a> plugin, but found this to be a little bit limiting as it only allows .html extension. When a client came to me with a site that had all its pages ending with .htm, I began my search for a new plugin, but was unable to find one. The .html on Pages plugin has not been updated for a while, and I did not have time to wait for the author to create a new version.</p>
<p>This resulted in a new plugin called <a href="/plugins/custom-page-extensions.html">Custom Page Extensions</a> released today. This allows me to set any extension I want for the static pages so I can match what the previous site had. Now a site can be easily migrated to WordPress without the problem of losing links that area already indexed in popular search engines. Get this new plugin now by visiting the <a href="/plugins/custom-page-extensions.html">official page</a> here on WordPress @ GrandSlambert</p>
]]></content:encoded>
			<wfw:commentRss>http://wordpress.grandslambert.com/2009/07/html-extensions-in-wordpress.html/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>How can I display a featured post on my home page?</title>
		<link>http://wordpress.grandslambert.com/2009/07/featured-posts.html</link>
		<comments>http://wordpress.grandslambert.com/2009/07/featured-posts.html#comments</comments>
		<pubDate>Mon, 06 Jul 2009 17:37:03 +0000</pubDate>
		<dc:creator>GrandSlambert</dc:creator>
				<category><![CDATA[Home Page]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Templates]]></category>
		<category><![CDATA[the loop]]></category>
		<category><![CDATA[Themes]]></category>
		<category><![CDATA[the_content]]></category>
		<category><![CDATA[the_excerpt]]></category>

		<guid isPermaLink="false">http://wordpress.grandslambert.com/?p=110</guid>
		<description><![CDATA[Update August 20th, 2010: Though the steps listed on this page will still work, I have created a plugin that makes this so much easier and gives you a lot more control over the formatting. This site now uses the &#8230; <a href="http://wordpress.grandslambert.com/2009/07/featured-posts.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>Update August 20th, 2010:</strong> Though the steps listed on this page will still work, I have created a plugin that makes this so much easier and gives you a lot more control over the formatting. This site now uses the <a href="http://plugins.grandslambert.com/plugins/post-theming.html" target="_blank">Post Theming</a> plugin to provide the layout you see on the <a href="http://wordpress.grandslambert.com">home page</a>.</p>
<p><strong>Original Content</strong></p>
<p>While reading this site you may notice that I have a full text featured post at the top of the home page with additional posts with excerpts below it. This allows me to provide information about multiple posts but keep my home page short and sweet. For this trick we will be creating or editing the <code>home.php</code> template file as well as the <code>style.css</code> style sheet.</p>
<h3>The Home Page Template</h3>
<p>This trick uses the home page template so that our changes only affect the home page of the site. If your theme does not already have this file, I suggest you copy the <code>index.php</code> template file and name it <code>home.php</code>. There are only a couple of changes you need to make in this template file for this to work. I want to continue to take advantage of the settings on the Reading Settings page to control how many posts appear on the home page, so I will not be using the <code>query_posts()</code> option that could be used here. Instead, I will initiate a counter and use that to decide how to display posts.</p>
<p>The first thing we need is to create a counter before the Loop but after the header. I have found that starting it before the header caused a problem on paged pages, so I moved it after the header. For this, I used the variable name <code>$displayed</code> that I will increment in the Loop. So, after the code to include the header but before the Loop, add the following code:</p>
<pre class="brush: php;">
&lt;?php
if ($paged == 1)
$displayed = 1;
else
$displayed = 2;
?&gt;
</pre>
<p>This will start our counter. You may wonder why we check for <code>$paged == 1</code> in the code and set the variable differently. I wanted only the very first page of blog posts to have the featured post, and any additional pages to have only excerpts. This trick works for that purpose.</p>
<p><span id="more-110"></span></p>
<h3>Full Text or Excerpt</h3>
<p>Now that we have our counter started, we need to use it inside the Loop. You will be looking for the template tag <a href="http://codex.wordpress.org/Template_Tags/the_content" target="_blank">the_content()</a> which is what currently displays the content. In my theme the line appeared as</p>
<pre class="brush: php;">
&lt;?php the_content(__('Read the rest of this entry &amp;amp;raquo;', 'kubrick')); ?&gt;
</pre>
<p>which would use the &lt;!&#8211;more&#8211;&gt; page feature if used in posts. Regardless of how the tags look, we need to add a conditional to this by replacing the line with <code>the_content()</code> tag with:</p>
<pre class="brush: php;">
&lt;?php
if ($displayed &gt; 1) {
the_excerpt();
?&gt;
&lt;p&gt;&lt;a href=&quot;&lt;?php the_permalink() ?&gt;&quot; rel=&quot;bookmark&quot; title=&quot;&lt;?php printf(__('Permanent Link to %s', 'kubrick'), the_title_attribute('echo=0')); ?&gt;&quot;&gt;Read the full article &amp;amp;raquo;&lt;/a&gt;&lt;/p&gt;
&lt;?php
} else the_content(__('Read the rest of this entry &amp;amp;raquo;', 'kubrick'));
?&gt;
</pre>
<p>I will explain the code line by line:</p>
<ol>
<li>Start the PHP code.</li>
<li>A conditional statement to see if the variable <code>$displayed</code> is greater than 1 and if so execute lines 3 through 6. If you want more than one featured article, simply change the 1 in this line to the number of featured articles you wish to have on your page.</li>
<li>Use the built in <code>the_except()</code> template tag to display the excerpt for the post.</li>
<li>Drop out of PHP to display a line of HTML</li>
<li>Use some built in template tags to to create a read more link to the articles permalink.</li>
<li>Go back into PHP code.</li>
<li>If <code>$displayed</code> is not greater than 1, display the full content.</li>
<li>Close the PHP code</li>
</ol>
<p>There are some plugins that will allow you to use advanced excerpts and such, but I chose to stick with built in functions for this project.</p>
<p>Now we need to add a line of code just before the end of the loop to increment our counter.</p>
<pre class="brush: php;">
&lt;?php endwhile; ?&gt;

Replace with:

&lt;?php
++$displayed;
endwhile;
?&gt;
</pre>
<p>Locate the code in line 1 in you template file and replace it with the code in lines 5 through 8. This will increment the <code>$displayed</code> variable by one with each iteration of the Loop. Save these changes and upload the file to your theme folder. Your home page should now show one full text article and the remaining articles will display an excerpt.</p>
<p>You could stop at this and be very happy with your home page. I wanted to have the excerpted posts displayed in two columns under the featured posts and on any additional posts. You can accomplish this by following the next steps.</p>
<h3><!--more-->Styling the Excerpted Posts</h3>
<p>On this blog, you will notice that the full text post is full width, while the rest are stacked neatly in two columns below that post. I have created a really simple trick to doing this with only one change to the template file:</p>
<pre class="brush: php;">
&lt;div class=&quot;Post&quot;&gt;

Changes to:

&lt;div class=&quot;Post  &lt;? if ($displayed &gt; 1) echo 'PostNarrow'; ?&gt;&quot;&gt;
</pre>
<p>This will add an extra style sheet class to the post block which we will need to set the width of the excerpted blocks. To complete the styling, you will need to add a <code>.PostNarrow</code> class to your <code>style.css</code> file setting the width and floating the blox:</p>
<pre class="brush: css;">
.PostNarrow {
float: left;
width: 373px;
}
</pre>
<p>The <code>float: left;</code> setting will allow posts to float into columns and the <code>width: 373px</code> sets the width of each box. The width you set for this class will depend on the width of your content and the number of columns you choose to display. Remember to consider any margins around the boxes when you calculate the width.</p>
<p>One final thing you will need to add is a way to clear the float after each row. If you do not do this, your display could be mangled if one box is taller then another in the row. First, you will need to create a css style for clearing the float. Some themes may already have this, if not, I suggest this style:</p>
<pre class="brush: css;">
.cleared {
float: none;
clear: both;
margin: 0;
padding: 0;
border: none;
font-size:1px;
}
</pre>
<p>You will also need to add code to add code to clear the float. For this we will be looking at the <code>home.php</code> template file again and adding more lines where we increment the counter.</p>
<pre class="brush: php;">
&lt;?php
++$displayed;
if ($displayed / 2 == floor($displayed / 2) ) echo '&lt;div class=&quot;cleared&quot;&gt;&lt;/div&gt;';
endwhile;
?&gt;
</pre>
<p>This code assumes that you will be displaying 2 columns. If you wish to have three or more columns, replace both instances of 2 with the number of columns you wish to have.</p>
<h3>Conclusion</h3>
<p>It is ironic to think that it took me a lot less time to make this work on my site then it did to write this blog post. In fact, even with creating the two column look I spent only 15 minutes making this change, while the blog post has taken nearly two hours. Good luck, and feel free to ask any questions by commenting on this post.</p>
]]></content:encoded>
			<wfw:commentRss>http://wordpress.grandslambert.com/2009/07/featured-posts.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Can I use WordPress for my web site even if it isn&#8217;t a blog?</title>
		<link>http://wordpress.grandslambert.com/2009/07/wordpress-for-static-site.html</link>
		<comments>http://wordpress.grandslambert.com/2009/07/wordpress-for-static-site.html#comments</comments>
		<pubDate>Mon, 06 Jul 2009 05:01:01 +0000</pubDate>
		<dc:creator>GrandSlambert</dc:creator>
				<category><![CDATA[Home Page]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Web Sites]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://grandslambert.com/?p=22</guid>
		<description><![CDATA[When you work in web development for over 20 years like I have, everyone you know asks you questions about their web site. Recently I have had quite a few people ask me if they can use WordPress to build &#8230; <a href="http://wordpress.grandslambert.com/2009/07/wordpress-for-static-site.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify">When you work in web development for over 20 years like I have, everyone you know asks you questions about their web site. Recently I have had quite a few people ask me if they can use WordPress to build a web site for their business, even if they do not want to have a blog. Although the WordPress software is primarily used to build blogs, it has a wonderful feature that make it perfect for static type web sites as well.</p>
<p style="text-align: justify">The feature we will be working with is available after you have created at least one page in your WordPress site. WordPress has the ability to create both posts and pages, and you will create a page by clicking on the &#8220;Add New&#8221; link under the &#8220;Pages&#8221; sub menu. By default, WordPress creates a generic &#8220;about&#8221; page so you will likely already have one created, however, for this to work you need to create a page that will contain the content of your home page. It&#8217;s probably best to call this page &#8220;Home&#8221;, but you may prefer to name it differently. You can put some basic content there for now and change it after things are set up, but make sure you publish this page so it can be displayed.</p>
<p style="text-align: justify"><a href="http://press.grandslambert.com/files/2009/06/wordpress-static-page.png"><img class="alignright size-thumbnail wp-image-51" title="Wordpress Static Page" src="http://wordpress.grandslambert.com/wp-content/uploads/2009/06/wordpress-static-page-150x150.png" alt="" width="150" height="150" /></a>Now that you have the page created, you will need to tell WordPress to use this new page for your &#8220;home&#8221; page. This is done on the Reading Settings page. You can access this page within your site administration area by opening the Settings sub-menu and click the &#8220;Reading&#8221; option. A page similar to the screen capture to the right (click to enlarge) will appear. The option you will change is the &#8220;Front Page Displays&#8221; option. First, click the &#8220;A static page (select below)&#8221; option, then use the drop down next to &#8220;Front Page&#8221; to select the page you want to be your home page. Save this setting and your site will now display the selected page for your home page.</p>
<p style="text-align: justify">Now I know you are going to ask me about the other option on that screen. If you have no intention of writing a blog, just don&#8217;t select anything there, it can be left as is. However, if you plan to have a static home page but also a blog page, you can use this option to select which page will show your blog posts. You will need to have created a page in WordPress for this purpose. You do not have to write any content on the page you create since WordPress will replace it with your blog posts. Create an empty page with whatever name, probably &#8220;Blog&#8221;, and publish it, then return to the Reading Settings page and select that page for the blog posts.</p>
<p style="text-align: justify">As you can see, though WordPress wasn&#8217;t specifically designed for it, a person could use WordPress for a static type web site. In fact, I have done it several times. Here are some examples:</p>
<ul>
<li><a href="http://www.wholefoodnation.com/cmd.php?Clk=2390876" target="_blank">Whole Food Nation</a></li>
<li><a href="http://77ingredients.com/" target="_blank">77 Ingredients</a></li>
<li><a href="http://interestblogs.com" target="_blank">Interest Blogs</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://wordpress.grandslambert.com/2009/07/wordpress-for-static-site.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Installing themes is easier in WordPress 2.8</title>
		<link>http://wordpress.grandslambert.com/2009/07/themes-in-wordpress-28.html</link>
		<comments>http://wordpress.grandslambert.com/2009/07/themes-in-wordpress-28.html#comments</comments>
		<pubDate>Sat, 04 Jul 2009 20:30:44 +0000</pubDate>
		<dc:creator>GrandSlambert</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Themes]]></category>
		<category><![CDATA[Customize]]></category>
		<category><![CDATA[Web Sites]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://grandslambert.com/?p=36</guid>
		<description><![CDATA[It&#8217;s been a long time coming, but recently we saw the release of the latest version of WordPress, and so far I am impressed. This particular site is now using this latest version and aside form a couple of bugs &#8230; <a href="http://wordpress.grandslambert.com/2009/07/themes-in-wordpress-28.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a long time coming, but recently we saw the release of the latest version of WordPress, and so far I am impressed. This particular site is now using this latest version and aside form a couple of bugs I found it seems to work well. Hopefully the bugs can be worked out and a maintenance release will be available, but I want to focus on the new features with this post.</p>
<h3>Theme Installer</h3>
<p>For quite a while now WordPress has had a wonderful tool for finding and installing plugins in WordPress, but themes was a different story. Though the <a href="http://wordpress.org" target="_blank">WordPress.org</a> web site listed hundreds of great themes, the only way to get them to work for your site was to download a zip file then upload the files to your web server. If you didn&#8217;t know how to use FTP or open a zip file, you could really be lost with this. I have seen quite a few sites running WordPress that are using the classic them included with the WordPress software.</p>
<p><a href="http://press.grandslambert.com/files/2009/12/wordpress-install-themes.png"><img class="alignright size-thumbnail wp-image-397" title="wordpress-install-themes" src="http://wordpress.grandslambert.com/wp-content/uploads/2009/07/wordpress-install-themes-150x150.png" alt="" width="150" height="150" /></a>This changes with WordPress 2.8 with the addition of the &#8220;Add New Themes&#8221; tool that is built into the software. When you click on the option, you get a screen similar to the one on the right (click to enlarge) where you can search for themes with specific keywords, or select from a variety of options (tags) to find a theme. With the hundreds of themes already available you are certain to find one you can use.</p>
<p><a href="http://press.grandslambert.com/files/2009/12/wordpress-install-themes-results.png"><img class="alignleft size-thumbnail wp-image-398" title="wordpress-install-themes-results" src="http://wordpress.grandslambert.com/wp-content/uploads/2009/07/wordpress-install-themes-results-150x150.png" alt="" width="150" height="150" /></a>When you search for a keyword, or by tag, or use either the &#8220;Featured&#8221; or &#8220;Newest&#8221; options on the &#8220;Add New Themes&#8221; page you will be presented with a list of themes to choose from. You can preview the themes before you install them, but be warned that the preview will have the sample data similar to what you see on the <a href="http://wordpress.org" target="_blank">WordPress.org</a> web site. To see how it will look with your data, you will need to install the theme first. Don&#8217;t worry, just installing won&#8217;t change your site, you still need to activate it.</p>
<p>Once you find one you want to try, click on the install link to install the theme. The <a title="Sample install theme popup window." href="http://press.grandslambert.com/files/2009/12/wordpress-theme-install-popup.png">pop up window</a> that shows up is a bit confusing at first as you have to scroll the window down to find the button to install the theme. Once you do this the system will download and install the theme for you, then you can preview it with your content or activate the theme on your site. If you don&#8217;t like the look of the theme once it&#8217;s installed, you can easily delete the theme from the Appearance page.</p>
<p>This feature will really make it easier for people to apply different themes to their site. The fine people at WordPress even included a link to upload themes on this new section so that theme developers can easily share their themes from inside their own site.</p>
<p>There are quite a few other great new features that I want to talk about, but we&#8217;ll wait for tomorrow to post those. Let me get a chance to check them out before I tell you all about them. If you want more information on all the wonderful new features of WordPress 2.8, you can check the <a title="Official announcement of the release of WordPress 2.8" href="http://wordpress.org/development/2009/06/wordpress-28/" target="_blank">official announcement</a> or the <a title="Wordpress Codex page for the release of version 2.8" href="http://codex.wordpress.org/Version_2.8" target="_blank">codex page</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://wordpress.grandslambert.com/2009/07/themes-in-wordpress-28.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Fixing the 404 Not Found Page</title>
		<link>http://wordpress.grandslambert.com/2009/07/not-found-page.html</link>
		<comments>http://wordpress.grandslambert.com/2009/07/not-found-page.html#comments</comments>
		<pubDate>Fri, 03 Jul 2009 17:29:41 +0000</pubDate>
		<dc:creator>GrandSlambert</dc:creator>
				<category><![CDATA[404 Page]]></category>
		<category><![CDATA[Template Files]]></category>
		<category><![CDATA[Themes]]></category>
		<category><![CDATA[Error Pages]]></category>
		<category><![CDATA[Templates]]></category>

		<guid isPermaLink="false">http://wordpress.grandslambert.com/?p=34</guid>
		<description><![CDATA[It is great to see that WordPress handles 404 Not Found errors gracefully and displays your web site rather then just a blank page. However, the default page supplied with most themes does not provide much help to your visitor. &#8230; <a href="http://wordpress.grandslambert.com/2009/07/not-found-page.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_36" class="wp-caption alignright" style="width: 220px"><a href="http://press.grandslambert.com/files/2009/07/notfound-capture.jpg"><img class="size-medium wp-image-36" title="notfound-capture" src="http://wordpress.grandslambert.com/wp-content/uploads/2009/07/notfound-capture-300x167.jpg" alt="notfound-capture" width="210" height="117" /></a><p class="wp-caption-text">The default 404 Not Found Page</p></div>
<p>It is great to see that WordPress handles 404 Not Found errors gracefully and displays your web site rather then just a blank page. However, the default page supplied with most themes does not provide much help to your visitor. Click the image to the right to view a sample of the default 404 Not Found page. With a little manipulation, we can make that page a lot more useful.</p>
<p>The 404 Page Not Found pages for your site are generated by the file <tt>404.php</tt> template file in your theme. If your theme does not have one of these template files, you should copy one from the &#8220;default&#8221; folder in your <tt>wp-content/themes</tt> folder into your theme folder. Open this file in a text editor to make changes or in the Theme Editor area built into the Appearance menu of WordPress.</p>
<h3>Page Title</h3>
<p>The first change I make is in the header of the page area, where it says &#8220;Not Found&#8221;. I like to have something a bit more personal in that area. For this site I have changed it to &#8220;Content Not Found&#8221;. To change the page title, you need to locate the code <tt>&lt;?php _e('Not Found', 'kubrick'); ?&gt;</tt> in the file and change the text &#8220;Not Found&#8221; to what you want it to say. This is a pretty simple fix.</p>
<h3>Page Content</h3>
<p>The default error page has the text &#8220;Error 404 &#8211; Not Found&#8221;, which is too cryptic for most normal web users. I suggest changing this to something more descriptive, perhaps providing instructions on how to fix the problem or at least a link to your home page. To change this text, find the code <tt>&lt;?php _e('Error 404 - Not Found', 'kubrick'); ?&gt;</tt> and replace the text with your message. You can remove the PHP function if you wish, but leaving this in will allow others to create a language file in their language for your theme. The default page wraps this text in an <tt>&lt;h2&gt;</tt> tag so if you are creating a longer message, you may want to remove this tag.</p>
<div id="attachment_35" class="wp-caption alignleft" style="width: 220px"><a href="http://press.grandslambert.com/files/2009/07/notfound-better.jpg"><img class="size-medium wp-image-35" title="notfound-better" src="http://wordpress.grandslambert.com/wp-content/uploads/2009/07/notfound-better-300x167.jpg" alt="A Better Not Found Page" width="210" height="117" /></a><p class="wp-caption-text">A Better Not Found Page</p></div>
<p>You can stop at changing the page title and the message displayed, which would be a great improvement over the default page. However, the page still is not very useful to your visitors. I like to give them somewhere to go without having to first click on the home page link. For this I list the pages on the site using the <tt><a href="http://codex.wordpress.org/wp_list_pages" target="_blank">wp_list_pages()</a></tt> method in WordPress. To achieve this I add the following code after the message:</p>
<p><tt>&lt;?php wp_list_pages('title_li=&lt;h2&gt;Pages&lt;/h2&gt;&amp;show_date=1'); ?&gt;</tt></p>
<p>Now my 404 Not Found page is much more helpful to my visitors. A person could do even more on this page including listing a tag cloud, recent posts or displaying a random post. I will cover these in later articles.</p>
]]></content:encoded>
			<wfw:commentRss>http://wordpress.grandslambert.com/2009/07/not-found-page.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>What is the difference between a theme and a template?</title>
		<link>http://wordpress.grandslambert.com/2009/07/theme-vs-template.html</link>
		<comments>http://wordpress.grandslambert.com/2009/07/theme-vs-template.html#comments</comments>
		<pubDate>Thu, 02 Jul 2009 16:36:28 +0000</pubDate>
		<dc:creator>GrandSlambert</dc:creator>
				<category><![CDATA[Template Files]]></category>
		<category><![CDATA[Themes]]></category>
		<category><![CDATA[Customize]]></category>
		<category><![CDATA[Templates]]></category>

		<guid isPermaLink="false">http://wordpress.grandslambert.com/?p=27</guid>
		<description><![CDATA[Some people may confuse a theme with a template, and in many cases they are the same thing. However, in WordPress, there is a specific distinction between the two that users should understand. Though you do not necessarily need to &#8230; <a href="http://wordpress.grandslambert.com/2009/07/theme-vs-template.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Some people may confuse a theme with a template, and in many cases they are the same thing. However, in WordPress, there is a specific distinction between the two that users should understand. Though you do not necessarily need to understand the difference, when you start working on your theme files it will help to know.</p>
<h3>Template Files</h3>
<p>The template files in WordPress are used to display the content of your site. There are many template files used for the different areas in your web site. By manipulating these template files you can create a custom look for your site. The template files recognized by WordPress are:</p>
<ul>
<li><tt>style.css -</tt> (Required) The main stylesheet. This must be included with your Theme, and it must contain the information header for your Theme.</li>
<li><tt>index.php - </tt>(Required) The main template. If your Theme provides its own templates, <tt>index.php</tt> must be present.</li>
<li><tt>comments.php -</tt> The comments template. If not present, <tt>comments.php</tt> from the &#8220;default&#8221; Theme is used.</li>
<li><tt>comments-popup.php - </tt>The popup comments template. If not present, <tt>comments-popup.php</tt> from the &#8220;default&#8221; Theme is used.</li>
<li><tt>home.php - </tt>The home page template.</li>
<li><tt>single.php -</tt> The single post template. Used when a single post is queried. For this and all other query templates, <tt>index.php</tt> is used if the query template is not present.</li>
<li><tt>page.php -</tt> The page template. Used when an individual <a title="Pages" href="http://codex.wordpress.org/Pages" target="_blank">Page</a> is queried.</li>
<li><tt>category.php - </tt>The <a title="Category Templates" href="http://codex.wordpress.org/Category_Templates" target="_blank">category template</a>. Used when a category is queried.</li>
<li><tt>author.php - </tt>The <a title="Author Templates" href="http://codex.wordpress.org/Author_Templates" target="_blank">author template</a>. Used when an author is queried.</li>
<li><tt>date.php - </tt>The date/time template. Used when a date or time is queried. Year, month, day, hour, minute, second.</li>
<li><tt>archive.php - </tt>The archive template. Used when a category, author, or date is queried. Note that this template will be overridden by <tt>category.php</tt>, <tt>author.php</tt>, and <tt>date.php</tt> for their respective query types.</li>
<li><tt>search.php - </tt>The search results template. Used when a search is performed.</li>
<li><tt>404.php - </tt>The <a title="Creating an Error 404 Page" href="http://codex.wordpress.org/Creating_an_Error_404_Page" target="_blank">404 Not Found</a> template. Used when WordPress cannot find a post or page that matches the query. This template could be modified to include a table of contents or list of posts for your site.</li>
</ul>
<h3>Theme</h3>
<p>The theme for your WordPress site is the collection of template files, images and style sheets that create the entire site. At the very minimum, a theme file will include the template files index.php and style.css. If the theme you are using is missing any template files, WordPress will use the built in files using the <a href="http://codex.wordpress.org/Template_Hierarchy" target="_blank">Template Hierarchy</a>. It is this hierarchy that makes developing themes for wordpress quick and easy as you do not need to create or modify every template file.</p>
<p>Once you know and understand how the template files and the theme work you can begin to modify an existing theme or build a new theme. In the next few weeks and months I will share with your some fun tricks to making your WordPress web site unlike any other.</p>
]]></content:encoded>
			<wfw:commentRss>http://wordpress.grandslambert.com/2009/07/theme-vs-template.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Welcome to WordPress @ GrandSlambert</title>
		<link>http://wordpress.grandslambert.com/2009/07/welcome.html</link>
		<comments>http://wordpress.grandslambert.com/2009/07/welcome.html#comments</comments>
		<pubDate>Wed, 01 Jul 2009 15:52:28 +0000</pubDate>
		<dc:creator>GrandSlambert</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Sites]]></category>
		<category><![CDATA[Templates]]></category>
		<category><![CDATA[Themes]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://wordpress.grandslambert.com/?p=23</guid>
		<description><![CDATA[Hello, and welcome to my new web site, WordPress @ GrandSlambert. With this web site I am planning to provide tips and tricks to help you use the WordPress platform to build both simple and dynamic web sites. I will &#8230; <a href="http://wordpress.grandslambert.com/2009/07/welcome.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_3" class="wp-caption alignright" style="width: 190px"><a href="http://press.grandslambert.com/files/2009/07/Shane-Cartoon.jpg"><img class="size-medium wp-image-3" title="Shane-Cartoon" src="http://wordpress.grandslambert.com/wp-content/uploads/2009/07/Shane-Cartoon-300x225.jpg" alt="Meet the Author" width="180" height="135" /></a><p class="wp-caption-text">Meet the Author</p></div>
<p>Hello, and welcome to my new web site, WordPress @ GrandSlambert. With this web site I am planning to provide tips and tricks to help you use the WordPress platform to build both simple and dynamic web sites. I will cover buliding themes, customizing page templates, and some helpful plugins you can use to optimize your use of the software. In my full time job I build WordPress web sites under the <a href="http://150dollarsites.com" target="_blank" class="broken_link">$150 Sites</a> banner, and in my free time I create wordpress themes and plugins for use on my personal web sites.</p>
<p>I am also active on the <a href="http://wordpress.org/support/" target="_blank">WordPress Support Forums</a> providing whatever help I can to those frustrated with understanding how WordPress works. It is my hope that through my involvment on the forums and this web site that I can help you use WordPress to build just about any web site you can imagine.</p>
]]></content:encoded>
			<wfw:commentRss>http://wordpress.grandslambert.com/2009/07/welcome.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	<div class="post-theming-cleared"> </div></channel>
</rss>
