Greg Rickaby

Full-Stack Developer

· 2 min read · #code

Get a WordPress Category ID

I rode the struggle bus pretty hard on this one today. I needed to ignore the "featured" category in a loop, and to do so, WP_Query() requires the category ID. Luckily, I found a handy function: get_term_by();

<?php
// Get the "featured" category object.
$featured_category = get_term_by( 'slug', 'featured', 'category' );

// Set the "featured" category ID.
$featured_category_ID = $featured_category->term_id;

// Get the latest three posts, ignoring the current post
// and any in the "featured" category.
$args = array(
 'post_type'              => 'post',
 'posts_per_page'         => 3,
 'post__not_in'           => array( get_the_ID() ),
 'category__not_in'       => array( $featured_category_ID ),
 'no_found_rows'          => true,
 'update_post_meta_cache' => false,
 'update_post_term_cache' => false,
);

// Run query.
$data = new WP_Query( $args );
Greg is the Director of Engineering at WebDevStudios. He also moonlights at Dummies writing and editing books. Follow him on Twitter for lots of pictures of pepperoni pizza and tidbits about Next.js.
· · ·