WordPress.org

Support

Support » Plugins and Hacks » equally good taxonomy manager plugin?

equally good taxonomy manager plugin?

  • This may seem off-topic but given that I think CCTM is a great plugin and I’ve been using it for a while, I’d appreciate if any of the CCTM users know of an equally good plugin to manage taxonomies.

    I’ve tried a few but they are not great. For instance, the Ultimate Taxonomy Manager or Ultimate CMS have bugs/gaps (e.g. the list of roles allows to edit/add taxonomies only includes the native roles, not any of the roles I defined).

    Any input will be appreciated!

    http://wordpress.org/extend/plugins/custom-content-type-manager/

Viewing 15 replies - 1 through 15 (of 34 total)
  • Plugin Contributor fireproofsocks

    @fireproofsocks

    I’ve looked at a handful of them, and many of them did some pretty bad things in their code. Until I incorporate managing taxonomies into the CCTM, I continue to recommend the Simple Taxonomy plugin — it was the only one I looked at that followed good architectural principles.

    (see a recommendation for CCTM at the end)

    I did see that you recommend it, but Simple Taxonomy uses custom mysql tables, i.e. different than wp_terms, wp_term_relationships, etc. I’m not sure why this was done — perhaps the plugin is older than WP 3.0 when WP introduced custom taxonomies — but I don’t like it as it makes things non-standard. I’d rather use the native WP tables and API for custom taxonomies. Simple Taxonomy also makes it a pain wrt to labels … you have to type them all in by hand, rather than expanding the raw name.

    I had a look at Custom Post Type UI which has a manager for custom taxonomies as well … hasn’t been updated in a while but still works fine with WP 3.5.1. It’s missing capability management

    Pods - Custom Content Types and Fields is a very powerful plugin, with a lot of functionality, which can also add custom fields for taxonomies — this is actually quite neat (you can have a taxonomy for “institutions” let’s say, each with fields for url, address, etc, and then assign them to posts). But it too uses custom tables and a custom API 🙁 … to its credit though, the author claims to provide some good documentation for it.

    I may end up writing my own for the time being. I’m not fond of the idea of adopting a plugin with a custom API and db schema because I never have a guarantee that the author will maintain it as WP evolves. Using the native WP API and DB schema at least makes it easier to fix/patch and maintain it myself.

    If you implement custom taxonomies in CCTM, it would be great if you added custom fields to them as well. You will have to use a custom db schema but only for taxonomy meta, using the native WP API and schema for everything else. Maybe have a look at Pods to get inspired.

    Cheers and keep up the good work!

    Plugin Contributor fireproofsocks

    @fireproofsocks

    Simple Taxonomy probably uses custom tables to store the taxonomy definitions since that’s a more scalable way of storing the data….. CCTM stores some large data objects as WP settings… it is perhaps “more correct” to avoid relying on custom tables, but doing it that way means that your sites get clobbered during migration because serialized data gets corrupted when character counts change (some WP myopia here).

    I don’t recommend Post Type UI: it incorrectly stores custom field data as taxonomical terms, which is awkward at best, but it also put hard limits on the size of the data (ie. no long textareas can survive the character limits of the varchar fields).

    PODs approach is to use custom tables for post-types, and that’s means more efficient queries and reporting etc, it’s just a tough row to hoe given that WP’s core is hardly a framework, let alone stable enough to withstand that kind of thing, but hats off to them — they’ve worked hard to do that. I generally don’t recommend WP as a platform for anything other than a hobby-level site — it’s just difficult and painful to customize WP when it comes to reworking the architecture and the end result is nowhere near as fast/efficient/maintainable as when you’d built it right on a solid platform to begin with.

    You can update the feature request for custom taxonomies in the bug-tracker: https://code.google.com/p/wordpress-custom-content-type-manager/issues/detail?id=167

    I don’t know if I’d try to incorporate custom fields into taxonomies… if you want to do that, I’d recommend leveraging a post-type as a taxonomy and using relation fields. If it looks like I can add custom-fields to taxonomies cleanly, then I’ll give it a go once a project comes in that requires it.

    Pods lets you create Custom Post Types, Custom Taxonomies, and Advanced Content Types (standalone). It lets you extend existing Post Types, Media, Taxonomies, Users, and Comments.

    All meta-capable content types default to meta-storage, so no custom table will be created or used. When you create a new custom taxonomy, you have the option to enable custom fields, but the default is off. Custom fields are added to their own table, but in the future if Taxonomies get a meta table of their own, we’ll utilize that and work to offer a path for migration too.

    Pods is integrated tightly with WordPress core, which lets you use all existing core functions and methods like you would normally use (WP_Query, get_post_meta, update_post_meta, etc). We have a custom API, but that’s only if you want to utilize it.

    We’re not going anywhere either, we’re backed by Automattic, and are working hard at making content type / field development more attainable for developers AND users. There are more features coming in Pods 2.3, like the ability to create Custom Settings Pages, new field types, new relationship objects, and more.

    Hopefully that sheds a little more light on Pods itself.

    Also, for a comparison between the different plugin options out there, you can check out this, which includes Pods and CCM:

    https://docs.google.com/spreadsheet/ccc?key=0AoY8IFUX301qdFhBaERLUEUwa3U0YjFYTnBmaU1mbmc#gid=3

    If it looks like I can add custom-fields to taxonomies cleanly, then I’ll give it a go once a project comes in that requires it.

    I have a large project that requires it. Maybe we can discuss about it elsewhere?

    Maybe I am mistaking, but I seem to recall that Simple Taxonomy doesn’t use the WP tables at all, i.e. the custom taxonomies do not appear in wp_terms along with the other native ones (tags, categories, etc), which then turns it into a hassle. There is no need for custom tables to store taxonomy definitions; that’s why the wp_terms and wp_term_taxonomy tables are for … I haven’t dug further as it looked like the WP API couldn’t be used for it (I need custom taxonomies in the code, not just in the GUI).

    There is an interesting plugin out there called CPT-onomies, which attempts at using custom post types as taxonomies. I’m a bit weary doing that as WP is already slow to begin with, but it would allow for some interesting flexibility.

    I’m interested not only in custom fields for taxonomies, but also in custom fields for taxonomy relations, i.e. when I assign two different taxonomies to a post, say “institution 1” and “person 1”, then I’d like to have a custom field for that particular pair in relation to the post, e.g. a comment field.

    WP is abhorring and I get frustrated every single time I need to code using its so called API. It started as a script kiddie project, written using global functions with thousands of arguments and global variables everywhere, and now it can’t escape that horrible mess they call a “code architecture” as they need backwards compatibility and it somehow makes it easier for other script kiddies to create plugins which look just like WP, i.e. tons of html code intertwined with PHP code using global functions and global vars. Makes me cringe.

    Pods has a comprehensive relationship field, which has extensive functionality for relationships from any object to any other object of any other type. May be worth a go if you need that. There is no “right” way to implement custom fields for taxonomies, and they range from:

    • Custom table: wp_termmeta, mirrors wp_postmeta in structure
    • Custom table: wp_taxonomy_name, a custom column for every custom field
    • Reuse post meta: wp_postmeta
    • Store as options: wp_options
    Plugin Contributor fireproofsocks

    @fireproofsocks

    If you’d like to contact me re a project, I can be reached at http://fireproofsocks.com/contact/

    I am a few weeks out at the moment, however.

    @scott, are you monitoring the WP forums for all occurrences of Pods? 🙂

    Many thanks for that spreadsheet! Very, very useful!

    Regarding the relationship field. CCTM has a really awesome relationship field which I have been using. It seems hard to top that but I guess not impossible. However, what i was describing above is something a bit different.

    Suppose I have two custom taxonomy names, “Companies” and “Persons”. Suppose I have Company X and Person Y as taxonomies belonging to those. I’m assigning these two to a post P. I would like to have a comment field to use to describes the relationship between the pair XY and the post P, e.g. “at the time of this writing, Person Y was the director of Company X”.

    I can have another taxonomy called “Positions” and have “Director” being a member and assign it to the post as well but that wouldn’t work as intended since the post has multiple persons, multiple companies and multiple positions; it could be done with some extended relationship fields to link XY to P and Director. However, I am ultimately interested in a text field to write a short description of such a relationship, besides the relationship itself (then I could also do away with the Positions taxonomy in this particular case).

    This sort of thing then makes automation really efficient, and not only. Haven’t dug enough in Pods to see how much of this it can do, but would certainly love to see custom fields for taxonomies in CCTM, extended with custom fields that can relate to taxonomies, not just to posts.

    p.s. Regarding Pods, I recall it created a new table as soon as I added a custom taxonomy and that I couldn’t query it using the WP API. Are you sure custom taxonomies created by Pods are inserted in the wp_term* mysql tables and that I should be able to use the WP API for terms e.g. get_the_term_list(), wp_set_object_terms() etc?

    Thanks once again for the info.

    I support my project by watching for references to it across WP.org and social streams, so I can address questions, concerns, and bugs where users feel most comfortable to discuss them. This one came up and I just felt like I should clarify Pods functionality since it was referenced here.

    Pods has one optional table by default, and that’s for relationships: wp_podsrel. For taxonomies created with fields disabled, there is no table added and that’s been made the recommendation / default.

    All Pods WP objects (Post Types, Media, Taxonomies, Users, Comments) are 100% compatible with the WP API. In an upcoming version of Pods, Table-based objects will have WP_Query / WP_User_Query / WP_Comment_Query integration for their custom field (meta_query) lookups, since those fields are not stored in the default meta tables of their corresponding objects.

    I’d be interested to see how CCTM relationship fields compare to Pods relationship fields. I’m not familiar with CCTM enough to say whether it’s relationship field covers all of the use-cases that Pods does or not.

    To clarify, Pods offers the option to store custom fields in meta (default) or a custom table. My reference to WP_Query / etc was regarding those Pods setup with custom fields stored in tables (again, optionally enabled).

    Plugin Contributor fireproofsocks

    @fireproofsocks

    The CCTM’s relation fields are very flexible. I wrote a whole separate database accessor class (GetPostsQuery) that is the power behind them because the built-in WP classes (WP_Query et al) drove me insane with their limitations and caveats.

    We did the same with Pods, we have a very cool traversal method that interacts with normal pieces of a query (using SQL syntax) and automatically joins related tables as many levels deep as you need (i.e. parent.friends.parent.child = “This child’s parent is friends with my parent”), so it really cuts down on the complexities and mess of normal WP_Query posts_where lookups.

    Here’s some of the settings available for individual relationship fields:

    http://sc0tt.me/image/2f441C052j23/Screen%20Shot%202013-02-26%20at%207.29.18%20PM.png

    http://sc0tt.me/image/3g2417471L45/Screen%20Shot%202013-02-26%20at%207.30.00%20PM.png

    http://sc0tt.me/image/3E3n220x2G2j/Screen%20Shot%202013-02-26%20at%207.30.17%20PM.png

    http://sc0tt.me/image/0M1k3h2V0P0B/Screen%20Shot%202013-02-26%20at%207.30.52%20PM.png

    http://sc0tt.me/image/1e1f0K2r2p08/Screen%20Shot%202013-02-26%20at%207.31.18%20PM.png

    http://sc0tt.me/image/433q0y0j0C27/Screen%20Shot%202013-02-26%20at%207.31.35%20PM.png

    http://sc0tt.me/image/1W3c0j2W3x2x/Screen%20Shot%202013-02-26%20at%207.32.38%20PM.png

    Pods offers a lot of built-in relationship objects (screenshots are from Pods 2.3, which includes even more), and various input options.

    @scott, that sounds and looks quite interesting. Are those relationship objects available as custom fields for Taxonomies as well? For instance, would I be able to define, say, a relationship custom field for a taxonomy member pointing to a custom defined list (similar to your 1st screenshot)?

    What about my usage case above (the Company/Person/Position + text field issue)? I’d love an answer about it and whether I can have a custom field (e.g. description) for a combination of relationships.

    @everett, I like your CCTM implementation of relationships and the fact that you store them in the wp_postmeta table — it allows using the WP API to write and read it, even though you need a custom API to actually do stuff with it afterwards. I have to admit, I was in such a rush with my project, I parsed them in the code without knowing there is an accessor class for them (I just preg_split() the IDs into an array and used my own code from there).

    Relationship fields, like all other fields, can be added to any object Pods creates or extends. We do not have contextual relationships (additional custom text per relationship) yet, but that will roll in as a use-case with our new Loop Fields that we’re continuing to develop for Pods 2.4 (loop group would contain a text field and a relationship for that use).

    Pods also stores all relationships from Post Types in wp_postmeta, so they can be referenced in normal WP_Query meta_query calls, we utilize wp_podsrel for optimal traversal in our own API, but we store the IDs in custom fields.

Viewing 15 replies - 1 through 15 (of 34 total)
  • The topic ‘equally good taxonomy manager plugin?’ is closed to new replies.