CPT-onomies is a multisite compatible WordPress plugin that allows you to create very powerful taxonomies and, therefore, very powerful relationships between your posts. CPT-onomies are Custom-Post-Type powered taxonomies that function just like regular WordPress taxonomies, even allowing you to use core WordPress taxonomy functions, such as get_terms() and wp_get_object_terms(). Check out the CPT-onomy documentation to see which core WordPress taxonomy functions work and when you’ll need to access the plugin’s CPT-onomy functions.

CPT-onomies includes a custom post type manager, allowing you to create custom post types and register CPT-onomies without touching one line of code!

If you’re running a WordPress multisite network, you can register your custom post types/CPT-onomies network-wide OR on a site-by-site selection. All from one screen!

If you’re already using a plugin, or theme, that creates custom post types, don’t worry, CPT-onomies is all-inclusive. Any registered custom post type can be used as a CPT-onomy.

What Is A CPT-onomy?

A CPT-onomy is a Custom-Post-Type-powered taxonomy that functions just like a regular WordPress taxonomy, using your post titles as your taxonomy terms. “Attach” your CPT-onomy to any post type and create relationships between your posts, just as you would create taxonomy relationships. Need to associate a CPT-onomy term with its post? No problem! The CPT-onomy term’s term ID is the same as the post ID.

Is CPT-onomy An Official WordPress Term?

No. It’s just a fun word I made up.

Need Custom Post Types But Not (Necessarily) CPT-onomies?

CPT-onomies offers an extensive, and multisite compatible, custom post type manager, allowing you to create and completely customize your custom post types within the admin.

Why CPT-onomies?

It doesn’t take long to figure out that custom post types can be a pretty powerful tool for creating and managing numerous types of content. For example, you might use the custom post types “Movies” and “Actors” to build a movie database but what if you wanted to group your “movies” by its “actors”? You could create a custom “actors” taxonomy but then you would have to manage your list of actors in two places: your “actors” custom post type and your “actors” taxonomy. This can be a pretty big hassle, especially if you have an extensive custom post type.

This is where CPT-onomies steps in. Register your custom post type, ‘Actors’, as a CPT-onomy and CPT-onomies will build your ‘actors’ taxonomy for you, using your actors’ post titles as the terms. Pretty cool, huh?

Using CPT-onomies

What’s really great about CPT-onomies is that they function just like any other taxonomy, allowing you to use WordPress taxonomy functions, like get_terms(), get_the_terms() and wp_get_object_terms(), to access the CPT-onomy information you need. CPT-onomies will also work with tax queries when using The Loop, help you build custom CPT-onomy archive pages, allow you to programmatically register your CPT-onomies, and includes a tag cloud widget for your sidebar. Check out the CPT-onomies documentation for more information.

