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 ?>