Kwebble : Blog

Label: plugin

  • Archives for a category WordPress plugin

    Gepubliceerd op 15 augustus 2007 in Programming. 194 reacties

    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.

    Version 1.4a

    27-03-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.

    Version 1.4

    22-02-2009 – Added option to exclude categories. Download.

    Version 1.3

    6-01-2008 – Added support for multiple categories. Download.

    Version 1.2

    23-11-2007 – Added support for WordPress 2.3.1. Download.

    Version 1.0

    15-08-2007 – Initial version, works with WordPress 2.2.1. Download.

    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.
    • php
    • plugin
    • wordpress
  • Putting the geo position in a Wordpress RSS feed

    Gepubliceerd op 2 oktober 2005 in Programming. 3 reacties

    The last few days I’ve been looking at adding geographic information to articles on this website. For WordPress, the software this site is running on, I found the Geo plugin with which you can store geographic coordinates for an article. The plugin adds this information to the page of each article, but not in the RSS feed, so I made a function that does this, though not automatically.

    To use it, start with adding the following function to the Geo plugin. I’m using version 1.0, don’t know if it works in earlier versions:

    /**
     * Returns the tags with geo information for inclusion in RSS 2.0 feeds.
     *
     * Include a call to this function inside the <item> tag to
     * add tags with geo information if available.
     * To keep the feed valid add these namespace declarations to the <rss> tag:
     *    xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
     *    xmlns:icbm="http://postneo.com/icbm"
     *    xmlns:geourl="http://geourl.org/rss/module/"
     */
    function get_the_rss_geotags() {
    	global $wp_query;
    
    	if(!get_settings('use_geo_positions')) return;
    
    	list($lat, $lon) = split(',', get_post_meta($wp_query->post->ID, '_geo_location', true));
    	if ($lat == '' || $lon == '') {
    		if (get_settings('use_default_geourl')){
    			// send the default here
    			$lat = get_settings('default_geourl_lat');
    			$lon = get_settings('default_geourl_lon');
    		}
    	}
    	if ($lat != '' && $lon != '') {
    		echo "<geo :lat>$lat</geo><geo :long>$lon</geo>\n"
    				. "<icbm :latitude>$lat</icbm><icbm :longitude>$lon</icbm>\n"
    				. "<geourl :longitude>$lon</geourl><geourl :latitude>$lat</geourl>\n";
    	}
    }
    

    Now you can add this line to wp-rss2.php, somewhere inside the <item> tag:

    <?php echo get_the_rss_geotags(); ?>
    

    Also remember to add these namespace declarations to the rss tag:

    <rss version=”2.0”
    	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
    	xmlns:icbm="http://postneo.com/icbm"
    	xmlns:geourl="http://geourl.org/rss/module/">
    

    That’s it.

    • geocode
    • php
    • plugin
    • rss
    • wordpress
  • Fighting Flash with Firefox

    Gepubliceerd op 22 februari 2005 in Artikelen.

    Firefox, my browser of choice, does not show Flash content with the default installation, but you can easily download Flash support and it will show up. But do you want it to show up? For nearly all of the the sites I visit I don’t, because the Flash movies are only annoying.

    So, until recently I didn’t install the Flash support which meant I regularly got a little toolbar notifying me I was missing some content. If I suspected it was something I really wanted to see I switched to Internet Explorer. By the way, the Firefox IE view extension makes switching very easy by adding a ‘View This Page in IE’ option to the right-click menu.

    But I finally installed the Flash extension, because using IE became more and more frustrating, missing things like the Ctrl-click to open a link in a new tab and search-as-you-type. Not long after I installed Flash support, sites I thought I knew suddenly showed blinking ads and other distracting messages never visible before.

    What I wanted was to get rid of the Flash garbage but still have the ability to view it if I wanted. So I did some searching and found FlashBlock, an extension that replaces all Flash content on a page with a icon to that will show the Flash content when clicked. Now I’m in charge again.

    • firefox
    • flash
    • plugin
  • Rubrieken

    • Artikelen
    • Foto's
    • Links
    • Media
    • Overheid
    • Programming
  • Recente Berichten

    • A trim() method for the JavaScript String class
    • Is u iets opgevallen?
    • Tip: use the axis:axis:1.4 Maven artifact if you need Axis 1.4 support
    • Google Closure tools
    • Google en Microsoft indexeren tweets
  • Abonneren

    • Atom feed Artikelen
    • Atom feed Reacties
  • Archief

© Rob Schlüter - Contact