WordPress plugin Archives for a category

Warning

This plugin is no longer maintained and not tested with the current version of WordPress, so I suggest not to use it anymore. This page is kept as an archive.

Introduction

For the new version of this website I wanted to show a list of monthly archives, limited to posts of a specific category. The software used to run this website is WordPress but the wp_get_archives() function, to get a list of archives, does not have the ability to filter on category. So I created the 'Archives for a category' plugin that enhances this function to show archive links for a specific category.

Installation

  1. Download the plugin zip file and unzip the file in a temporary directory.
  2. Put the kwebble_archives_by_cat.php file in your WordPress plugin directory:
    <your wordpress dir>/wp-content/plugins
  3. Activate the plugin 'Archives for a category' on the Plugin Management page of the WordPress administration panel.
  4. Optionally disable the canonical URLs from the menu Settings | Kwebble.
    A WordPress feature added in version 2.3, called canonical URLs, redirects browsers on certain URLs. This also happens with the URLs for the archives with a cat parameter. This causes the archive pages to contain posts which do not belong to the selected period.

    To solve this problem the plugin can disable canonical URLs. This uses the technique used in the Disable Canonical URL Redirection plugin Mark Jaquith made. So if you are already using that plugin you don't need to change the setting for this plugin.
    To disable canonical URLs go to the administration section of your blog, choose Settings and the Kwebble settings. On that page you will find a checkbox to disable canonical URLs.

Usage

After installing and activating the plugin the wp_get_archives() function accepts a 'cat' parameter to specify the categories of posts to show in the list of archives. The value of the 'cat' parameter must be a list of one or more category ID's, separated by comma's.

If you specify the value of a category ID the posts from that category will be used to create the list of archives. If you place a minus sign '-' in front of an ID the posts from that category will be excluded.

Depending on the number of categories, your use of them and selection of categories to include in the archive list it may be easier to specify all categories to include or just those to exclude.

You need to make sure the template used to show each archive displays posts from the selected category. I'm using category specific templates on this site, like category-id where id is the ID of the category to display. You can use other templates in the template hierarchy, but make sure the template shows items of the categories you specify.

At some WordPress version the categories ID's are no longer visible on the administration pages. You can find the ID of a category by opening the page to edit the category and inspect the URL of that page. The value after cat_ID= is the ID of the category.

Examples

Show the default monthly list of archives for category 1:

<?php wp_get_archives('cat=1'); ?>

The same list, but with posts from categories 1 and 3:

<?php wp_get_archives('cat=1,3'); ?>

Use posts from all categories except category 2:

<?php wp_get_archives('cat=-2'); ?>

Use posts from all categories except categories 2 and 8:

<?php wp_get_archives('cat=-2,-8'); ?>

Create a list of archives for category 1 as a dropdown box:

<?php wp_get_archives('format=option&cat=1'); ?>

Limitations

This plugin does not work for weekly archives. The list with archive links is correct, but the links themselves do not include the category. So when used, WordPress will not filter the resulting page on the category. The technical reason is that WordPress does not apply filters when the links for weekly archives are generated, so the plugin can't change them. Perhaps in a next version of WordPress…

This plug-in was developed and tested to work correctly with WordPress version 2.7.1, but it probably works with earlier versions back to 2.2.1.

Older versions

These are earlier versions of the plugin. Use them only if you have a specific reason for not installing the current version.

  1. 1.4a March 27, 2009 Download

    • Corrected post count when posts belong to multiple categories.
    • SQL queries now respect the configured SQL table prefix.
    • Templates with multiple calls to wp_get_archives(), with and without ‘cat’ parameter, generate correct URL’s.
  2. 1.4 February 22, 2009 Download

    Added option to exclude categories.

  3. 1.3 January 6, 2008 Download

    Added support for multiple categories.

  4. 1.2 October 23, 2007 Download

    Added support for WordPress 2.3.1.

  5. 1.0 August 15, 2007 Download

    Initial version, works with WordPress 2.2.1.

Copyright

Copyright 2007, 2008, 2009 Rob Schlüter. All rights reserved.

Licensing terms

  • You may use, change and redistribute this software provided the copyright notice above is included.
  • This software is provided without warranty, you use it at your own risk.