The exclude variable in the stand-alone wp_list_categories doesn’t exist for get_the_category when your blog is listing the categories related to that post. So you have to create a custom function to define the categories which output. I found the solution at Technokinetics and adapted it here. Another blog also covers the topic (of course you can define cat_ID instead of cat_name).
Put in your theme. Btw the (‘, ‘) is a separator you can change that will go between the categories.
<span><?php custom_cat_list(', '); ?></span>
Put in functions.php, note the function below uses an && AND operator.
function custom_cat_list($separator) {
$first_time = 1;
foreach((get_the_category()) as $category) {
if ($category->cat_name != 'Music' && $category->cat_name != 'Hipsters') {
if ($first_time == 1) {
echo '<a href="' . get_category_link( $category->term_id ) . '" title="' . sprintf( __( "View all posts in %s" ), $category->name ) . '" ' . '>' . $category->name.'</a>';
$first_time = 0;
} else {
echo ' I don't like music or hipsters or you could just leave this blank. ';
}
}
}
}
Super Simple Featured Box
I’m using this function because I recently created a featured box for TwinCityScene and would like control over its structure. While the built-in sticky option could suffice for simple CSS sizing, it doesn’t really let me do much with say thumbnails. I also prefer not to use a heavy plug-in which then we get into the arena of ranking featured posts when honestly I want to keep this site automated.
To do this box, I create a new category called “Featured.” This is an administrative category being merely functional. However I still want to list the post categories that the featured post belongs to (ie: “Music,” “Art”). So in my index.php (or applicable theme file) I called the loop twice. In the first I told query_posts to show only 1 post from category 684 which happens to be the new Featured cat. then the second loop query_posts omits 684 with a negative – sign. I’m sure there are other ways to customize the loop but I found this to be the most efficient and natural for WordPress instead of a litany of if else statements.
<?php query_posts("showposts=1&cat=684"); ?>
<?php while ( have_posts() ) : the_post() ?>
My structure for the featured box where I used <?php custom_cat_list(', '); ?> to omit the Featured Category from showing up.
<?php endwhile ?>
<?php query_posts("cat=-684"); ?>
<?php while ( have_posts() ) : the_post() ?>
My structure for regular posts where get_the_category lists normally.
<?php endwhile ?>