Headless Theme vs. Plugin

Continuing Discussion from Headless Theme 1.0.0 :

Most of this seems like plugin territory.

I’m fine with that. The theme doesn’t create any content, post types, etc. Everything is done on-the-fly, so, users can switch themes at any time without losing anything.

Update: I hadn’t planned on creating a page for the theme, but, it was needed for the “more info” link. Ah well. https://codepotent.com/the-perfect-theme-for-headless-classicpress/


I’d tend to agree with this but as we did in the WPTRT, there will always be that 1% of themes that are an exception to the rule.

Given the use case here, the Headless Theme falls in that 1%.

When/if we do eventually have a CPTRT I hope we will be willing to be more flexible than the WPTRT has been in the recent years :slight_smile:


Well they would lose those things I listed. That’s the whole point.
And if it’s headless, why talk about styles at all?
And if it’s headless, why have a theme at all? Just set WP_USE_THEMES to false and you’re done.

No, they wouldn’t. Upon deactivation, the header cruft is restored, the rewrite structure remains untouched, 404s are still handled, and the various feeds come back to life. They lose nothing.

To style the index page, of course. Nobody wants a white screen. And, if they do, they can have one.

Because it looks better.

Moreover, you have made it clear that you’re not in support of this theme as-written. And that’s fine, too. Perhaps we can just agree that there are different strokes for different folks. This method really doesn’t tread into any areas that lead to the common problems of adding functionality to a theme. :slight_smile:

Edited for tone.


I don’t know, but I think we should learn a proper way to dissatisfy things we are not interested in, a little encouragement would go a long way…

Statement like… Good idea but why not do it this way and that way.

I believe we are all trying to shape CP into a good path.

So, @anon71687268 take it as a pinch of salt, and keep grinding.


@anon71687268 I’d be interested in seeing a live site built with this theme, and maybe a blog post on codepotent.com walking us through site design/development. You know, when you have nothing else to do. :slightly_smiling_face:


Hey @raygulick - long time no type! :smiley:

You can see a live implementation at updates.codepotent.com which is the domain that serves my plugin update data. A couple others have shared their own implementations via Slack DMs, as well… I’ll let them post their own links, just in case I was getting a sneak-preview not intended for public eyes.

I did create a short tutorial on this in response to a question that was wondering which plugins to use to create a headless installation that could serve specific data. As it turned out, I had just created exactly that just days prior. The Headless theme is essentially an installable version of that post. If you have any specific questions about the theme, design decisions, or implementation, feel free to open a post and I’ll be happy to help.


Thanks! I’ll check out these links.

1 Like

Here’s a quick implementation I did (5mins in all) - library.classicelements.page

This will serve as the Templates library for Classic Elements (a fork of Elementor) server where the site does not require a frontend but I didn’t those that somehow ended up landing on the site being greeted with a blank page :slight_smile:

With a little tweak via a child theme the theme will work perfectly well with Classic Elements for sites that only have landingpages.


Ah, there’s one! By the way, I like your particle.js implementation better than mine! You can remove that underlying image if you want…I won’t be sad. :slight_smile: it’s actually just the theme screenshot…it can be overridden in your child theme with:

/* You can use "none", a hex value, or an image URL to customize it. */
html {

I used some of what @anon71687268 had in his theme example, but set my page to do a redirect.

So visiting my update server just does an immediate redirect to my development site.

1 Like

That’s an implementation that I hadn’t considered… cool! Always love seeing and hearing how others are putting the work to use!

1 Like

I know you wont be but I think it gives page a bit of character :slight_smile: