<?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>Ben Huson &#187; WordPress</title>
	<atom:link href="http://www.benhuson.co.uk/category/web_developer/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.benhuson.co.uk</link>
	<description>Web Designer and Developer</description>
	<lastBuildDate>Fri, 03 Feb 2012 15:27:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>WordPress Media Uploader &#8211; Another HTTP Error Solution</title>
		<link>http://www.benhuson.co.uk/2011/12/16/wordpress-media-uploader-another-http-error-solution/</link>
		<comments>http://www.benhuson.co.uk/2011/12/16/wordpress-media-uploader-another-http-error-solution/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 20:03:12 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.benhuson.co.uk/?p=2244</guid>
		<description><![CDATA[Tweet There are countless posts in the WordPress.org forums about errors that occur when using the media uploader. Otto does a pretty good job of outlining the main issues and solution in this post. In my experience these errors usually occur because of your server setup or memory issues. To help you diagnose where your [...]]]></description>
			<content:encoded><![CDATA[
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: left"><a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Ftwitter.com%2Fshare&sref=rss" class="twitter-share-button" data-url="http://www.benhuson.co.uk/2011/12/16/wordpress-media-uploader-another-http-error-solution/" data-count="horizontal" data-via="benhuson">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

 
<span class = "facebook-like" style = "height: 25px;  "><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.benhuson.co.uk/2011/12/16/wordpress-media-uploader-another-http-error-solution/&layout=button_count&send=false&show_faces=false&width=&action=like&colorscheme=light&font=lucida grande" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:px; height:25px"></iframe></span><p>There are countless posts in the WordPress.org forums about errors that occur when using the media uploader.</p>
<p>Otto does a pretty good job of outlining the main issues and solution <a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Fwordpress.org%2Fsupport%2Ftopic%2F25-imagemedia-uploader-problems&sref=rss">in this post</a>.</p>
<p>In my experience these errors usually occur because of your server setup or memory issues. To help you diagnose where your problem lies:</p>
<p>1. If the file appears to upload and then you get an HTTP Error, this is most likely your server settings preventing you from uploading or processing large files in some way.</p>
<p>2. If you get as far as &#8220;Crunching&#8230;&#8221; being displayed, this is most likely a memory issue &#8211; the image is so big that the server struggles to create the other images sizes. Also note that it is often the actual physical dimensions of the image not the filesize that is too big and causes the memory issue.</p>
<h3>MaxLen</h3>
<p>The most recent occasion when I ran into this issue was on a <a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2F1and1.co.uk%2Fxml%2Finit%2F%3Fk_id%3D7507424&sref=rss">1&amp;1 Virtual Server</a>. None of the fixes I could find solved my issue and I eventually tracked it down to needing to increase to MaxLen setting on the server.</p>
<p><span id="more-2244"></span></p>
<h3>The Solution</h3>
<p>To do this I needed to add the following into the vhost.conf file on the server. My vhost.conf file was located here:</p>
<pre>/var/www/vhosts/domain.com/conf/vhost.conf</pre>
<p>The following sets to value to 31457280 bytes which is 30MB:</p>
<pre>&lt;IfModule mod_fcgid.c&gt;
FcgidMaxRequestLen 31457280
&lt;/IfModule&gt;</pre>
<p>I also added some additional settings to help with timeout issues:</p>
<pre>&lt;IfModule mod_fcgid.c&gt;
FcgidMaxRequestLen 31457280
ProcessLifeTime 7200
IPCCommTimeout 7200
IPCConnectTimeout 300
&lt;/IfModule&gt;</pre>
<p>Then I needed to tell Plesk to update it&#8217;s information but running the following:</p>
<pre># /usr/local/psa/admin/sbin/websrvmng -u --vhost-name=domain.com</pre>
<p>This configures Plesk only for one single domain, in this case domain.com. If you want to configure it for all sites run:</p>
<pre># /usr/local/psa/admin/bin/websrvmng -a</pre>
<p>All done.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.benhuson.co.uk/2011/12/16/wordpress-media-uploader-another-http-error-solution/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WP e-Commerce Cross Sales</title>
		<link>http://www.benhuson.co.uk/2011/08/21/wp-e-commerce-cross-sales/</link>
		<comments>http://www.benhuson.co.uk/2011/08/21/wp-e-commerce-cross-sales/#comments</comments>
		<pubDate>Sun, 21 Aug 2011 20:36:17 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[E-commerce]]></category>
		<category><![CDATA[WordPress Plugins]]></category>
		<category><![CDATA[WP e-Commerce]]></category>

		<guid isPermaLink="false">http://www.benhuson.co.uk/?p=2155</guid>
		<description><![CDATA[Tweet The latest version of WP e-Commerce (3.8.x) for WordPress is a significant move on both in terms of stability and extensibility. This is partly down to an extensive re-build on the codebase to take advantage of some of WordPress&#8217; latest features; custom post type and taxonomies. This has the added benefit of making it [...]]]></description>
			<content:encoded><![CDATA[
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: left"><a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Ftwitter.com%2Fshare&sref=rss" class="twitter-share-button" data-url="http://www.benhuson.co.uk/2011/08/21/wp-e-commerce-cross-sales/" data-count="horizontal" data-via="benhuson">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

 
<span class = "facebook-like" style = "height: 25px;  "><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.benhuson.co.uk/2011/08/21/wp-e-commerce-cross-sales/&layout=button_count&send=false&show_faces=false&width=&action=like&colorscheme=light&font=lucida grande" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:px; height:25px"></iframe></span><p><strong>The latest version of <a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Fgetshopped.org%2F&sref=rss" target="_blank">WP e-Commerce</a> (3.8.x) for WordPress is a significant move on both in terms of stability and extensibility.</strong></p>
<p>This is partly down to an extensive re-build on the codebase to take advantage of some of WordPress&#8217; latest features; custom post type and taxonomies. This has the added benefit of making it much easier for plugin developers to create add-on plugin to enhance WP e-Commerce functionality.</p>
<p>The key objectives now seem to be to keep WP e-Commerce &#8216;lean and mean&#8217; to provide a solid platform on which to develop WordPress-based e-commerce sites, and provide additional functionality through plugins.</p>
<p>Part of this process includes stripping out some of the less-used parts of WP e-Commerce and turning them into plugins. Once such example is the automated &#8216;Also Bought&#8217; functionality which can be found in the Marketing tab of WP e-Commerce settings.</p>
<p><a href="http://www.benhuson.co.uk/wp-content/uploads/wpsc-marketing-current.jpg"><img class="alignnone size-medium wp-image-2192 border" title="WP e-Commerce Cross Sales - Current Marketing Panel" src="http://www.benhuson.co.uk/wp-content/uploads/wpsc-marketing-current-400x162.jpg" alt="" width="400" height="162" /></a></p>
<p>I have worked extensively with WP e-Commerce over the last 2-3 years and frequently try to get involved wether it be fixing the odd bug or helping out on the forum &#8211; when I have time ;) so I jumped on board to help separate the &#8216;Also Bought&#8217; functionality into a WordPress plugin.</p>
<p><span id="more-2155"></span></p>
<h3>Also Bought &gt; Cross Sales</h3>
<p>The &#8216;Also Bought&#8217; functionality is now available to download as the &#8216;Cross Sales&#8217; plugin on <a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Fwordpress.org%2Fextend%2Fplugins%2Fwp-e-commerce-cross-sales%2F&sref=rss">WordPress Extend</a>.</p>
<p>The plugin will function exactly the same way as the current Also Bought feature in WP e-Commerce. When someone buys multiple products, this information will be saved so that we can identify that &#8220;someone who bought this also bought that&#8221;.</p>
<p>There are few small additions though:</p>
<p><a href="http://www.benhuson.co.uk/wp-content/uploads/wpsc-cross-sales-panel.jpg"><img class="alignnone size-medium wp-image-2191 border" title="WP e-Commerce Cross Sales - Panel" src="http://www.benhuson.co.uk/wp-content/uploads/wpsc-cross-sales-panel-400x157.jpg" alt="" width="400" height="157" /></a></p>
<p>You will be able to set a limit for the amount of cross sales you want to show &#8211; what looks best may  depend on the theme you are using.</p>
<p>By default, cross sale product images will be the same size as product thumbnail images, but there are now settings to override this if you want.</p>
<h3>Installing/Upgrading</h3>
<p>In WP e-Commerce 3.9 the also bought functionality will not be available by default, you&#8217;ll need to install the plugin. For those of you who are already using that functionality, don&#8217;t worry, I&#8217;ve made it easy for you&#8230; you&#8217;ll be able to install the plugin directly from the Marketing tab in WP e-Commerce and have it back up and running straight away.</p>
<p><a href="http://www.benhuson.co.uk/wp-content/uploads/wpsc-cross-sales-install-now.jpg"><img class="alignnone size-medium wp-image-2189 border" title="WP e-Commerce Cross Sales - Install Now" src="http://www.benhuson.co.uk/wp-content/uploads/wpsc-cross-sales-install-now-400x73.jpg" alt="" width="400" height="73" /></a></p>
<p>You can even install the plugin now if you like. It won&#8217;t do anything until you upgrade to WP e-Commerce 3.9 and the transition will be seamless.</p>
<p><img class="alignnone size-full wp-image-2190 border" title="WP e-Commerce Cross Sales - Upgrade Notice" src="http://www.benhuson.co.uk/wp-content/uploads/wpsc-cross-sales-notice.jpg" alt="" width="400" height="132" /></p>
<p>I recommend that you change the <code>wpsc_also_bought()</code> references in your single product theme template to the following:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #990000;">function_exists</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'wpsc_cross_sales'</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> wpsc_cross_sales<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$product_id</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>This will ensure compatibility in the future if you deactivate the plugin, and ensure it works with future versions. You don&#8217;t <em>need</em> to change this as the wpsc_also_bought() function should work for the time being, but it will cease to work in a future version of this plugin so do get around to changing it sooner rather than later.</p>
<h3>What next&#8230;?</h3>
<p>Expect to see other areas of WP e-Commerce being moved to separate plugins. My guess is the following features may at some point find themselves moved to external plugins:</p>
<ul>
<li>Social Integration, Like, Tweet etc&#8230;</li>
<li>Intense Debate comment integration</li>
<li>Custom survey</li>
<li>Off site product links</li>
<li>Personalisation options</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.benhuson.co.uk/2011/08/21/wp-e-commerce-cross-sales/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Single Column Gallery in WordPress</title>
		<link>http://www.benhuson.co.uk/2010/09/25/single-col-wordpress-gallery/</link>
		<comments>http://www.benhuson.co.uk/2010/09/25/single-col-wordpress-gallery/#comments</comments>
		<pubDate>Sat, 25 Sep 2010 14:02:08 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Gallery]]></category>
		<category><![CDATA[Images]]></category>
		<category><![CDATA[Patch]]></category>
		<category><![CDATA[Shortcode]]></category>

		<guid isPermaLink="false">http://www.benhuson.co.uk/?p=1768</guid>
		<description><![CDATA[Tweet You may (or may not) have noticed that in WordPress if you want to insert an image gallery into your post it does not give you the option of insert a gallery only 1 column wide. This seems like an oversight. I have seen loads of photo and inspiration blogs around that often include [...]]]></description>
			<content:encoded><![CDATA[
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: left"><a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Ftwitter.com%2Fshare&sref=rss" class="twitter-share-button" data-url="http://www.benhuson.co.uk/2010/09/25/single-col-wordpress-gallery/" data-count="horizontal" data-via="benhuson">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

 
<span class = "facebook-like" style = "height: 25px;  "><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.benhuson.co.uk/2010/09/25/single-col-wordpress-gallery/&layout=button_count&send=false&show_faces=false&width=&action=like&colorscheme=light&font=lucida grande" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:px; height:25px"></iframe></span><p><strong>You may (or may not) have noticed that in WordPress if you want to insert an image gallery into your post it does not give you the option of insert a gallery only 1 column wide.</strong></p>
<p>This seems like an oversight. I have seen loads of photo and inspiration blogs around that often include multiple images in a single column so it would seem that being able to easily insert a single column gallery would be a useful feature.</p>
<p><img class="alignnone size-full wp-image-1842 border" title="WordPress Gallery Settings" src="http://www.benhuson.co.uk/wp-content/uploads/wp-gallery-settings.jpg" alt="" width="400" height="325" /></p>
<p>Fortunately it is possible to insert a gallery one column wide, just not through the popup media window. Here&#8217;s how&#8230;</p>
<p><span id="more-1768"></span></p>
<h3>How to insert a single column gallery</h3>
<p>It&#8217;s just a simple shortcode:</p>
<pre>[<span>gallery columns="1"</span>]</pre>
<p>Unfortunately in the Visual editor, when you go back to edit your post the gallery shortcode will be displayed as a gallery preview. If you click the gallery edit button (top left) then the media window will pop up but the columns menu will default to 3 as there is no value of 1.</p>
<p><img class="alignnone size-full wp-image-1910" title="WP Gallery Preview (over)" src="http://www.benhuson.co.uk/wp-content/uploads/wp-gallery-preview-over.jpg" alt="" width="400" height="212" /></p>
<h3>So, what&#8217;s the fix?</h3>
<p>It&#8217;s a change to WordPress core code but it&#8217;s really simple. Just edit wp-admin/includes/media.php and around line 1818 insert an select menu option with a value of 1.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1817
1818
1819
1820
1821
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>select id<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;columns&quot;</span> name<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;columns&quot;</span><span style="color: #339933;">&gt;</span>
	<span style="color: #339933;">&lt;</span>option value<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;1&quot;</span><span style="color: #339933;">&gt;</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">&lt;/</span>option<span style="color: #339933;">&gt;</span>
	<span style="color: #339933;">&lt;</span>option value<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;2&quot;</span><span style="color: #339933;">&gt;</span><span style="color: #cc66cc;">2</span><span style="color: #339933;">&lt;/</span>option<span style="color: #339933;">&gt;</span>
	<span style="color: #339933;">&lt;</span>option selected<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;selected&quot;</span> value<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;3&quot;</span><span style="color: #339933;">&gt;</span><span style="color: #cc66cc;">3</span><span style="color: #339933;">&lt;/</span>option<span style="color: #339933;">&gt;</span>
	<span style="color: #339933;">&lt;</span>option value<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;4&quot;</span><span style="color: #339933;">&gt;</span><span style="color: #cc66cc;">4</span><span style="color: #339933;">&lt;/</span>option<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>

<p>I&#8217;ve submitted a <a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Fcore.trac.wordpress.org%2Fticket%2F14836&sref=rss">WordPress patch here</a>. If you would like this change to be made to WordPress please add your support to the <a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Fcore.trac.wordpress.org%2Fticket%2F14836&sref=rss">Trac ticket</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.benhuson.co.uk/2010/09/25/single-col-wordpress-gallery/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Setting a short menu name when registering a new custom post type in WordPress</title>
		<link>http://www.benhuson.co.uk/2010/09/15/register-post-type-menu-name/</link>
		<comments>http://www.benhuson.co.uk/2010/09/15/register-post-type-menu-name/#comments</comments>
		<pubDate>Wed, 15 Sep 2010 19:52:49 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Custom Post Types]]></category>
		<category><![CDATA[Patch]]></category>
		<category><![CDATA[register_post_type]]></category>

		<guid isPermaLink="false">http://www.benhuson.co.uk/?p=1737</guid>
		<description><![CDATA[Tweet When registering a new custom post type in WordPress, there are a whole array of labels you can set for how your post type will be displayed in the admin. The post type I was creating had quite a long descriptive label which was fine in most scenarios but in the case of the [...]]]></description>
			<content:encoded><![CDATA[
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: left"><a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Ftwitter.com%2Fshare&sref=rss" class="twitter-share-button" data-url="http://www.benhuson.co.uk/2010/09/15/register-post-type-menu-name/" data-count="horizontal" data-via="benhuson">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

 
<span class = "facebook-like" style = "height: 25px;  "><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.benhuson.co.uk/2010/09/15/register-post-type-menu-name/&layout=button_count&send=false&show_faces=false&width=&action=like&colorscheme=light&font=lucida grande" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:px; height:25px"></iframe></span><p><strong>When registering a new custom post type in WordPress, there are a whole </strong><a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Fcodex.wordpress.org%2FFunction_Reference%2Fregister_post_type%23Arguments&sref=rss"><strong>array of labels</strong></a><strong> you can set for how your post type will be displayed in the admin.</strong></p>
<p>The post type I was creating had quite a long descriptive label which was fine in most scenarios but in the case of the main admin menu it pushed the menu text onto several lines.</p>
<p>See the example on the left below &#8211; I have deliberately shown any extremely long title to illustrate the point.</p>
<p><img class="alignnone size-full wp-image-1811 border" title="WordPress: Short Menu Name" src="http://www.benhuson.co.uk/wp-content/uploads/wordpress-short-menu-name.gif" alt="" width="400" height="362" /></p>
<p>It would be really useful to have an extra label for &#8216;menu-name&#8217; so that you can use a different title for the menu item as illustrated in the example on the right.</p>
<p>I have submitted a WordPress patch which <a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Ftwitter.com%2Fnacin&sref=rss">Andrew Nacin</a> seems to have taken under his wing. You can follow the <a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Fcore.trac.wordpress.org%2Fticket%2F14832&sref=rss">progress of the patch here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.benhuson.co.uk/2010/09/15/register-post-type-menu-name/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Using HeadSpace with Custom Post Types</title>
		<link>http://www.benhuson.co.uk/2010/09/14/headspace-custom-post-types/</link>
		<comments>http://www.benhuson.co.uk/2010/09/14/headspace-custom-post-types/#comments</comments>
		<pubDate>Tue, 14 Sep 2010 19:56:46 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Custom Post Types]]></category>
		<category><![CDATA[HeadSpace]]></category>
		<category><![CDATA[WordPress Plugins]]></category>

		<guid isPermaLink="false">http://www.benhuson.co.uk/?p=1771</guid>
		<description><![CDATA[Tweet I frequently install HeadSpace, the WordPress SEO plugin by John Godley, when I work on a WordPress site. Recently I have been making use of the new custom post type features of WordPress 3.0 but found that the HeadSpace meta box for editing the title and description tags did not show on my custom [...]]]></description>
			<content:encoded><![CDATA[
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: left"><a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Ftwitter.com%2Fshare&sref=rss" class="twitter-share-button" data-url="http://www.benhuson.co.uk/2010/09/14/headspace-custom-post-types/" data-count="horizontal" data-via="benhuson">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

 
<span class = "facebook-like" style = "height: 25px;  "><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.benhuson.co.uk/2010/09/14/headspace-custom-post-types/&layout=button_count&send=false&show_faces=false&width=&action=like&colorscheme=light&font=lucida grande" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:px; height:25px"></iframe></span><p><strong>I frequently install <a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Fwordpress.org%2Fextend%2Fplugins%2Fheadspace2%2F&sref=rss">HeadSpace</a></strong><strong>, the WordPress SEO plugin by <a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Ftwitter.com%2Fall_noodles&sref=rss">John Godley</a></strong><strong>, when I work on a WordPress site.</strong></p>
<p>Recently I have been making use of the new custom post type features of WordPress 3.0 but found that the HeadSpace meta box for editing the title and description tags did not show on my custom post type edit screens.</p>
<p>After a bit of delving through the code I figured out the way to do this &#8211; note that this may only work if your custom post type uses the default post capabilities.</p>
<p>It checks that the HeadSpace class is available and if so adds the meta box to your custom post type edit screen. Just add the following code into your plugin or theme&#8217;s functions.php file replacing &#8216;myposttype&#8217; with your custom post type.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #009933; font-style: italic;">/**
 * Add Headspace plugin support for myposttype
 */</span>
<span style="color: #000000; font-weight: bold;">function</span> myposttype_headpspace_add_custom_box<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$headspace2</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #990000;">function_exists</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'add_meta_box'</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">is_object</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$headspace2</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		add_meta_box<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'headspacestuff'</span><span style="color: #339933;">,</span> __<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'HeadSpace'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'headspace'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span> <span style="color: #339933;">&amp;</span><span style="color: #000088;">$headspace2</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'metabox'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'myposttype'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'normal'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'high'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
add_action<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'wp_print_scripts'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'myposttype_headpspace_add_custom_box'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.benhuson.co.uk/2010/09/14/headspace-custom-post-types/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Google Analytics for WordPress plugin not tracking WP e-Commerce transactions?</title>
		<link>http://www.benhuson.co.uk/2010/08/11/google-analytics-wpecommerce-transactions/</link>
		<comments>http://www.benhuson.co.uk/2010/08/11/google-analytics-wpecommerce-transactions/#comments</comments>
		<pubDate>Wed, 11 Aug 2010 21:23:05 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[E-commerce]]></category>
		<category><![CDATA[Google Analytics]]></category>
		<category><![CDATA[Joost de Valk]]></category>
		<category><![CDATA[WP e-Commerce]]></category>

		<guid isPermaLink="false">http://www.benhuson.co.uk/?p=1673</guid>
		<description><![CDATA[Tweet I recently tried out Joost de Valk&#8217;s Google Analytics for WordPress (version 4) and was happy to see it supported ecommerce tracking for WP e-Commerce. I had the latest version of WP e-Commerce installed, version 3.7.6.7, and configured the analytics plugin to track transactions but for some reason my ecommerce purchases were not being tracked by [...]]]></description>
			<content:encoded><![CDATA[
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: left"><a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Ftwitter.com%2Fshare&sref=rss" class="twitter-share-button" data-url="http://www.benhuson.co.uk/2010/08/11/google-analytics-wpecommerce-transactions/" data-count="horizontal" data-via="benhuson">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

 
<span class = "facebook-like" style = "height: 25px;  "><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.benhuson.co.uk/2010/08/11/google-analytics-wpecommerce-transactions/&layout=button_count&send=false&show_faces=false&width=&action=like&colorscheme=light&font=lucida grande" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:px; height:25px"></iframe></span><p><strong>I recently tried out Joost de Valk&#8217;s <a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Fyoast.com%2Fgoogle-analytics-wordpress-v4%2F&sref=rss">Google Analytics for WordPress</a> (version 4) and was happy to see it supported ecommerce tracking for <a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Fgetshopped.org%2F&sref=rss">WP e-Commerce</a>.</strong></p>
<p>I had the latest version of WP e-Commerce installed, version 3.7.6.7, and configured the analytics plugin to track transactions but for some reason my ecommerce purchases were not being tracked by Google Analytics.</p>
<p><img class="alignnone size-full wp-image-1686 border" title="E-commerce Conversion Rate" src="http://www.benhuson.co.uk/wp-content/uploads/ecommerce-conv-rate.jpg" alt="" width="400" height="172" /></p>
<p>I did a bit of digging around and discovered the Analytics plugin was looking for the global variable $cart_log_id from which it could get the transaction details, but this variable did not seem to exist (it did seem to be in pre 3.7.6.x versions of WP e-Commerce though).</p>
<p>I have submitted a patch for this for the forthcoming WP e-Commerce version 3.8 (which is currently in beta and looking great, by the way).</p>
<p>In the meantime, if you&#8217;re having this problem here&#8217;s how you can fix it&#8230;</p>
<p><span id="more-1673"></span></p>
<h3>The Fix</h3>
<p>You&#8217;ll need to get your hands a little bit dirty, but fortunately you only have to edit one file. In the WP e-Commerce plugin folder open the transaction_results.php file.</p>
<h4>Step 1</h4>
<p>Change the first line that defines global variables to add the $cart_log_id variable:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>2
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">,</span> <span style="color: #000088;">$user_ID</span><span style="color: #339933;">,</span> <span style="color: #000088;">$nzshpcrt_gateways</span><span style="color: #339933;">,</span> <span style="color: #000088;">$sessionid</span><span style="color: #339933;">,</span> <span style="color: #000088;">$cart_log_id</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<h4>Step 2</h4>
<p>At the end of the file just before the closing php tag we&#8217;ll query the database to get the $cart_log_id that will be used by the analytics plugin:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>46
47
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$cart_log_id</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get_var</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;SELECT `id` FROM `&quot;</span> <span style="color: #339933;">.</span> WPSC_TABLE_PURCHASE_LOGS <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;` WHERE `sessionid`= &quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$sessionid</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot; LIMIT 1&quot;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>&#8230;and hopefully that should fix it.</p>
<p>I haven&#8217;t tested this for all versions of WP e-Commerce but it should certainly work on the latest 3.7.6.7 version.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.benhuson.co.uk/2010/08/11/google-analytics-wpecommerce-transactions/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>WordPress.org Goshdarnit!</title>
		<link>http://www.benhuson.co.uk/2010/07/20/wordpress-goshdarnit/</link>
		<comments>http://www.benhuson.co.uk/2010/07/20/wordpress-goshdarnit/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 21:03:54 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Error]]></category>

		<guid isPermaLink="false">http://www.benhuson.co.uk/?p=1629</guid>
		<description><![CDATA[Tweet Was just browsing WordPress.org and got this server error message. Matt, if there&#8217;s a WordPress problem is it always your fault? Made me chuckle ;)]]></description>
			<content:encoded><![CDATA[
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: left"><a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Ftwitter.com%2Fshare&sref=rss" class="twitter-share-button" data-url="http://www.benhuson.co.uk/2010/07/20/wordpress-goshdarnit/" data-count="horizontal" data-via="benhuson">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

 
<span class = "facebook-like" style = "height: 25px;  "><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.benhuson.co.uk/2010/07/20/wordpress-goshdarnit/&layout=button_count&send=false&show_faces=false&width=&action=like&colorscheme=light&font=lucida grande" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:px; height:25px"></iframe></span><p><strong>Was just browsing </strong><a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Fwordpress.org%2F&sref=rss"><strong>WordPress.org</strong></a><strong> and got this server error message.</strong></p>
<p><a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Fma.tt%2F&sref=rss">Matt</a>, if there&#8217;s a WordPress problem is it always your fault?<br />
Made me chuckle ;)</p>
<p><img class="alignnone size-full wp-image-1631 border" title="WordPress.org Goshdarnit!" src="http://www.benhuson.co.uk/wp-content/uploads/goshdarnit.gif" alt="" width="400" height="276" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.benhuson.co.uk/2010/07/20/wordpress-goshdarnit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Body Classes for Styling WordPress Taxonomies</title>
		<link>http://www.benhuson.co.uk/2010/06/24/wordpress-taxonomies-body-classes/</link>
		<comments>http://www.benhuson.co.uk/2010/06/24/wordpress-taxonomies-body-classes/#comments</comments>
		<pubDate>Thu, 24 Jun 2010 16:00:30 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Taxonomies]]></category>

		<guid isPermaLink="false">http://www.benhuson.co.uk/?p=1591</guid>
		<description><![CDATA[Tweet I recently noticed that WordPress does not seem to add style classes to the body tag for custom taxonomies in the same way that it does on category archives. You can fix this by adding the following to your functions.php file. function taxonomy_body_class&#40; $classes &#41; &#123; if &#40; is_tax&#40;&#41; &#41; &#123; $tax = get_query_var&#40; [...]]]></description>
			<content:encoded><![CDATA[
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: left"><a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Ftwitter.com%2Fshare&sref=rss" class="twitter-share-button" data-url="http://www.benhuson.co.uk/2010/06/24/wordpress-taxonomies-body-classes/" data-count="horizontal" data-via="benhuson">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

 
<span class = "facebook-like" style = "height: 25px;  "><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.benhuson.co.uk/2010/06/24/wordpress-taxonomies-body-classes/&layout=button_count&send=false&show_faces=false&width=&action=like&colorscheme=light&font=lucida grande" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:px; height:25px"></iframe></span><p>I recently noticed that WordPress does not seem to add style classes to the body tag for custom taxonomies in the same way that it does on category archives.</p>
<p>You can fix this by adding the following to your functions.php file.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> taxonomy_body_class<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$classes</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> is_tax<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$tax</span> <span style="color: #339933;">=</span> get_query_var<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'taxonomy'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$term</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$tax</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'-'</span> <span style="color: #339933;">.</span> get_query_var<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'term'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$classes</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_merge</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$classes</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'taxonomy-archive'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$tax</span><span style="color: #339933;">,</span> <span style="color: #000088;">$term</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #000088;">$classes</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
add_filter<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'body_class'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'taxonomy_body_class'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>I don&#8217;t know why WordPress doesn&#8217;t do this automatically &#8211; I guess it should be added to core. What do you think?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.benhuson.co.uk/2010/06/24/wordpress-taxonomies-body-classes/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Making your plugin meta boxes work with custom post types in WordPress 3.0</title>
		<link>http://www.benhuson.co.uk/2010/06/18/wp-meta-box-post-types/</link>
		<comments>http://www.benhuson.co.uk/2010/06/18/wp-meta-box-post-types/#comments</comments>
		<pubDate>Fri, 18 Jun 2010 19:36:25 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Web Developer]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Custom Post Types]]></category>
		<category><![CDATA[Meta Boxes]]></category>
		<category><![CDATA[Robots]]></category>
		<category><![CDATA[WordPress Plugins]]></category>

		<guid isPermaLink="false">http://www.benhuson.co.uk/?p=1580</guid>
		<description><![CDATA[Tweet Getting to grips with custom post types in WordPress 3.0? I am, and am finding they&#8217;re a great way to organise different content on your site and very easy to implement in just a few lines of code. However, the challenge now is for plugin developers to make their plugins play nice with custom [...]]]></description>
			<content:encoded><![CDATA[
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: left"><a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Ftwitter.com%2Fshare&sref=rss" class="twitter-share-button" data-url="http://www.benhuson.co.uk/2010/06/18/wp-meta-box-post-types/" data-count="horizontal" data-via="benhuson">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

 
<span class = "facebook-like" style = "height: 25px;  "><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.benhuson.co.uk/2010/06/18/wp-meta-box-post-types/&layout=button_count&send=false&show_faces=false&width=&action=like&colorscheme=light&font=lucida grande" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:px; height:25px"></iframe></span><p><strong>Getting to grips with custom post types in WordPress 3.0?</strong></p>
<p>I am, and am finding they&#8217;re a great way to organise different content on your site and very easy to implement in <a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Fcodex.wordpress.org%2FFunction_Reference%2Fregister_post_type&sref=rss">just a few lines of code</a>.</p>
<p>However, the challenge now is for plugin developers to make their plugins play nice with custom post types. The main thing I&#8217;ve noticed so far is that most plugins only tend to add meta boxes to posts and pages, so here&#8217;s the first step &#8211; getting your WordPress plugin meta boxes to work with custom post types.</p>
<p><span id="more-1580"></span></p>
<h3>A Real World Example</h3>
<p>I needed to set some of my custom post type pages not to be indexed by search engines so I picked out the <a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Fwordpress.org%2Fextend%2Fplugins%2Frobots-meta%2F&sref=rss">Robots Meta</a> plugin by <a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Fyoast.com&sref=rss">Joost de Valk</a> &#8211; the best plugin for the job in my opinion &#8211; installed it, and found it was only showing a meta box when editing my posts and pages.</p>
<p>I&#8217;m going to use Joost&#8217;s plugin (version 3.3.1) to illustrate how you can get meta boxes to show for custom post types so <a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Fwordpress.org%2Fextend%2Fplugins%2Frobots-meta%2F&sref=rss">download it</a> and continue reading below.</p>
<h3>The Meta Boxes</h3>
<p>The file you&#8217;ll need to edit is robots-meta.php. The meta boxes are added to posts and pages by the meta_box function on line 24:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>24
25
26
27
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> meta_box<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	add_meta_box<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'robotsmeta'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Robots Meta'</span><span style="color: #339933;">,</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'RobotsMeta_Admin'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'noindex_option_fill'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'post'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'side'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	add_meta_box<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'robotsmeta'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Robots Meta'</span><span style="color: #339933;">,</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'RobotsMeta_Admin'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'noindex_option_fill'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'page'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'side'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<h3>Meta Boxes for Custom Post Types</h3>
<p>Firstly we&#8217;re going to check that the &#8216;get_post_types&#8217; function exists. If it does then we&#8217;ll loop through all the post types and add meta boxes. If not we&#8217;ll continue just to add for posts and pages.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>24
25
26
27
28
29
30
31
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> meta_box<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #990000;">function_exists</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'get_post_types'</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #666666; font-style: italic;">// Handle posts, pages and custom post types here</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
		add_meta_box<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'robotsmeta'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Robots Meta'</span><span style="color: #339933;">,</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'RobotsMeta_Admin'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'noindex_option_fill'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'post'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'side'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		add_meta_box<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'robotsmeta'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Robots Meta'</span><span style="color: #339933;">,</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'RobotsMeta_Admin'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'noindex_option_fill'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'page'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'side'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>The next step is to get all the post types that have been registered &#8211; this will include the built-in post types for posts and pages. We then loop through them:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$post_types</span> <span style="color: #339933;">=</span> get_post_types<span style="color: #009900;">&#40;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'objects'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$post_types</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$post_type</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #666666; font-style: italic;">// Handle each post type here</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Then for each post type we are going to add a meta box. It is import to note that when you add a custom post type you can choose wether or not to automatically create the WordPress UI in the admin. We only want to add meta boxes if the UI is generated by WordPress so we add in an &#8216;if&#8217; statement to check.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>24
25
26
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$post_type</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">show_ui</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	add_meta_box<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'robotsmeta'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Robots Meta'</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'RobotsMeta_Admin'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'noindex_option_fill'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$post_type</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">name</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'side'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<h3>The Finished Function</h3>
<p>So put all that together and this is what you get:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>24
25
26
27
28
29
30
31
32
33
34
35
36
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> meta_box<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #990000;">function_exists</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'get_post_types'</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$post_types</span> <span style="color: #339933;">=</span> get_post_types<span style="color: #009900;">&#40;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'objects'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$post_types</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$post_type</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$post_type</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">show_ui</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				add_meta_box<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'robotsmeta'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Robots Meta'</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'RobotsMeta_Admin'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'noindex_option_fill'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$post_type</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">name</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'side'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
		add_meta_box<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'robotsmeta'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Robots Meta'</span><span style="color: #339933;">,</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'RobotsMeta_Admin'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'noindex_option_fill'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'post'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'side'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		add_meta_box<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'robotsmeta'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Robots Meta'</span><span style="color: #339933;">,</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'RobotsMeta_Admin'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'noindex_option_fill'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'page'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'side'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p><strong>Please Note:</strong> This only deomstrates how you can add meta boxes for custom post types. There are other aspects such as checking user capabilities for different post types that may be applicable when you are saving your meta box data. See the capabilities arguments you can set in the <a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Fcodex.wordpress.org%2FFunction_Reference%2Fregister_post_type&sref=rss">register_post_type</a> function.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.benhuson.co.uk/2010/06/18/wp-meta-box-post-types/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Category Paging Functions in WP e-Commerce 3.7.6</title>
		<link>http://www.benhuson.co.uk/2010/03/10/wpsc-paging/</link>
		<comments>http://www.benhuson.co.uk/2010/03/10/wpsc-paging/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 09:30:31 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[E-Commerce]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[E-commerce]]></category>
		<category><![CDATA[Paging]]></category>
		<category><![CDATA[WordPress Plugins]]></category>
		<category><![CDATA[WP e-Commerce]]></category>

		<guid isPermaLink="false">http://www.benhuson.co.uk/?p=1461</guid>
		<description><![CDATA[Tweet WP e-Commerce 3.7.6 now includes better support for paging on category pages. The latest release contains a suite of functions (my little contribution) to help you customise how pagination is displayed in your WPSC templates. You can find an in-depth look at these functions and how to use them in the WP e-Commerce Documentation. [...]]]></description>
			<content:encoded><![CDATA[
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: left"><a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Ftwitter.com%2Fshare&sref=rss" class="twitter-share-button" data-url="http://www.benhuson.co.uk/2010/03/10/wpsc-paging/" data-count="horizontal" data-via="benhuson">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

 
<span class = "facebook-like" style = "height: 25px;  "><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.benhuson.co.uk/2010/03/10/wpsc-paging/&layout=button_count&send=false&show_faces=false&width=&action=like&colorscheme=light&font=lucida grande" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:px; height:25px"></iframe></span><p><strong><a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Fgetshopped.org%2Fgetshopped-news%2Fwp-e-commerce-3-7-6-rc-1-is-out%2F&sref=rss">WP e-Commerce 3.7.6</a> now includes better support for paging on category pages.</strong></p>
<p>The latest release contains a suite of functions (my little contribution) to help you customise how pagination is displayed in your WPSC templates.</p>
<p>You can find an in-depth look at these functions and how to use them in the <a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Fgetshopped.org%2Fresources%2Fdocs%2Fdesign-and-layout%2Fpagination%2F&sref=rss">WP e-Commerce Documentation</a>.</p>
<p>Below are some quick examples of what you can do&#8230;</p>
<p><span id="more-1461"></span></p>
<h3>Basic paging</h3>
<p><img class="border" title="wpsc-paging" src="http://www.benhuson.co.uk/wp-content/uploads/wpsc-paging.gif" alt="" width="400" height="50" /></p>
<p>Some fairly standard paging with linked page numbers, previous and next links, and arrow links to take to to the first and last pages. You can customise the text that is used for previous, next, first and last links.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> wpsc_first_products_link<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'&amp;laquo;'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> wpsc_previous_products_link<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'previous'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> wpsc_pagination<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> wpsc_next_products_link<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'next'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> wpsc_last_products_link<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'&amp;raquo;'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<h3>Limit the amount of pages</h3>
<p><img class="alignnone size-full wp-image-1462 border" title="wpsc-paging-page-x-of-x" src="http://www.benhuson.co.uk/wp-content/uploads/wpsc-paging-page-x-of-x.gif" alt="" width="400" height="90" /></p>
<p>You can limit the amount of page links to show at one time. The above example shows what happens if there are 10 pages of products, but only showing 7 page links at a time. Notice also the text describing which page you&#8217;re on and that the previous and first links are greyed out when not applicable &#8211; you can also choose to hide them instead of showing inactive links.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">Page <span style="color: #000000; font-weight: bold;">&lt;?php</span> wpsc_showing_products_page<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>:
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> wpsc_first_products_link<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'&amp;laquo;'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> wpsc_previous_products_link<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'previous'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> wpsc_pagination<span style="color: #009900;">&#40;</span> <span style="color: #cc66cc;">7</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> wpsc_next_products_link<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'next'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> wpsc_last_products_link<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'&amp;raquo;'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<h3>Total number of products</h3>
<p><img class="border" title="wpsc-paging-showing-x-products" src="http://www.benhuson.co.uk/wp-content/uploads/wpsc-paging-showing-x-products.gif" alt="" width="400" height="50" /></p>
<p>There is a function to easily display the total number of products. You can detect if the category has multiple pages and if it doesn&#8217;t display something like this instead.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> wpsc_has_pages<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
   &lt;!-- Insert pagination for multiple pages --&gt;
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">else</span> <span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
   Showing <span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> wpsc_total_product_count<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span> products
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endif</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<h3>Number of products showing</h3>
<p><img class="alignnone size-full wp-image-1463 border" title="wpsc-paging-showing-x-of-x-products" src="http://www.benhuson.co.uk/wp-content/uploads/wpsc-paging-showing-x-of-x-products.gif" alt="" width="400" height="50" /></p>
<p>You can display an indication as to which products are showing depending on which page you&#8217;re viewing.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">Showing <span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> wpsc_showing_products<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span> of <span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> wpsc_total_product_count<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span> products:</pre></div></div>

<h3>What next?</h3>
<p>The new WP e-Commerce default themes contain examples of pagination so hop into your templates and <a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Fgetshopped.org%2Fresources%2Fdocs%2Fdesign-and-layout%2Fpagination%2F&sref=rss">create some nice pagination&#8230;</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.benhuson.co.uk/2010/03/10/wpsc-paging/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>WordPress Permalinks on a Namesco Zeus Server</title>
		<link>http://www.benhuson.co.uk/2010/03/01/wordpress-permalinks-zeus-server/</link>
		<comments>http://www.benhuson.co.uk/2010/03/01/wordpress-permalinks-zeus-server/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 22:50:24 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[Namesco]]></category>
		<category><![CDATA[Permalinks]]></category>
		<category><![CDATA[Zeus Server]]></category>

		<guid isPermaLink="false">http://www.benhuson.co.uk/?p=1444</guid>
		<description><![CDATA[Tweet I had a bit of a problem recently trying to convert a WordPress .htaccess file to a rewrite.script file for a Zeus server. My knowledge of the syntax for rewrite.script was non-existant so I tried the .htaccess converter provided in the Namesco admin. This managed to get me part of the way there but [...]]]></description>
			<content:encoded><![CDATA[
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: left"><a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Ftwitter.com%2Fshare&sref=rss" class="twitter-share-button" data-url="http://www.benhuson.co.uk/2010/03/01/wordpress-permalinks-zeus-server/" data-count="horizontal" data-via="benhuson">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

 
<span class = "facebook-like" style = "height: 25px;  "><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.benhuson.co.uk/2010/03/01/wordpress-permalinks-zeus-server/&layout=button_count&send=false&show_faces=false&width=&action=like&colorscheme=light&font=lucida grande" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:px; height:25px"></iframe></span><p>I had a bit of a problem recently trying to convert a WordPress .htaccess file to a rewrite.script file for a Zeus server. My knowledge of the syntax for rewrite.script was non-existant so I tried the .htaccess converter provided in the Namesco admin.</p>
<p>This managed to get me part of the way there but the permalinks included &#8220;index.php&#8221; before the custom permalink setting.</p>
<p><span id="more-1444"></span></p>
<p>Hunting around I found <a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Fwww.adamchristie.co.uk%2Fwordpress%2Fseo-friendly-wordpress-urls-on-namesco-zeus-servers%2F&sref=rss">this blog post by Adam Christie</a> in which he documents a rewrite.script for WordPress &#8211; and it works! I have provide the code below for your reference.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">RULE_0_START<span style="color: #339933;">:</span>
<span style="color: #666666; font-style: italic;"># get the document root
</span>map path into SCRATCH<span style="color: #339933;">:</span>DOCROOT from <span style="color: #339933;">/</span>
<span style="color: #666666; font-style: italic;"># initialize our variables
</span>set SCRATCH<span style="color: #339933;">:</span>ORIG_URL <span style="color: #339933;">=</span> <span style="color: #339933;">%</span><span style="color: #009900;">&#123;</span>URL<span style="color: #009900;">&#125;</span>
set SCRATCH<span style="color: #339933;">:</span>REQUEST_URI <span style="color: #339933;">=</span> <span style="color: #339933;">%</span><span style="color: #009900;">&#123;</span>URL<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># see if theres any queries in our URL
</span>match URL into $ with ^<span style="color: #009900;">&#40;</span><span style="color: #339933;">.*</span><span style="color: #009900;">&#41;</span>\?<span style="color: #009900;">&#40;</span><span style="color: #339933;">.*</span><span style="color: #009900;">&#41;</span>$
<span style="color: #b1b100;">if</span> matched then
set SCRATCH<span style="color: #339933;">:</span>REQUEST_URI <span style="color: #339933;">=</span> $<span style="color:#800080;">1</span>
set SCRATCH<span style="color: #339933;">:</span>QUERY_STRING <span style="color: #339933;">=</span> $<span style="color:#800080;">2</span>
<span style="color: #b1b100;">endif</span>
RULE_0_END<span style="color: #339933;">:</span>
&nbsp;
RULE_1_START<span style="color: #339933;">:</span>
<span style="color: #666666; font-style: italic;"># prepare to search for file, rewrite if its not found
</span>set SCRATCH<span style="color: #339933;">:</span>REQUEST_FILENAME <span style="color: #339933;">=</span> <span style="color: #339933;">%</span><span style="color: #009900;">&#123;</span>SCRATCH<span style="color: #339933;">:</span>DOCROOT<span style="color: #009900;">&#125;</span>
set SCRATCH<span style="color: #339933;">:</span>REQUEST_FILENAME <span style="color: #339933;">.</span> <span style="color: #339933;">%</span><span style="color: #009900;">&#123;</span>SCRATCH<span style="color: #339933;">:</span>REQUEST_URI<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># check to see if the file requested is an actual file or
</span><span style="color: #666666; font-style: italic;"># a directory with possibly an index.  don’t rewrite if so
</span>look <span style="color: #b1b100;">for</span> <span style="color: #990000;">file</span> at <span style="color: #339933;">%</span><span style="color: #009900;">&#123;</span>SCRATCH<span style="color: #339933;">:</span>REQUEST_FILENAME<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">if</span> not exists then
look <span style="color: #b1b100;">for</span> <span style="color: #990000;">dir</span> at <span style="color: #339933;">%</span><span style="color: #009900;">&#123;</span>SCRATCH<span style="color: #339933;">:</span>REQUEST_FILENAME<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">if</span> not exists then
set URL <span style="color: #339933;">=</span> <span style="color: #339933;">/</span>index<span style="color: #339933;">.</span>php?q<span style="color: #339933;">=%</span><span style="color: #009900;">&#123;</span>SCRATCH<span style="color: #339933;">:</span>REQUEST_URI<span style="color: #009900;">&#125;</span>
goto QSA_RULE_START
<span style="color: #b1b100;">endif</span>
<span style="color: #b1b100;">endif</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># if we made it here then its a file or dir and no rewrite
</span>goto <span style="color: #990000;">END</span>
RULE_1_END<span style="color: #339933;">:</span>
&nbsp;
QSA_RULE_START<span style="color: #339933;">:</span>
<span style="color: #666666; font-style: italic;"># append the query string if there was one originally
</span><span style="color: #666666; font-style: italic;"># the same as [QSA,L] for apache
</span>match SCRATCH<span style="color: #339933;">:</span>ORIG_URL into <span style="color: #339933;">%</span> with \?<span style="color: #009900;">&#40;</span><span style="color: #339933;">.*</span><span style="color: #009900;">&#41;</span>$
<span style="color: #b1b100;">if</span> matched then
set URL <span style="color: #339933;">=</span> <span style="color: #339933;">%</span><span style="color: #009900;">&#123;</span>URL<span style="color: #009900;">&#125;</span><span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;%</span><span style="color: #009900;">&#123;</span>SCRATCH<span style="color: #339933;">:</span>QUERY_STRING<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">endif</span>
goto <span style="color: #990000;">END</span>
QSA_RULE_END<span style="color: #339933;">:</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.benhuson.co.uk/2010/03/01/wordpress-permalinks-zeus-server/feed/</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
		<item>
		<title>Customise the Terms and Conditions Checkbox and Link in WP e-Commerce</title>
		<link>http://www.benhuson.co.uk/2010/02/09/wpsc-terms-checkbox/</link>
		<comments>http://www.benhuson.co.uk/2010/02/09/wpsc-terms-checkbox/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 21:15:19 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[E-commerce]]></category>
		<category><![CDATA[WordPress Plugins]]></category>
		<category><![CDATA[WP e-Commerce]]></category>

		<guid isPermaLink="false">http://www.benhuson.co.uk/?p=1403</guid>
		<description><![CDATA[Tweet By default the terms and conditions link on the checkout page in WP e-Commerce activates an overlay popup containing the terms and conditions text you have specified in the admin. But what if you want the link to redirect to a page instead of triggering this popup? You just need to make a small [...]]]></description>
			<content:encoded><![CDATA[
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: left"><a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Ftwitter.com%2Fshare&sref=rss" class="twitter-share-button" data-url="http://www.benhuson.co.uk/2010/02/09/wpsc-terms-checkbox/" data-count="horizontal" data-via="benhuson">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

 
<span class = "facebook-like" style = "height: 25px;  "><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.benhuson.co.uk/2010/02/09/wpsc-terms-checkbox/&layout=button_count&send=false&show_faces=false&width=&action=like&colorscheme=light&font=lucida grande" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:px; height:25px"></iframe></span><p>By default the terms and conditions link on the checkout page in WP e-Commerce activates an overlay popup containing the terms and conditions text you have specified in the admin.</p>
<p><img class="alignnone size-full wp-image-1434 border" title="WPSC Terms Popup" src="http://www.benhuson.co.uk/wp-content/uploads/wpsc-terms-popup.gif" alt="" width="400" height="240" /></p>
<p>But what if you want the link to redirect to a page instead of triggering this popup? You just need to make a small change to your checkout template. Here&#8217;s what you need to do&#8230;</p>
<p><span id="more-1403"></span></p>
<h3>In The Admin</h3>
<p>In the admin, instead of specifying terms and conditions text we are going to enter a URL. Make sure your URL is a full path including &#8216;http://&#8217; as this will make it easier to detect wether the content is a URL or plain text.</p>
<p><img class="alignnone size-full wp-image-1425 border" title="WPSC Settings Terms" src="http://www.benhuson.co.uk/wp-content/uploads/wpsc-settings-terms.gif" alt="" width="400" height="230" /></p>
<h3>Changes in your WP e-Commerce Theme</h3>
<p>Your WP e-Commerce theme files usually reside in the &#8216;wp-content/uploads/wpsc/themes/your-theme&#8217; directory. To change the terms and conditions link to link to another page rather that popup you will need to edit the &#8216;shopping_cart_page.php&#8217; file.</p>
<p>In this file look for the terms and condition code. It will be near the bottom and should look a bit like this:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>297
298
299
300
301
302
303
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>get_option<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'terms_and_conditions'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
&lt;tr&gt;
   &lt;td colspan='2'&gt;
      &lt;input type='checkbox' value='yes' name='agree' /&gt; <span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> TXT_WPSC_TERMS1<span style="color: #339933;">;</span><span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;a class='thickbox' target='_blank' href='<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> get_option<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'siteurl'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;?termsandconds=true&amp;amp;width=360&amp;amp;height=400'&quot;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>' class='termsandconds'&gt;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> TXT_WPSC_TERMS2<span style="color: #339933;">;</span><span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/a&gt;
   &lt;/td&gt;
&lt;/tr&gt;
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endif</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>What we will do is change this code so if the contents of your terms and condition is a link (beginning http://) it will write a link to that page rather than a popup. The new code with the if statement should look like this:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>297
298
299
300
301
302
303
304
305
306
307
308
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> get_option<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'terms_and_conditions'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">''</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
&lt;tr class=&quot;terms&quot;&gt;
   &lt;td colspan='2'&gt;
      &lt;input type='checkbox' value='yes' name='agree' /&gt; <span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> TXT_WPSC_TERMS1<span style="color: #339933;">;</span><span style="color: #000000; font-weight: bold;">?&gt;</span>
      <span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span>get_option<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'terms_and_conditions'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">7</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'http://'</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
         &lt;a target='_blank' href='<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> get_option<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'terms_and_conditions'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>' class='termsandconds'&gt;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> TXT_WPSC_TERMS2<span style="color: #339933;">;</span><span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/a&gt;
      <span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
         &lt;a class='thickbox' target='_blank' href='<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> get_option<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'siteurl'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;?termsandconds=true&amp;amp;width=360&amp;amp;height=400'&quot;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>' class='termsandconds'&gt;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> TXT_WPSC_TERMS2<span style="color: #339933;">;</span><span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/a&gt;
      <span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
   &lt;/td&gt;
&lt;/tr&gt;
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endif</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>And that&#8217;s all there is to it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.benhuson.co.uk/2010/02/09/wpsc-terms-checkbox/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>List Pages at Depth 1.1</title>
		<link>http://www.benhuson.co.uk/2010/01/25/list-pages-at-depth-1-1/</link>
		<comments>http://www.benhuson.co.uk/2010/01/25/list-pages-at-depth-1-1/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 22:33:46 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress Plugins]]></category>

		<guid isPermaLink="false">http://www.benhuson.co.uk/?p=1366</guid>
		<description><![CDATA[Tweet Just released an update to the List Pages at Depth plugin for WordPress. This update fixed a pretty major bug which prevented the list showing the correct branch of subpages when the start depth was greater than 1 (secondary level pages). Now this is fixed you&#8217;ll be able to display a list of only [...]]]></description>
			<content:encoded><![CDATA[
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: left"><a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Ftwitter.com%2Fshare&sref=rss" class="twitter-share-button" data-url="http://www.benhuson.co.uk/2010/01/25/list-pages-at-depth-1-1/" data-count="horizontal" data-via="benhuson">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

 
<span class = "facebook-like" style = "height: 25px;  "><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.benhuson.co.uk/2010/01/25/list-pages-at-depth-1-1/&layout=button_count&send=false&show_faces=false&width=&action=like&colorscheme=light&font=lucida grande" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:px; height:25px"></iframe></span><p><strong>Just released an update to the </strong><a href="http://www.benhuson.co.uk/wordpress-plugins/list-pages-at-depth/"><strong>List Pages at Depth</strong></a><strong> plugin for WordPress.</strong></p>
<p>This update fixed a pretty major bug which prevented the list showing the correct branch of subpages when the start depth was greater than 1 (secondary level pages).</p>
<p>Now this is fixed you&#8217;ll be able to display a list of only tertiary level pages &#8211; Useful if you have a site with a horizontal navigation with drop down menus for secondary level navigation, and want to show and subpages of the secondary level as a list in your sidebar.</p>
<p>What&#8217;s more the plugin now includes a widget so you can easily add a list of subpages into your sidebar.</p>
<p><span id="more-1366"></span></p>
<h3>Widget Examples</h3>
<p>The following configuration will display a list of secondary and tertiary level pages (depths 1 to 2) for the currently selected primary navigation item. The list of pages will show for all pages that are subpages (or sub-subpages) of that primary page.</p>
<p><a href="http://www.benhuson.co.uk/wp-content/uploads/list-pages-at-depth-sec.jpg"><img class="alignnone size-full wp-image-1376" title="List Pages at Depth - Secondary Nav" src="http://www.benhuson.co.uk/wp-content/uploads/list-pages-at-depth-sec.jpg" alt="" width="285" height="505" /></a></p>
<p>The widget below will only display the tertiary level (depth 2) of navigation for subpages of the currently selected secondary level page.</p>
<p><a href="http://www.benhuson.co.uk/wp-content/uploads/list-pages-at-depth-ter.jpg"><img class="alignnone size-full wp-image-1377" title="List Pages at Depth - Tertiary Nav" src="http://www.benhuson.co.uk/wp-content/uploads/list-pages-at-depth-ter.jpg" alt="" width="285" height="505" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.benhuson.co.uk/2010/01/25/list-pages-at-depth-1-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How to ensure WordPress template tags work properly when using multiple WordPress Loops</title>
		<link>http://www.benhuson.co.uk/2009/12/08/template-tags-when-using-multiple-wordpress-loops/</link>
		<comments>http://www.benhuson.co.uk/2009/12/08/template-tags-when-using-multiple-wordpress-loops/#comments</comments>
		<pubDate>Tue, 08 Dec 2009 22:50:08 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Web Developer]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[have_posts()]]></category>
		<category><![CDATA[the_post()]]></category>
		<category><![CDATA[WordPress Loop]]></category>
		<category><![CDATA[WP_Query]]></category>

		<guid isPermaLink="false">http://www.benhuson.co.uk/?p=1276</guid>
		<description><![CDATA[Tweet There are many occasions when you may want to create multiple WordPress Loops &#8211; instructions on how to do this can be found on the WordPress Codex. If you need to keep the original query, it is suggested you create you second loop by creating a new query object. &#60;?php $my_query = new WP_Query&#40;'category_name=special_cat&#38;posts_per_page=10'&#41;; ?&#62; [...]]]></description>
			<content:encoded><![CDATA[
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: left"><a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Ftwitter.com%2Fshare&sref=rss" class="twitter-share-button" data-url="http://www.benhuson.co.uk/2009/12/08/template-tags-when-using-multiple-wordpress-loops/" data-count="horizontal" data-via="benhuson">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

 
<span class = "facebook-like" style = "height: 25px;  "><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.benhuson.co.uk/2009/12/08/template-tags-when-using-multiple-wordpress-loops/&layout=button_count&send=false&show_faces=false&width=&action=like&colorscheme=light&font=lucida grande" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:px; height:25px"></iframe></span><p><strong>There are many occasions when you may want to create multiple WordPress Loops &#8211; instructions on how to do this can be found on the </strong><a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Fcodex.wordpress.org%2FThe_Loop%23Multiple_Loops_Example_1&sref=rss"><strong>WordPress Codex</strong></a><strong>.</strong></p>
<p>If you need to keep the original query, it is suggested you create you second loop by creating a new query object.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #000088;">$my_query</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> WP_Query<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'category_name=special_cat&amp;posts_per_page=10'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$my_query</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">have_posts</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #000088;">$my_query</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">the_post</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
   &lt;!-- Do special_cat stuff... --&gt;
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endwhile</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>This works fine, but if you use more template tags after this loop, they display the content from the last post in the $my_query loop. So, if you want to reference the original loop how should you go about it?</p>
<p><span id="more-1276"></span></p>
<h2>What&#8217;s going on?</h2>
<p>In the above example the $my_query variable is an instance of the WP_Query object containing the results of the custom query.</p>
<p>The &#8216;while&#8217; loop iterates through all the results of our query. Each time $my_query-&gt;have_posts() is called it checks wether the next post in the loop exists and if it does the loop continues to run.</p>
<p>For each post in the loop the $my_query-&gt;the_post() function is called. This populates the global $post variable with the post data which can then be accessed directly through the $post variable or using WordPress template tags like the_title() and the_content();</p>
<p>After the $my_query loop has finished <strong>the global $post variable remains populated</strong> with the last post from the $my_query loop so any template tags used will use this post&#8217;s data, not the data from the post before we started our custom loop.</p>
<h2>So what should we do?</h2>
<p>Because we created a new query $my_query, the previous query still exists in the main $wp_query variable, so all we have to do is repopulate the $post variable using $wp_query and setup the post data again.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$post</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$wp_query</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">post</span><span style="color: #339933;">;</span>
setup_postdata<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$post</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<h2>Could this be made more easy?</h2>
<p>Not really, but maybe a WordPress template tag to do this should be added to WordPress core &#8211; maybe somthing like refresh_post(). This can then be documented in the Codex to provide an &#8216;official&#8217; way of handling multiple loops.</p>
<p>What do you think?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.benhuson.co.uk/2009/12/08/template-tags-when-using-multiple-wordpress-loops/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WP e-Commerce XML Sitemap WordPress Plugin</title>
		<link>http://www.benhuson.co.uk/2009/11/28/wp-e-commerce-xml-sitemap-wordpress-plugin/</link>
		<comments>http://www.benhuson.co.uk/2009/11/28/wp-e-commerce-xml-sitemap-wordpress-plugin/#comments</comments>
		<pubDate>Sat, 28 Nov 2009 22:40:30 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[SEO]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[WP e-Commerce]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.benhuson.co.uk/?p=1267</guid>
		<description><![CDATA[Tweet I was just about to update an old plugin I created to create an XML site map for products in WP e-Commerce&#8230; &#8230;then I stumbled across the WP e-Commerce XML Sitemap plugin by Lee Willis. The plugin worked well with WP e-Commerce 3.7.5 (the latest version) apart from a few minor issues. I got [...]]]></description>
			<content:encoded><![CDATA[
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: left"><a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Ftwitter.com%2Fshare&sref=rss" class="twitter-share-button" data-url="http://www.benhuson.co.uk/2009/11/28/wp-e-commerce-xml-sitemap-wordpress-plugin/" data-count="horizontal" data-via="benhuson">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

 
<span class = "facebook-like" style = "height: 25px;  "><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.benhuson.co.uk/2009/11/28/wp-e-commerce-xml-sitemap-wordpress-plugin/&layout=button_count&send=false&show_faces=false&width=&action=like&colorscheme=light&font=lucida grande" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:px; height:25px"></iframe></span><p><strong>I was just about to update an old plugin I created to create an XML site map for products in <a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Fwww.instinct.co.nz%2Fe-commerce%2F&sref=rss">WP e-Commerce&#8230;</a></strong></p>
<p>&#8230;then I stumbled across the <a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Fwordpress.org%2Fextend%2Fplugins%2Fwp-e-commerce-xml-sitemap%2F&sref=rss">WP e-Commerce XML Sitemap</a> plugin by <a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Fwww.leewillis.co.uk&sref=rss">Lee Willis</a>.</p>
<p>The plugin worked well with WP e-Commerce 3.7.5 (the latest version) apart from a few minor issues. I got in touch with Lee and suggested a few tweaks/fixes &#8211; he has just released an updated version:</p>
<ul>
<li>Unpublished products are now not added to sitemap.</li>
<li>Is now compatible with WordPress installations with custom table prefix.</li>
</ul>
<p>You can <a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Fwordpress.org%2Fextend%2Fplugins%2Fwp-e-commerce-xml-sitemap&sref=rss">download the latest version here&#8230;</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.benhuson.co.uk/2009/11/28/wp-e-commerce-xml-sitemap-wordpress-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New style hooks for WordPress Theme Developers in WP e-Commerce 3.7.5</title>
		<link>http://www.benhuson.co.uk/2009/11/12/new-style-hooks-for-wordpress-theme-developers-in-wp-e-commerce-3-7-5/</link>
		<comments>http://www.benhuson.co.uk/2009/11/12/new-style-hooks-for-wordpress-theme-developers-in-wp-e-commerce-3-7-5/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 17:16:17 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[E-Commerce]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress Plugins]]></category>
		<category><![CDATA[WordPress Themes]]></category>
		<category><![CDATA[WP e-Commerce]]></category>

		<guid isPermaLink="false">http://www.benhuson.co.uk/?p=1170</guid>
		<description><![CDATA[Tweet The latest version of Instinct&#8217;s WordPress e-commerce plugin uses the WordPress body_class filter to add classes to the HTML body tag. WP e-Commerce 3.7.5 adds the following styles to the body tag: wpsc wpsc-home wpsc-single-product wpsc-single-product-id wpsc-category wpsc-category-id wpsc-group-id wpsc-shopping-cart wpsc-transaction-details wpsc-user-account These extra classes will give you more flexibility when designing themes for [...]]]></description>
			<content:encoded><![CDATA[
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: left"><a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Ftwitter.com%2Fshare&sref=rss" class="twitter-share-button" data-url="http://www.benhuson.co.uk/2009/11/12/new-style-hooks-for-wordpress-theme-developers-in-wp-e-commerce-3-7-5/" data-count="horizontal" data-via="benhuson">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

 
<span class = "facebook-like" style = "height: 25px;  "><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.benhuson.co.uk/2009/11/12/new-style-hooks-for-wordpress-theme-developers-in-wp-e-commerce-3-7-5/&layout=button_count&send=false&show_faces=false&width=&action=like&colorscheme=light&font=lucida grande" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:px; height:25px"></iframe></span><p><strong>The latest version of Instinct&#8217;s WordPress e-commerce plugin uses the WordPress body_class filter to add classes to the HTML body tag.</strong></p>
<p><a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Fwww.instinct.co.nz%2Fblog%2F2009%2F11%2Fwp-e-commerce-plugin-3-7-5-ready-for-prime-time%2Ftrackback%2F&sref=rss">WP e-Commerce 3.7.5</a> adds the following styles to the body tag:</p>
<ul>
<li>wpsc</li>
<li>wpsc-home</li>
<li>wpsc-single-product</li>
<li>wpsc-single-product-id</li>
<li>wpsc-category</li>
<li>wpsc-category-id</li>
<li>wpsc-group-id</li>
<li>wpsc-shopping-cart</li>
<li>wpsc-transaction-details</li>
<li>wpsc-user-account</li>
</ul>
<p>These extra classes will give you more flexibility when designing themes for WP e-Commerce.</p>
<p><span id="more-1170"></span></p>
<h3>Where are these classes included?</h3>
<p><strong>wpsc</strong><br />
Included in every WP e-Commerce page.</p>
<p><strong>wpsc-home</strong><br />
Included on the main WP e-Commerce shop page.</p>
<p><strong>wpsc-single-product &amp; wpsc-single-product-id</strong><br />
Included on single product pages. The wpsc-single-product-id class allows you to set css rules for a single product based on the product id.</p>
<p><strong>wpsc-category &amp; wpsc-category-id</strong><br />
Included on category and individual product pages. The wpsc-category-id class allows you to set css rules for different categories. As these classes are also applied to single product pages, if a product appears in more than one category you could style a product page differently depending on which category you click through from.</p>
<p><strong>wpsc-group-id</strong><br />
Included on category and single product pages. The group id is set based on the group in which the current category resides.</p>
<p><strong>wpsc-shopping-cart</strong><br />
Including on the shop cart checkout page.</p>
<p><strong>wpsc-transaction-details</strong><br />
Including on the transaction details page displayed after a successful purchase.</p>
<p><strong>wpsc-user-account</strong><br />
Including on the WP e-Commerce user account pages.</p>
<h3>Ideas how to use these classes in your WP e-Commerce theme&#8230;</h3>
<ol>
<li>Style a special product differently using wpsc-single-product-id.</li>
<li>Style products in a sale category to display differently using wpsc-category-id.</li>
<li>Create a group for brands with brands as sub-categories and differentiate this view from your standard product categories using wpsc-group-id.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.benhuson.co.uk/2009/11/12/new-style-hooks-for-wordpress-theme-developers-in-wp-e-commerce-3-7-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Categories and Tags in WP e-Commerce</title>
		<link>http://www.benhuson.co.uk/2009/07/23/categories-and-tags-in-wp-e-commerce/</link>
		<comments>http://www.benhuson.co.uk/2009/07/23/categories-and-tags-in-wp-e-commerce/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 22:26:33 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Web Developer]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Categories]]></category>
		<category><![CDATA[E-commerce]]></category>
		<category><![CDATA[Poll]]></category>
		<category><![CDATA[Tags]]></category>
		<category><![CDATA[WP e-Commerce]]></category>

		<guid isPermaLink="false">http://www.benhuson.co.uk/?p=730</guid>
		<description><![CDATA[Tweet I&#8217;ve been using the WP e-Commerce plugin for WordPress a lot recently and delving behind the scenes to make it do want I want it to. In the process I have submitted a couple of style changes to the core to style it to be more like WordPress out-of-the-box. One thing I think should [...]]]></description>
			<content:encoded><![CDATA[
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: left"><a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Ftwitter.com%2Fshare&sref=rss" class="twitter-share-button" data-url="http://www.benhuson.co.uk/2009/07/23/categories-and-tags-in-wp-e-commerce/" data-count="horizontal" data-via="benhuson">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

 
<span class = "facebook-like" style = "height: 25px;  "><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.benhuson.co.uk/2009/07/23/categories-and-tags-in-wp-e-commerce/&layout=button_count&send=false&show_faces=false&width=&action=like&colorscheme=light&font=lucida grande" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:px; height:25px"></iframe></span><p>I&#8217;ve been using the <a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Fwww.instinct.co.nz%2Fwp-e-commerce-plugin-3-7-rc2%2Ftrackback%2F&sref=rss">WP e-Commerce plugin</a> for WordPress a lot recently and delving behind the scenes to make it do want I want it to. In the process I have submitted a couple of style changes to the core to style it to be more like WordPress out-of-the-box.</p>
<p>One thing I think should be changed to bring the product edit screen in-line with the WordPress post/page editing layouts is the <a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Fwww.instinct.co.nz%2Fwp-e-commerce-37-questions%2Fcomment-page-1%2F%23comment-3444&sref=rss" target="_blank">separation of the Categories and Tags boxes</a>.</p>
<p><span id="more-730"></span></p>
<h3>How things are&#8230;</h3>
<p>The WordPress post/page edit screen looks like this:</p>
<p><img class="border" title="WordPress Category and Tags Boxes" src="http://www.benhuson.co.uk/wp-content/uploads/cattag-wordpress.jpg" alt="WordPress Category and Tags Boxes" width="319" height="431" /></p>
<p>Currently, editing Categories and Tags in WP e-Commerce looks like this:</p>
<p><img class="border" title="WP e-Commerce Category and Tags Boxes" src="http://www.benhuson.co.uk/wp-content/uploads/cattag-wpecommerce.jpg" alt="WP e-Commerce Category and Tags Boxes" width="396" height="226" /></p>
<h3>How I think things should be&#8230;</h3>
<p>A few times I have run into problems with the current WP e-Commerce categories and tag box in that if I have long category names, they wrap very badly on smaller screens where there isn&#8217;t much space &#8211; the tags filed squashes everything over to the left.</p>
<p>I propose that the categories and tags box be separated into a similar layout to the way WordPress does things. This would add UI consistency throughout the admin and the boxes would be expandable allowing you to easily minimise the tags box if you only use it infrequently.</p>
<p>So you would end up with something like this:</p>
<p><img class="border" title="Suggested Category and Tags Boxes" src="http://www.benhuson.co.uk/wp-content/uploads/cattag-suggested.jpg" alt="Suggested Category and Tags Boxes" width="319" height="389" /></p>
<p>It is essentially a mirror version of the panels in the main WordPress admin but with some of the extra functionality removed.</p>
<p>In WP e-Commerce it is possible to have multiple types of category grouping such as Categories and Brands. In this scenario I would suggest that the scrolling categories area in the Categories box (illustrated above) is duplicated so that there are two scrolling areas &#8211; one for categories and one for brands.</p>
<h3>So, what do you think?</h3>
<p>That&#8217;s just my opinion so please vote and leave your comments below and who knows, if enough of you like my idea then it might find it&#8217;s way into a future release of WP e-Commerce.</p>
Note: There is a poll embedded within this post, please visit the site to participate in this post's poll.
]]></content:encoded>
			<wfw:commentRss>http://www.benhuson.co.uk/2009/07/23/categories-and-tags-in-wp-e-commerce/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress Trash</title>
		<link>http://www.benhuson.co.uk/2009/07/21/wordpress-trash/</link>
		<comments>http://www.benhuson.co.uk/2009/07/21/wordpress-trash/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 20:09:58 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Web Developer]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Comments]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.benhuson.co.uk/?p=924</guid>
		<description><![CDATA[Tweet A great feature being worked on for a future version of WordPress (hopefully 2.9) was added to the the development version today. The &#8216;Trash&#8217; functionality will work in the same way as your Mac or the Recycle bin on Windows &#8211; when you delete an item, it will be moved to the Trash from [...]]]></description>
			<content:encoded><![CDATA[
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: left"><a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Ftwitter.com%2Fshare&sref=rss" class="twitter-share-button" data-url="http://www.benhuson.co.uk/2009/07/21/wordpress-trash/" data-count="horizontal" data-via="benhuson">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

 
<span class = "facebook-like" style = "height: 25px;  "><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.benhuson.co.uk/2009/07/21/wordpress-trash/&layout=button_count&send=false&show_faces=false&width=&action=like&colorscheme=light&font=lucida grande" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:px; height:25px"></iframe></span><p><strong>A great feature being worked on for a future version of WordPress (hopefully 2.9) was </strong><a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Fcore.trac.wordpress.org%2Fchangeset%2F11731&sref=rss"><strong>added to the the development version</strong></a><strong> today.</strong></p>
<p>The &#8216;Trash&#8217; functionality will work in the same way as your Mac or the Recycle bin on Windows &#8211; when you delete an item, it will be moved to the Trash from where it can be recovered or permanently deleted.</p>
<p>The functionality is currently being tested out with comments and hopefully if it works well will be roled out to other WordPress assets like post, pages and links.</p>
<p><em>So no more impulse deleting of something, then wishing you hadn&#8217;t&#8230; Phew!</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.benhuson.co.uk/2009/07/21/wordpress-trash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Integrating Google XML Sitemaps with Your WordPress Plugin</title>
		<link>http://www.benhuson.co.uk/2009/07/12/integrate-google-xml-sitemaps/</link>
		<comments>http://www.benhuson.co.uk/2009/07/12/integrate-google-xml-sitemaps/#comments</comments>
		<pubDate>Sun, 12 Jul 2009 19:22:50 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[SEO]]></category>
		<category><![CDATA[Web Developer]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[XML & RSS]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[WP e-Commerce]]></category>
		<category><![CDATA[XML Sitemaps]]></category>

		<guid isPermaLink="false">http://www.benhuson.co.uk/?p=822</guid>
		<description><![CDATA[Tweet Note: Please read my more recent post about Integrating Google XML Sitemaps with the latest version of WP e-Commerce using a plugin by Lee Willis. One plugin I recommend that everyone should add to their WordPress installation is the Google XML Sitemaps plugin. This plugin will automatically generate an XML sitemap of your posts [...]]]></description>
			<content:encoded><![CDATA[
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: left"><a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Ftwitter.com%2Fshare&sref=rss" class="twitter-share-button" data-url="http://www.benhuson.co.uk/2009/07/12/integrate-google-xml-sitemaps/" data-count="horizontal" data-via="benhuson">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

 
<span class = "facebook-like" style = "height: 25px;  "><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.benhuson.co.uk/2009/07/12/integrate-google-xml-sitemaps/&layout=button_count&send=false&show_faces=false&width=&action=like&colorscheme=light&font=lucida grande" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:px; height:25px"></iframe></span><p><div class="note"><div class="noteclassic"><strong>Note:</strong> Please read my more recent post about <a href="http://www.benhuson.co.uk/2009/11/28/wp-e-commerce-xml-sitemap-wordpress-plugin/">Integrating Google XML Sitemaps</a> with the latest version of WP e-Commerce using a <a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Fwww.leewillis.co.uk%2Fwordpress-plugins%2F&sref=rss">plugin by Lee Willis</a>.</div></div></p>
<p><strong>One plugin I recommend that everyone should add to their WordPress installation is the </strong><a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Fwordpress.org%2Fextend%2Fplugins%2Fgoogle-sitemap-generator%2F&sref=rss"><strong>Google XML Sitemaps plugin</strong></a><strong>. </strong></p>
<p>This plugin will automatically generate an <a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Fwww.sitemaps.org%2F&sref=rss">XML sitemap</a> of your posts and pages and ping supporting search engines to notify them that the sitemap has been updated.</p>
<p>But the best thing about this plugin for other plugin developers is it provides hooks so you can &#8216;borrow&#8217; it&#8217;s functionality so that your plugin can add additional pages into the XML sitemap that is generated.</p>
<p>So if you&#8217;re a WordPress plugin developer, read on&#8230;</p>
<p><span id="more-822"></span></p>
<h3>How to add pages to the XML sitemap</h3>
<p>To illustrate how to implement the XML Sitemaps hook, I will base the example on the <a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Fwww.instinct.co.nz%2F3-7-1-feature-prioritization%2Ftrackback%2F&sref=rss">WP e-Commerce plugin</a> (please note, I originally implemeted this with version 3.6.12 of the WP e-Commerce plugin so it may not work with more recent versions). We will create a function that will add all of this plugin&#8217;s product pages into the XML sitemap produced by Google XML Sitemaps.</p>
<p>The Google XML Sitemaps plugin provides the hook &#8220;sm_buildmap&#8221; which gets triggered whenever the plugin re-builds the sitemap file. We are going to create a function &#8220;wp_ecommerce_sm&#8221; which will get called by this hook.</p>
<p>So, here&#8217;s the function code:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> wp_ecommerce_sm<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
   <span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">;</span>
   <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #990000;">class_exists</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'GoogleSitemapGenerator'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000088;">$generatorObject</span> <span style="color: #339933;">=</span> <span style="color: #339933;">&amp;</span>GoogleSitemapGenerator<span style="color: #339933;">::</span><span style="color: #004000;">GetInstance</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #000088;">$sql</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;SELECT DISTINCT * FROM `&quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">prefix</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;product_list` WHERE `active` IN('1') ORDER BY `id` DESC&quot;</span><span style="color: #339933;">;</span>
      <span style="color: #000088;">$product_list</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get_results</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$sql</span><span style="color: #339933;">,</span> ARRAY_A<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$product_list</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$product</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
         <span style="color: #000088;">$purchase_link</span> <span style="color: #339933;">=</span> wpsc_product_url<span style="color: #009900;">&#40;</span><span style="color: #000088;">$product</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'id'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
         <span style="color: #000088;">$purchase_link</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'&amp;amp;'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'&amp;'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$purchase_link</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
         <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$generatorObject</span> <span style="color: #339933;">!=</span> <span style="color: #009900; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$generatorObject</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">AddUrl</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$purchase_link</span><span style="color: #339933;">,</span> <span style="color: #990000;">time</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;daily&quot;</span><span style="color: #339933;">,</span> <span style="color:#800080;">0.5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span>
   <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
add_action<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;sm_buildmap&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;wp_ecommerce_sm&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<h3>The main points to note in this function are&#8230;</h3>
<p>Check that the Google XML Sitemaps exists (is installed):</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>3
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #990000;">class_exists</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'GoogleSitemapGenerator'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span></pre></td></tr></table></div>

<p>Get an instance of the Google XML Sitemap plugin:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>4
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$generatorObject</span> <span style="color: #339933;">=</span> <span style="color: #339933;">&amp;</span>GoogleSitemapGenerator<span style="color: #339933;">::</span><span style="color: #004000;">GetInstance</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Loop through all our additional pages that we want to add to the sitemap, in this case the WP e-Commerce product pages:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>5
6
7
8
9
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$sql</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;SELECT DISTINCT * FROM `&quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">prefix</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;product_list` WHERE `active` IN('1') ORDER BY `id` DESC&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$product_list</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get_results</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$sql</span><span style="color: #339933;">,</span> ARRAY_A<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$product_list</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$product</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
   <span style="color: #666666; font-style: italic;">// Add pages to sitemap here</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>And within our loop, add our pages like this:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>10
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$generatorObject</span> <span style="color: #339933;">!=</span> <span style="color: #009900; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$generatorObject</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">AddUrl</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$purchase_link</span><span style="color: #339933;">,</span> <span style="color: #990000;">time</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;daily&quot;</span><span style="color: #339933;">,</span> <span style="color:#800080;">0.5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>And lastly we need to add the hook to call this function whenever the XML sitemap is rebuilt:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">add_action<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;sm_buildmap&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;wp_ecommerce_sm&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<h3>Is that all there is to it?</h3>
<p>Well, not really. Your still have to trigger the sitemap to re-build to include your new pages. You can do this manually by going to your XML Sitemaps setting page and clicking the link to rebuild to force the sitemap to re-build. Ideally however you would try to get your plugin to do this automatically whenever you add/edit/delete one of your pages. I couldn&#8217;t find an obvious hook to easily do this so that is something I would like to see adding in a future version of the <a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Fwww.arnebrachhold.de%2Fprojects%2Fwordpress-plugins%2Fgoogle-xml-sitemaps-generator%2Ftrackback%2F&sref=rss">Google XML Sitemaps</a> plugin.</p>
<h3>Download</h3>
<p>Download the above code packaged as a WordPress plugin using the link below:</p>
<a href="http://www.benhuson.co.uk/downloads/wp-e-commerce-smphp.zip" title="WP e-Commerce XML Sitemap Plugin (43)" >Click here to download...</a>
]]></content:encoded>
			<wfw:commentRss>http://www.benhuson.co.uk/2009/07/12/integrate-google-xml-sitemaps/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>WordPress 2.8 Widget API</title>
		<link>http://www.benhuson.co.uk/2009/06/14/wordpress-28-widget-api/</link>
		<comments>http://www.benhuson.co.uk/2009/06/14/wordpress-28-widget-api/#comments</comments>
		<pubDate>Sun, 14 Jun 2009 09:39:48 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Web Developer]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Widgets]]></category>

		<guid isPermaLink="false">http://www.benhuson.co.uk/?p=801</guid>
		<description><![CDATA[Tweet I love the new widgets API in WordPress 2.8 I followed the excellent tutorial at WPengineer.com which gives a great overview about how to create a widget using the new API. Initially, the widget I created by following the guide seemed to &#8216;crash&#8217; WordPress when I installed it. After a little investigation I tracked [...]]]></description>
			<content:encoded><![CDATA[
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: left"><a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Ftwitter.com%2Fshare&sref=rss" class="twitter-share-button" data-url="http://www.benhuson.co.uk/2009/06/14/wordpress-28-widget-api/" data-count="horizontal" data-via="benhuson">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

 
<span class = "facebook-like" style = "height: 25px;  "><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.benhuson.co.uk/2009/06/14/wordpress-28-widget-api/&layout=button_count&send=false&show_faces=false&width=&action=like&colorscheme=light&font=lucida grande" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:px; height:25px"></iframe></span><p><strong>I love the new widgets API in <a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Fwordpress.org%2Fdevelopment%2F2009%2F06%2Fwordpress-28%2Ftrackback%2F&sref=rss">WordPress 2.8</a></strong></p>
<p>I followed the excellent tutorial at <a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Fwpengineer.com%2Fwordpress-built-a-widget%2Ftrackback%2F&sref=rss">WPengineer.com</a> which gives a great overview about how to create a widget using the new API. Initially, the widget I created by following the guide seemed to &#8216;crash&#8217; WordPress when I installed it. After a little investigation I tracked this down to the following&#8230;</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> widget_myuniquewidget_register<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
   register_sidebar_widget<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'My Unique Widget'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'widget_myuniquewidget'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #339933;">&lt;</span>strong<span style="color: #339933;">&gt;</span>add_action<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'init'</span><span style="color: #339933;">,</span> widget_myuniquewidget_register<span style="color: #009900;">&#41;</span><span style="color: #339933;">;&lt;/</span>strong<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>

<p>You <strong>must</strong> initialise the register_sidebar_widget function by hooking into the &#8216;init&#8217; action. Failure to do so means the function is called too early which will cause problems. For more information read <a href="http://redirectingat.com?id=3206X604054&xs=1&url=http%3A%2F%2Fcodex.wordpress.org%2FWordPress_Widgets_Api&sref=rss">WordPress Widgets API</a> on the WordPress Codex.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.benhuson.co.uk/2009/06/14/wordpress-28-widget-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

