Taxonomy Support
I wrote recently about building a brand directory using a fantastic feature of WordPress called “Taxonomies”. Now that that feature is live I’ve realised that a number of my favourite WordPress plugins simply don’t support taxonomies.
Among the casualities were Google XML Sitemaps, and the otherwise excellent Headspace2.
Now, the beauty of open source is that when you get an itch like this, you can go and scratch it. So, I whipped out my coding gloves and set to work.
The results are below:
Google XML Sitemaps
The patch below will ensure that the pages for all of your taxonomy terms are listed in your sitemap – helping Google find the pages quicker.
http://www.leewillis.co.uk/patches/google-sitemap-generator/include_taxonomies.txt
HeadSpace2
The patch below lets you add %%term_description%% so you can populate your META tags properly on your term pages – great for us and our product directory.
http://www.leewillis.co.uk/patches/taxonomy_support_for_headspace/patch_v2.diff
Both of these have been submitted to the plugin authors – so hopefully they’ll get included by default in a future release. If you find them useful – please add to the threads here:
August 24, 2009 at 10:32 pm
There’s an updated version of the patch for Google XML Sitemaps v3.1.5 here:
http://www.leewillis.co.uk/patches/google-sitemap-generator/include_taxonomies_v3.1.5.txt
September 5, 2009 at 8:05 pm
And another update against version 3.1.6 here. This version also calculates a modification date based on the most recent article tagged with a term – which should help Google pick up changes to your term archive pages:
http://www.leewillis.co.uk/patches/google-sitemap-generator/include_taxonomies_v3.1.6.txt
September 15, 2009 at 3:01 am
wow. the Goog XML Siteap patch is much needed – great work.
now that i found it, what do i do with it / where do i put it / how ..?
September 15, 2009 at 8:58 am
Hi, You need to apply the patch to your current plugin using the UNIX “patch” utility. Quick example below (This assumes that you’ve got shell access to your webhost):
Download the patch (Make sure to grab the right version for the version of the plugin you’ve got installed), and save it in the plugin directory (wp-content/plugins/google-sitemap-generator) as patch.txt. Then run the following commands:
$ cd wp-content/plugins/
$ patch -p1 < patch.txt
If you don't have any joy with that, then let me know, and I'll try and put some ready-patched versions up – but that won't be until tonight I'm afraid …
September 15, 2009 at 7:57 pm
Since I’ve had a couple of requests from people who aren’t really into patching – I’ve put copies of the ready patched files here:
http://www.leewillis.co.uk/patches/google-sitemap-generator/3.1.6/sitemap-core.php
http://www.leewillis.co.uk/patches/google-sitemap-generator/3.1.6/sitemap-ui.php
Simply put these in wp-content/plugins/google-sitemap-generator in place of the current versions and you’ll get the new functionality.
Note: These are for version 3.1.6 of the plugin only.
September 16, 2009 at 1:01 am
wow. worked like a dream Lee – thank you.
October 25, 2009 at 2:18 pm
@Lee,
google sitemap generator 3.1.7 is out..so will your patches work with it ?
October 25, 2009 at 3:51 pm
@eddai – Actually version 3.1.7 should already support custom taxonomies – Arne (The developer) accepted my patches – I just hadn’t got around to updating this post just yet. Hope that helps.
October 25, 2009 at 5:00 pm
Actually – there’s a really small bug in 3.1.7 that causes the modification dates to not show up properly. Fortunately the fix is simple – just add the following to the end of the $lastMods query on line 2198:
GROUP BY r.term_taxonomy_id
So the whole query reads:
SELECT
r.term_taxonomy_id AS term_id,
UNIX_TIMESTAMP(MAX(post_date_gmt)) as mod_date
FROM
{$wpdb->posts} p , {$wpdb->term_relationships} r
WHERE
p.ID = r.object_id
AND p.post_status = ‘publish’
AND p.post_type = ‘post’
AND p.post_password = ”
AND r.term_taxonomy_id IN ( “. implode(‘,’,$termIDs) .”)
GROUP BY r.term_taxonomy_id