If you’re not sure what a taxonomy is, how to use one, or if it’s right for your needs, be sure to do some research. [The WordPress Codex page for taxonomies](http://codex.wordpress.org/Taxonomies) is a great place to start!

Note: Unfortunately, not every taxonomy function can be used at this time. Check out the CPT-onomy documentation to see which WordPress taxonomy functions work and when you’ll need to access the plugin’s CPT-onomy functions.


  • Maartje says:

    Love your plugin. Have one request: it would be nice if the plugin would support featured content. Users should add Location to their posts, so that posts will be shown in a featured content slider. 

    • rachelcarden says:

      Thanks! I’m glad you’re enjoying the plugin. As for the featured content request, can you show me an example?

      • Maartje says:

        I’m using Oxygen theme, which  supports a featured content slider (you can see the slider at my website: 
        http://www.maartjevenema.nl/wp2/) I can only put my normal posts in the slider, not the posts I creat with CPT-onomies. In the backend, in the adminscreen for ‘normal’ posts, there is a block with Location. This is where you can choose if and where you want to post to be shown on the front page. 

        • rachelcarden says:

          I downloaded ‘Oxygen’ and checked out the ‘Location’ meta box. This is a theme-specific feature where the ‘Location’ box is coded to only be added to the ‘post’ post type AND the posts query on the home page to retrieve the ‘featured’ content is only requesting the ‘post’ post type.

          You’ll either have to contact the theme creator and request the feature be extended to all post types, or edit the theme’s code yourself.

  • Jean-Paul says:

    For example if i want create this menu

    Offer Job
    -> List Jobs
    -> Type of jobs
    -> Localisation

    is it possible to create this type of Terms Menu ?

    • rachelcarden says:

      You can create just about any menu you like! But could you provide some context?

      • Jean-Paul says:

         oki, i found plugin to modify position of links in menu. Do you think in the futur is possible to generate post type view in front end ?

  • sébastien says:

    it’s a great plugin Rachel !
    I have a question :
    in the backend, i can sort all films with Brad Pitt.
    But how can i do the same thing in the front-end.

    Is it possile to have a template to display all films of a particular actor ?
    and more, is it possible to have a template to display all films of a particular actor AND another (brad pitt & geoges clooney for example) ?

    Thanks for your response, and thank you very much for this plugin and your work

  • sébastien says:

    I have another question (it’s more a suggestion)

    For example, I have a CPT “movies” and a CPT “actors”.
    “movies” is a CPT-onomy for  “actors”.
    “actors” is a CPT-onomy for  “movies”.

    In the backoffice, i select the actor “brad pitt” as CPTonomy for the movie “fight club”.
    So, in the administration of “movies”, brad pitt is a taxonomy of “fight club”.
    BUT, in the administration of “actors”, fight club is not a taxonomy of “brad pitt”.

    is it possible to have a cross-over system ? (when “brad is in the film fight club”, “fight club is automaticly a film with brad”) i think it’s a good idea :-)

  • Reinaldo Ferro says:

    found a bug! 
    This don’t works whit wp 3.4

  • halit says:

    There is a problem in the system. Only 5 we make the type of custom work. What causes this? That consists of 6th page, but page is not displayed.

    • rachelcarden says:

       Where are your custom posts not being displayed? Where you assign your CPT-onomy terms in the admin? Or somewhere in the front end of your web site?

  • Peeela says:

    Hey Rachel, 

    Seriously great plugin. Amazeballs. :D
    Just one thing, WP 3.4.1, CPT-onomies 1.1.1 , I have cpt set to public, checked show in nav, but the custom posts are not appearing below Pages, Posts & Categories in the Menu admin section.

    Am I doing something wrong?


  • Peeela says:

    Screen Options > Check [Custom Field]

    Can this be an override from the CPT-onomy set-up?

  • TheGhostHybrid says:

    Hello, Rachel!  Many thanks for this wonderfully in-depth plugin.  ^-^  I have one question, though.

    I am making a Testimonials CPT, and I’m trying to pull all posts of this type and display them on a page.  It doesn’t need to rotate or anything like that—just a simple static display is sufficient.  Is there a shortcode or snippet I can use to achieve this, or am I simply missing a very obvious option here?  =)

  • Georges Boris says:

    Hello rachel, how are you?
    Really great plugin! Solved A LOT of my problems really.

    Still there’s something I’m not sure if it’s possible. I’m doing a website for a big research campus, and in it I have a post type named “Projects” and another one named “Researchers”. When I’m editing a given project I can assign researchers to it so they can be part of the “project team”. But there should be another field where I could select another researcher so it could be the “project manager”. Is this possible with your plugin? To use the same post type as a different taxonomy inside a project?
    Thank you very much.

    • rachelcarden says:

      It’s not currently possible but someone else has brought this idea to my attention. Perhaps in a future version. You could always use “project manager” as a custom field and use the “researchers” taxonomy as your custom field’s options.

  • April S. says:

    Hi Rachel,
    just dropped by to say your plugin is indeed A-W-E-S-O-M-E. (O.O) :))
    have a great day! many thanks to you. :))

  • William Torre says:

    Excellent presentation at WordCamp Birmingham! Looking forward to using this plugin!

  • marcello says:

    hello, i have a small request. i have 2 CPT, the first ‘Negozi’ (shops) and the second ‘Coupon’ (coupon) linked. How can i create the permalink like this: http://www.mysite.com/negozi/single-coupon?

Leave a Reply