Display an image for each category associated with a post.
Display an image for each category associated with a post.
Notes:
This plugin provides the templates tag c2c_the_category_image()
which basically reproduces and extends the functionality of WordPress’s core function the_category()
to add the ability to display a category image instead of the category name in the link to the category archive. With its $image_extensions argument defaulted to ""
, the plugin could be a drop-in replacement for the_category()
. As is done in the_category()
, the image or text for each category is also a link back to that category’s archive.
Related info about the function:
Must be run inside “the loop”.
c2c_get_category_image_list() is another provided function, which is identical to c2c_the_category_image()
except that it doesn’t echo the result.
Links: Plugin Homepage | Plugin Directory Page | Author Homepage
The plugin provides one optional template tag for use in your theme templates.
<?php function c2c_the_category_image( $seperator='', $parents='', $image_extensions='png gif jpg', $image_dir='/wp-content/images/', $use_name_if_no_image=false, $start_from='begin', $limit=999 ) ?>
This displays the image associated with a post’s categories.
$separator
Optional argument. The text and/or HTML to appear between each of a post’s category images.
$parents
Optional argument. Allows you to specify if you want ancestor categories of a post’s category to be imaged and linked as well. Valid options are ‘multiple’, ‘single’, and ”. Default is ”.
$image_extensions
Optional argument. A space-separated list of image extensions (case insensitive). If defined as ” then no image is retrieved and the category name is displayed instead (a la the_category()
). Default is ‘png gif jpg’.
$image_dir
Optional argument. The directory in which the category image(s) reside. The value should be a location relative to the main URL of your blog. Default is ‘/wp-content/images/’
$use_name_if_no_image
Optional argument. Boolean value (true or false) indicating if the name of the category should be displayed for each category that does not have an associated image. Default is false.
$start_from
Optional argument. How to traverse the list of post’s categories; either ‘begin’ or ‘end’. Default is ‘begin’
$limit
Optional argument. The maximum number of category images to be displayed. Default is 999 (basically, no limit)
$post_id
Optional argument. The Post ID. If false, then use the current post (i.e. while in the loop). Default is false.
You can opt to treat only certain categories as having a graphical representation by defining an image for them but not creating images for the non-graphically represented categories (as in you can have a subset of categories that dictate what image to be displayed for the post).
You can take advantage of the $image_extension and/or $image_dir arguments to display different category icons under different contexts, i.e. if showing a $single post, choose to use a ‘png’ image, otherwise use ‘gif’; or locate your images in different directories ‘/wp-content/images/cat-images/small/’ and ‘/wp-content/images/cat-images/large/’ and decide based on context where to get the image(s) from:
// In showing the post singularly, then use a larger image, else use a small image
if ( is_single() ) {
c2c_the_category_image(”, ”, ‘gif’, ‘/wp-content/images/cat-images/large/’);
} else {
c2c_the_category_image(”, ”, ‘gif’, ‘/wp-content/images/cat-images/small/’);
}
Show all images in a comma-separated line:
Show all images in an unordered list:
Assuming one category per post, just show the category image without further HTML markup:
< ?php c2c_the_category_image(' '); // note the space in the argument, necessary to turn off default
The plugin exposes two filters and one action for hooking. Typically, customizations utilizing these hooks would be put into your active theme’s functions.php file, or used by another plugin.
The ‘c2c_get_category_image’ hook allows you to use an alternative approach to safely invoke c2c_get_category_image()
in such a way that if the plugin were deactivated or deleted, then your calls to the function won’t cause errors in your site.
Arguments:
c2c_get_category_image()
Example:
Instead of:
<?php $cat_images = c2c_get_category_image( $cat ); ?>
Do:
<?php $cat_images = apply_filters( 'c2c_get_category_image', $cat ); ?>
The ‘c2c_get_the_category_image_list’ hook allows you to use an alternative approach to safely invoke c2c_get_the_category_image_list()
in such a way that if the plugin were deactivated or deleted, then your calls to the function won’t cause errors in your site.
Arguments:
c2c_get_the_category_image_list()
Example:
Instead of:
<?php $cat_list = c2c_get_the_category_image_list(); ?>
Do:
<?php $cat_list = apply_filters( 'c2c_get_the_category_image_list', '' ); ?>
The ‘c2c_the_category_image’ hook allows you to use an alternative approach to safely invoke c2c_the_category_image()
in such a way that if the plugin were deactivated or deleted, then your calls to the function won’t cause errors in your site.
Arguments:
c2c_the_category_image()
Example:
Instead of:
<?php c2c_the_category_image(); ?>
Do:
<?php do_action( 'c2c_the_category_image' ); ?>
category-images.zip
inside the /wp-content/plugins/
directory (or install via the built-in WordPress plugin installer)c2c_the_category_image()
) for each category you wish to have an image for, placing the image into the wp-content/images/ directory (unless you specify another location in your call to c2c_the_category_image()
). Remember to give the filename the nice-name version of the category name.c2c_the_category_image()
template function in your template (see examples below).=
* Add optional arg $post_id (default of false) to c2c_get_the_category_image_list() to allow specifying a post
* Send $separator as arg in calls to get_category_parents()
* Use get_options() instead of get_settings()
* Note compatibility with WP 2.6+, 2.7+, 2.8+
* Update copyright date