The weight of opinion seems to favour using custom post types instead of custom post formats.

I have several custom post types that I want to style in 4 different formats in a way that is not public ie not a category, tag or custom taxonomy.

Custom post formats would seem to provide an ideal solution for this - they're built-in functionality, easily implemented, come with handy meta box, easily applied with conditional statements etc.

The major draw back being they are not readily customisable - I could rename them for the sake of clarity.

So given the prevailing thought, what would be a better approach to creating the same functionality.


You have several options here so I will clarify what you can do.

  1. Create a custom post type template page using something like single-customposttype.php and take advantage of the template hierarchy, http://codex.wordpress.org/Template_Hierarchy

  2. Use a conditional query for your styling in the loop ( or whatever you're using), along the line of if (post type= your custom one) style it this way;. or use some other WordPress conditionals. http://codex.wordpress.org/Class_Reference/WP_Query

  3. Use a taxonomy for back-end organization, custom taxonomies do not have to be public.

  4. Use post formats for your custom post type, CPT's can support post-formats, http://codex.wordpress.org/Function_Reference/register_post_type

Most people go with option one, but it depends on what you're trying to do.

  • Thanks for your answer Wyck. I have 3 CPT which I want to format according to 4 sub types as post formats would. I may use templates down the track but at this point I'm looking for a way to apply the format without using taxonomies that are seen in the front-end. So I either need to find a way to restrict the visbility of the custom tax to the back end or use post formats renamed for clarity which are already nicely restricted to the back-end. Any pointers on how to achieve the back-end only taxonmomies appreciated as this is probably the better option. – Rothbert Oct 31 '11 at 2:36
  • When you register a taxonomy you have many options, some of which are to not make them public, codex.wordpress.org/Function_Reference/register_taxonomy – Wyck Oct 31 '11 at 3:36
  • Thanks Wyck - OK I'd seen the public => false option and tried that but was still seeing the taxonomy in my post footer, but realise that option removes it from the tag clouds etc. I can see that I'll have to work out a way to exclude particular custom taxonomies from the function that is generating the post footer. Will start a new question. – Rothbert Oct 31 '11 at 22:51

You can enable support for post formats in a CPT. When registering the post type set post-formats in the 'supports' argument.


Rothbert, you remove the visibility of taxonomies in your theme files.

The crucial difference between "Custom Post Types" and "Post Formats" is the word 'custom.'

In other words, you cannot change the name of custom post formats. You are limited to the default 10 native to WordPress. You cannot add new post formats. And you cannot change the names of existing ones.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.