Ephemerator

Existing category-exclusion plugins are either borked, or overly aggressive. I needed one that would filter a category from the front page and main rss feed while still allowing category display and category rss feeds.

Basically, I followed the recipe at WordPress Codex: Custom Queries. The code isn’t generalizable enough to offer as a downloadable plugin. But here’s the gist. It’s 1 line of code, wrapped in a conditional if statement. Rocket surgery.

Put the file below into wp-content/ephemerator/ephemerator.php (or download a copy here)

add_action( 'pre_get_posts', 'ephemerator_remove_ephemeral_cat' );

function ephemerator_remove_ephemeral_cat( $wp_query ) {

$ephemeral_category = '1658'; // category id for my 'ephemera' category
    // kick in, to remove the ephemeral category if and only:
    // if we're loading the home page,
    // or we're loading a feed (but not a category feed)
    // or we're loading an archive feed (but not a category listing page)
    if ( is_home() || ( is_feed() && !is_category() ) || ( is_archive() && !is_category() )) {
        set_query_var('cat', '-' . $ephemeral_category);
    }
}

2 Replies to “Ephemerator”

Comments are closed.