Thoughts on Custom Post Types and the ClassicPress view on it

The main and most important feature I use when developing WP sites is the Custom Post Types concept.

Almost anything can be an “Object” and when you can handle multiple Object Types with custom meta data, then you can create whatever.

The native WP Post object is tied to the old “Blog Post” concept, and that is the only thing about WordPress that I dislike. The wp_posts table is full of “useless” columns like ping, to_ping, pinged, comment_count and so on. Of course I do understand where it comes from and can only admire the people who made it all happen.

But now that the people behind ClassicPress want to create a solid version of the WP essence focused on developers and the new times, the only or at least the biggest reason I see now for ClassicPress to make sense is to clean up this evolution and let go of the past, making this CMS more about generic Objects that can be anything rather than fixed “title-text-comments” posts.

The question is (to you the people who started this):

Did you consider this?

Since you are referring to columns that are needed for the built-in Post type, how would you suggest to “clean up this evolution”? Which ones are “useless”?
And how can the code remain compatible with WP plugins if things are removed?


The goal of ClassicPress is to preserve the platform that people have known and loved and to protect it from back-room, unilateral decision-making that goes against the wishes of the community. There’s no particular focus on developers, they are (maybe) just a majority of people who became interested in ClassicPress.

All the ones he doesn’t use, of course. :wink: Which just brings up the point that if we removed everything that someone found useless, we’d have nothing left.

I sense this is a rhetorical question… but, it’s obvious that the OP’s suggestion would cause thousands of WP4.9-supporting plugins to immediately stop working on ClassicPress. This would see the end of the project in a matter of months, so, it seems about 0% likely to happen.

Just my .02.


If that’s the only thing about WordPress that you don’t like, then I’m sorry to say I don’t think ClassicPress is for you. ClassicPress wasn’t created because of a dislike of post types and we have zero plans to start making radical changes to its basic, underlying structure.

Perhaps you might want to consider campaigning WordPress instead?


Question: why removing things?

First: CPT are plugins realm. Or code realm because you can code your own.

Second, as others pointed out, removing for the sake of it means breaking changes.

Third: making something better takes time, a lot of thinking and building on top of what is already there.

First rule I am still learning:

Do not reinvent the wheel

Second rule:

If it ain’t broke…
… don’t fix it.

improvement is always possible but rarely it means dismantling without a clear vision in mind, and it seems to me you are saying what you dislike, but not what you envision…

As always, we are community driven so I think the best bet is make a petition in the #governance:petitions category following the template provided. Then it will follow through our petitions process and if it meets the minimum votes required and has enough people willing to take it on then it is something we could consider in the future.

All that said, for V1 of ClassicPress our goal is still to maintain an LTS of WP 4.9 so we avoid any breaking changes.

Also, welcome to the community :slight_smile:


If you want to break completely from the existing post/page/CPT schema, I’d suggest Drupal or GravCMS.

“Useless” in the sense that some of the colums like for example (ping, to_ping, pinged and comment_count) and even more in many cases, are not necessary for custom post types. One could replace those with specific meta fields if really required.

Something like: “Keep a frozen version of WP 4.9?”. I thought about something different when reading that CP is a hard fork of WP. I think that is a good idea too so the people who wanted specifically that can have it and also be sure that it will be maintained.

I don’t get to understand what you mean. WP is doing a great job in keeping a back-compatible CMS and the Gutenberg editor helps a lot in making it even better than it was. I just said here what i said not “to campaign”, but because CP being a new thing it really can afford to make breaking changes. If someone dislikes those changes they can keep on using WP. I think that wanting it to be compatible will limit the possibilities a lot. And it doesn’t have to die, maybe all those who liked WP 4.9 but wanted some freshness will use it. And in the end it’s not a competition but creating a cool tool that makes people happy.

I envision a WP for developers. Something like a framework of pure generic CPT (not blogpost oriented), robust builtin user functionality, GraphQL API, easy media uploads and backend library, the good old admin area which is quite intuitive to manage contents and all those nice get_stuff(), add_filter(), do_action() functions which make developing easy.

But of course, that is not the ClassicPress vision.

So I should probably go do that myself.

Thanks for pointing it out. But I really like the WP way.


You describe a redesign.

I think what you need already exists in plugin realm.

One of CP aim is stripping the core to the bare minimum, serving features via core plugins that will be included in every install (so that everyone activates only what they want).

