Jonathan Christopher offers up a new custom post type concept with Hierarchy

22 Comments

Jonathan Christopher over at Monday by Noon has released a new plugin called Hierarchy. It provides a way to view all content on a WordPress site by removing custom post types from the admin menu and placing them into a hierarchical view, shown above. He has written a lengthy post about it over at his site. From the post:

In an ideal world, CPT editing would be directly integrated within your Pages structure (as Pages are the basis of your URL structure) and not need a dedicated sidebar menu entry. That’s the short version of exactly what Hierarchy does.

Hats off to Jonathan for seeing a problem and devoting time to fix it. Check out his full post and grab the plugin.

Every time a plugin gets released that seems to approach a common problem in a thoughtful and elegant way there are calls to integrate into core. My feelings on this are no different: onward to core! Perhaps not as a default, but definitely something that can be turned on with a function. What do you think about this plugin? Is it a step in the right direction or should it remain strictly plugin territory?

22 thoughts on “Jonathan Christopher offers up a new custom post type concept with Hierarchy

    • I think how excited you end up being about this type of plugin depends on how exactly you use custom post types. If you use them in a hierarchical way, this makes a lot of sense. If you don’t, it might not be right for you.

      It’s an interesting UI for content, either way.

      • Based on the feedback I’ve received it seems like I have a very clear picture about how I use Custom Post Types, but it contrasts quite a bit with the way others use them. My stance comes from building custom themes for clients for the past few years. Very often, Custom Post Types are extremely useful for segmentation, but having arbitrary entries in the sidebar felt very abstracted to me. I did my best to explain that in the writeup, but after hearing other reactions I completely understand why some people will feel this plugin is quite useless. All of the feedback is greatly appreciated, and personally I’ll be really excited to use the plugin on client sites!

  1. This should be strictly plugin territory. I certainly see the usefulness of this plugin and think it’s awesome, but this is why we have the Plugin API — so people can do cool stuff like this and extend the defaults. Anything dealing with custom post types in core should be extremely basic. Anything more assumes too much about my custom post types (unless you’re keeping the plugin settings in core too, which I doubt will happen).

    • I see where you’re coming from, and the comments here have definitely enlightened me to how other people use them. I agree with you that it should be kept as a plugin.

  2. I don’t get it either. If you need content within a page structure, use Pages. If you need a different kind of content, use a custom post(content) type. Why should they ever blend?

    I disagree that this should ever come close to core. I guess it seems useful for some people, but as a frequent CPT user, I’ve never needed anything like this. The only thing remotely similar I’ve wanted is an easy way to add the CPT archive page to a Menu and then not have to have a function to fixthe “current_menu_item” class.

    • Tammy,

      After reading some of these comments I’ve changed my position. Apparently many people do not use custom post types in this way. I definitely think it works well as a plugin though!

  3. Just to reiterate my core intention when building this plugin: I use Custom Post Types all the time. I build custom WordPress themes for clients which usually involves really specific implementations of content, whether it be custom field powered or otherwise. It’s very rare that these Custom Post Types are part of the site’s main navigation, they’re usually a “child” of a main section.

    Telling a client to edit their page content in one place (Pages) and “child” content (powered by a Custom Post Type) in another always felt like a bad user experience to me. Clients rarely outright questioned it, but it was something I felt could be improved upon.

    I may have been in client work so long it’s shifted the way I view WordPress, haha, but being able to show a client a structured view of their content in the WordPress admin that virtually mirrors the way you browse the content on the front end is something that’s really attractive to me.

    On the flip side, I really enjoy reading the reactions of those people who don’t see the purpose of the plugin at all, context is king!

    • Okay, with that explanation I guess I can see how it makes sense. I am also a client theme builder and view WordPress a bit uniquely. I will have to give your plugin a try and see how it feels.

    • I definitely see where you’re coming from.

      In one of the examples you used, I think it makes total sense. For instance, if you have a CPT for “team”, and you bury it under an about page, “about/team” is a great slug, and this plugin is perfect to help a client visualize that.

      But take another example like “projects”, and really those projects deserve more of a traditional archive sort of setup, and it seems silly to do it this way : ) Either way, it’s a neat concept, and even if just for the admin to visualize a site hierarchy, it could be worthwhile.

      Nicely done! I always like when people do new and interesting things to solve problems / make things easier to use.

    • Hi Jonathan,

      Nice job getting it to work; that kind of thing is typically not trivial in WordPress.

      OTOH, it sounds very Joomla-ish. I haven’t had a need for this nor after reading about it did I have an immediate reaction that this was something I needed. (To be clear, I’m not saying that just because I don’t need it that it doesn’t have value. It’s a pet peeve of mine when people do that; how arrogant of one person to presume they know everything about the other person’s use-case, right?)

      But I don’t think it’s necessarily you having been in client work vs. others not. I almost exclusively do client work and I approach things differently. I’ll bet it has more to do with the mental model you work from and/or the types of clients you services. My guess is that you have a design background vs. my database background?

      What Hierarchy really sounds like to me is what I’d call “Custom Page Types”, i.e. Custom Post Types but that extend post_type='page' instead of being independent post types. For example, one of our clients has top level menus “People” and “Practice Areas” (they build websites for large law firms.) We have those in the main menu because they are the focus of the site. Having them buried in the site hierarchy would just feel completely wrong to me, and IMO would be much harder to use. But that’s my use-case, not yours.

      Still, I’m very intrigued. I’d love to hear about what the group of Custom Post Types you’ve used for your different types of sites because having some good examples might open my eyes to different ways to approach a site. Thanks in advance.

      -Mike
      P.S. I’m not a fundamentalist member of the church of Decisions not Options so I don’t have a strong opinion that something like Hierarchy should not be in core. My preference is Standards not Chaos and unfortunately D-vs-O contributes to the latter.

    • To stimulate discussion, of course! Even though I know my posts get read, as a writer it is very satisfying to have others interact with what I say. Besides, I don’t end every post with one, only times when I think a constructive conversation can be had. 🙂

  4. I have to disagree on this one. The thought of handing a website over to a client and have them sift through 8 custom post types with upwards of 1000 posts in a single area would make me want to shoot myself in the foot. In some cases this plugin might apply but it just makes sense to find the slider posts in the slider section. Not to mention custom taxonomies.

  5. The thought/ thinking behind is 100%, implementation i’m not so sure.
    The main thing is, it’s an avenue that’s being experimented on and if you don’t try stuff, you get static.

  6. I think the idea behind it is good, but this should remain as a plugin. I can see some uses of this in our projects, but most of the time the CPT menu bar is most necessary because they are being used so extensively.

  7. It really is great to see someone extending WordPress to suit their needs / experience, and making that extension available for others who use WordPress in the same way.

    Thanks, Jonathan!

    As far as plugins being integrated into core go, I think sometimes people get a little too trigger happy about that. In this case, I’d say while there’s a niche the plugin would be perfect for, it’s not for everyone (or even most).

    Aside from that, I did hear talk a while back about Core Plugins… haven’t seen much mentioned about that lately though.

  8. This thing should be in WP core.

    Core should automatically makes CPT that has ‘hierarchical’ declared to true has this same feature as Page.

    There is a great risk that this plugin will not work in the future if the core dev don’t agree and they can do something to prevent making this.

    What I’m saying here is that this is not a feature but it is a standard for Content Type that is hierarchical in nature. Even though this is not yet implemented in core but the presence of this plugin is here as a wake up call to the core dev.

  9. As a user of wordpress,rather than a developer,I am finding thos plugin very useful.
    It gives me a way to clean up my navigation area,which is now cluttered with custom lozt type icons.Moving all content generation into one area makes zense to me,and it fits the way I use wordpress at the moment,as a stofe for my thoughts.
    Organising my content in a clear structure using custom post types is voong to be essential for me as the number of posts has nowreached 500.

  10. As a user of wordpress,rather than a developer,I am finding thos plugin very useful.
    It gives me a way to clean up my navigation area,which is now cluttered with custom lozt type icons.Moving all content generation into one area makes zense to me,and it fits the way I use wordpress at the moment,as a store for my thoughts.
    Organising my content in a clear structure using custom post types is voong to be essential for me as the number of posts has nowreached 500.

Comments are closed.