CSS for Custom Post Types

In your post loop, you could always set a class name that is the equivalent to the slug of the custom post type and then adjust the css accordingly.

You’d need to add the post_class() function to the html element containing each post.

For this option, you’ll want to get the post type first:

 <?php $post_type = get_post_type($post->ID); ?>

And then you’ll want to add the post type to the html element containing your post using post_class():

 <?php post_class($post_type); ?>

Or, you could use some conditional logic to check the post type and then output them in two completely different ways inside of your loop.

Personally, just because I like having more control over things, I would set up the if statement in my loop so that I could adjust the output based on the post type.

Every theme is different, but something like this should get you on the right track:

if (have_posts()) : while (have_posts()) : the_post();
     $post_type = get_post_type($post->ID);
     if($post_type == 'four_img') {
          get_template_part('content','four_img');
     } elseif($post_type == 'two_col') {
          get_template_part('content','two_col');
     } else {
          get_template_part('content',get_post_format());
     }
endwhile;
endif;

You’d need to create the content-four_img.php file and content-two_col.php file in my example, but you could just code the mark up right into the loop if that’s more what you prefer.

Leave a Comment