So this redesign can involve having in core just the base custom post type and a core plugin with the flexibility you describe to be used to manage all the CPT one can think of…

How does that sound?

To perform such a redesign can surely cause breaking changes too, but taking it in very small steps it can be achieved. Maybe it can also be a major change that gets an entire version dedicated as it’s happening with version 2 and the plugin/theme directory.

It’s not that CP is closed to improvement, but such improvement have to be taken with care and respecting the direction the project was born with.

That is why people arose many questions around your proposal.

I think all it takes it’s just seeing we all want to improve CP.

That said, having a petition for this would be the correct way to go, to allow technical discussion and proposals to flow around.


It sounds great. And I think this plugin-chunked core features is a good approach. But also I think it will be almost impossible to achieve without big breaking changes because de WP code has evolved in a way that is now very messy and many things depend on many things. There are old things that just float around.

It makes sense to work on an independent not-compatible WP alternative where all those things can be torn away and redesigned with a focus on minimalism. I would even take away the plugin and themes gallery and just have THE one theme that should be hard-coded without the Menu Walkers, the emojis, the widgets, the sidebar, the jQuery, the this this that… Just pure CPTs, metas, handle user stuff, handle medias, loops and helper functions.

To achieve that is no little task.

We need to move slowly out of WP allowing people to smoothly transition from there to CP first.

Once CP is established, it can differ from WP. One step at the time when there is the manpower to handle maintaining the core without relying on WP backports for it.

We are a very little bunch at present, trying to gain momentum by welcoming people willing to transition and also help CP grow and differ, and honestly there aren’t as much devs as maintaining such a project needs for now, and everyone is at the moment involved in the first big thing differentiating CP from WP… The plugins/themes directory. That will allow devs to develop for CP and will make CP less reliant on WP ecosystem.

That long version 1 span was already planned for, we will support v. 1 for a long time since it is the very first entry point for now.

Once the directory and v. 2 are out, it will be time to plan another little step to differentiate further… And go for it.

Rome wasn’t built in a day, it might be that what you envision can come to life one step at the time, best way to discover what future will hold is sticking around and maybe lend a hand make it happen.


Will definitely stick around. I am also “studying” the WP 4.9 code in depth to grasp a broader perspective on what is possible and what not. Thanks for your attention and kind words, I consider this the end of my initial doubts regarding CP.


Now you are describing Ghost. They have a plugin to convert from WP to Ghost, in the WP repository.

I did some research on those and many other alternatives, but I am not happy with what I found.

1 Like

That sounds like a solo project.

Dear John (aka Code_Potent). Yes, it is a solo project at the moment, but I don’t understand why you closed the topic. Discussions like this one can help shape the ideals and goals behind CP too. In the end… ideas are always the seed of everything.

And talking about ideas. I really like the idea of ClassicPress too and actually think it’s the logic way to go for people who want to keep using the plugins they are used to and not be too extreme on cutting original WP features (id est. keep compatibility).

In my case, I prefer developing my own solutions or taking well structured and simple open source ones from the online community. And having realized the mess that the WordPress heavy code-forest is, I really do not want to keep using such an “overbloated” system for the stuff I build, and that is where the CP requirement of keeping compatibility does not fit for me. There is too much disorder that has to be kept in order to leave compatibility untouched.

I understand the CP Team reasoning and actually find it pretty logic and I wish this project a great success.

What I mean with the proposed initiative is not something that I want to do alone or solo as you say. I just threw the idea into the wild (and not just for the fun of it, but because it actually answers the original thoughts I posted) so that maybe someone relates to it and may also feel like participating.

I don’t care about doing it alone or not. I just had an idea and want it to become real. Of course I said “It is a road I take towards my own vision”. But… what else could I have said instead? Is that not how new things start?

Opensource software is not about competing nor about being “solo”. It’s about people with common goals creating something for everyone.

Thanks @james for reopening the topic.

I will stay tuned on how CP keeps going.


You had originally asked about thoughts on custom post types and the conversation has now turned toward a new fork you’re working on which removes virtually everything. We’ve had a lot of issues with topics wandering all over the place – in many cases, this has made them far less useful which is why I closed this one after it started going off the original topic. And now we’re on to a new topic… IMO, this topic should not have been reopened – it should have been split, if anything. Maybe that’s not a thing anymore. :man_shrugging: Sorry for closing it.


Agreed. I wish you the best with your fork Alvaro. If you would like to discuss further then we will be here (though as Code Potent says, probably best to start a separate thread at that point).