Custom Post Types – Yes/No?

Since the inception of WordPress’s custom post type API, the BuddyPress core team has been bouncing ideas back and forth on how we could possibly take advantage of all the goodness it has to offer. With bbPress recently making the move last year, and BuddyPress taking advantage of that in the coming version, we’re slowly and carefully inching towards trying it out.

A few things to consider:

  • The scalability concerns of BuddyPress on single-site WordPress become apparent much more quickly when everything is in the same set of WordPress database tables
  • Even something as straightforward as bbPress had to pull serious strings to use custom post types. Components like Groups, Friends, and Activity will be exponentially more complex.
  • By moving to custom post types, we inherit TONS of awesome features we don’t have in BuddyPress today: Trash, Import/Export, post_status, roles/caps, taxonomies, etc…
  • Migration is a pain, and writing scripts to transition each component over safely is hugely important.
  • Custom post types take much of the weight off the BuddyPress core team. It lowers the barrier of entry to get familiar with BuddyPress, and hopefully will increase both WordPress and BuddyPress core contributions.
  • Some things just aren’t meant to be custom post types. Things like user-to-user relationships, profile fields, etc… The schema for post types doesn’t really make any sense here; does it make sense to move components over just for the sake of doing it?

Any feedback is great feedback. We really want to get as much as we can get from everyone in the WordPress community, to get a sense on the direction you want us to take for future versions. We think we’re on track, but we won’t know unless we ask. :)

Thanks in advance for your time and thoughts.