How did I not know about ClassicPress before now?

ClassicPressI’ve been using WordPress for 15 years, and have made it my go-to platform for all new websites I’ve built since 2014. So how is it that it took me three years to discover that ClassicPress exists, especially since its whole raison d’être is to keep the pre-Gutenberg dream of WordPress alive?

On one hand, being a solo developer — even before the pandemic — has always kept me a bit out-of-the-loop, especially since I don’t attend conferences. But I suspect the fact that I knew nothing of this also speaks negatively to the project’s future.

Is it gaining enough traction to continue to exist? Is it really a viable option to use on new professional projects in 2021?

Has the Gutenberg ship sailed? Well, yes, it has. But my issues with the current and future state of WordPress go beyond Gutenberg, to the nature of Automattic’s role in steering the ship, the greater vision of what WordPress is and should become, and… well… Matt Mullenweg’s personality. I feel like the future of WordPress is increasingly diverging from what I hoped to get out of it as a platform, and it’s clear that I’m not alone. That’s why ClassicPress exists.

There are a lot of things to like about ClassicPress, right out of the gate, besides the most obvious element, which is the absence of anything Gutenberg. It does away with a lot of the cutesy crap that’s rolled into WordPress by default, not least of which being the annoying proliferation of the word “howdy” and the beyond-pointless-to-actively-detrimental* plugin Hello Dolly.

As I look to my own future with WordPress and/or ClassicPress, I am primarily thinking about two things: 1) how/if I will continue to use it as the platform of choice for client projects, and 2) what the future will be for the plugins I have contributed to the WordPress community, and more specifically, my commercial plugin, ICS Calendar Pro.

I’ve been struggling with these matters for almost four years now, ever since Gutenberg emerged on the scene and went through its early phases of absolutely sucking, to its too-soon release as the default WordPress editor, to its current state as a mostly good but highly quirky and weirdly limited page building tool.

The timing was not great for me, as I had just recently gone “all-in” on 34 Blocks, my own block-based starter theme that I have been using to create all of my client sites since 2017. It started from a series of one-off client themes beginning around 2015 and is built around Advanced Custom Fields and its “Flexible Content” fields. It’s all much more in line with what “WordPress” has always meant to me. But as WordPress becomes Gutenberg, my vision of what this tool is and the reality of what it has become are increasingly at odds.

In those four years I’ve been bouncing around between several different ideas:

  • Suck it up and finally embrace Gutenberg development, learning a bunch of new stuff like React, in which I am not only wholly disinterested but with which I philosophically disagree?
  • Cling for dear life to Classic Editor and pray the gods of Automattic keep it on life support?
  • Switch to an entirely new platform, whether that might be another open source or commercial CMS, or a complete SaaS approach like Squarespace?
  • Get out of the web development business entirely?

So far, I’ve mostly stuck with “cling for dear life to Classic Editor” although I have been tempted a great many times to “get out entirely.” My enthusiasm for this field hasn’t been helped by things like the caustic toxicity of social media, the rise of absolutely godawful and not-at-all-intuitive-regardless-of-their-claims-to-such interface concepts (see: Google’s Material Design), and technical snafus like Digital Ocean’s entire subnet getting spam blacklisted and them doing absolutely zero to rectify the situation.

I’ve been taking baby steps towards making sure I’m not caught out when/if they pull the plug on Classic Editor. My 34 Blocks theme is to the point where it works adequately in the Gutenberg environment, and I’m even moving it towards a potential future where I would scrap my ACF Flexible Content blocks altogether, in favor of Gutenberg blocks.

But I’ve also made sure ICS Calendar is backward-compatible with WordPress 4.9, so it works with ClassicPress. And I’m still looking at other tools, now and again, in case I need to switch directions entirely.

It’s happened before. After the first half of my career consisted largely of building “bespoke” CMSes for corporate overlords, I went out on my own. From 2008 to 2014 I sunk thousands of hours into the development of a feature-rich, completely custom-built CMS based on the CakePHP framework, which I used to create about 10 client sites per year throughout that period.

But the writing was on the wall for that project when I found it impractical to upgrade the CakePHP core past version 1.3, which was incompatible with PHP 7. (CakePHP is currently up to version 4.1 and now requires a minimum of PHP 7.2, for an indication of just how doomed my old CMS project was.) By 2014 I gave up on it and switched to WordPress. Has the time come to move on again? If so, I feel like in some ways, switching to ClassicPress would be a step backwards, or at best a lateral move, and would not set me up well for the future.

Where does that leave me? I don’t know. There are options. But embracing Gutenberg and the future of WordPress is not at the top of the list. If anything, it’s never been lower.

* Why is Hello Dolly detrimental? The justification for its inclusion in the default WordPress build is that it is a demo for new developers to learn how to build a WordPress plugin. The problem is, it’s a terrible, no good, entirely wrong example of a plugin. It’s ancient and doesn’t conform to any modern WordPress coding standards, and it’s so rudimentary that there’s no useful structure to build on for people who want to create an actually useful plugin. So why is it still included? I don’t buy the “demo” argument. It’s still there because Matt wants it to be, and that in a nutshell is my problem with Automattic running the show. (I mean look, he even “cleverly” misspelled the company name so his own fucking name is embedded in it. That annoys me every damn time I see it… almost as much as “howdy.”)

WordPress might not be showing your Custom Post Types and Custom Taxonomies on the Menus screen for a really stupid reason

I’m working on a new WordPress site that’s going to have both custom post types and custom taxonomies, and I want my custom taxonomies’ archive pages to be in the site’s navigation menu.

Seems like it should be easy, right? If you set show_in_nav_menus to true in register_post_type() or register_taxonomy(), you’re supposed to get access to add them to your menus.

But when I set that, they still didn’t appear on the Menus screen. What the…?

I found it exceptionally difficult to track down any information about this, although I did eventually find a tutorial on the very subject but… whoa, those are some old screenshots! The tutorial is a decade old.

Nonetheless, I proceeded to try to make it work, with extensive customizations to suit my needs. Strangely — and it should have been a clue to me — they wouldn’t appear if I gave the meta boxes the name of my custom taxonomy, but if I gave them an arbitrary name, it did work. But there were still some quirks, so I started digging around in the inspector to figure out what was what. Then I discovered something really odd.

They were already in the page. Only, they weren’t displaying. That’s because they all had a CSS class hide-if-js applied. So what’s that all about?

Well… it was really stupid. They were “unchecked” under Screen Options. You know, that little tab at the top right of every WordPress admin page.

My best guess here is that it’s because I had already been to the Menus page for this site before I started building the CPTs and taxonomies, so when I added them to the theme, my personal preferences for Screen Options on the Menus page had already been set, and therefore they defaulted to “unchecked.”

That seems kind of stupid. More specifically, it seems stupid that WordPress gives you the option to turn the items in the Add menu items list off. But it definitely should default any new items that suddenly appear, i.e. that are not already “on” or “off” in your preferences, to “on.” So you, like, know they exist.

ST:TNG Treadmill Reviews #59 and #60: All Good Things…

No, I didn’t skip ahead to the series finale in season 7. But this will be my last entry in the ST:TNG Treadmill Reviews series, wherein I will cover the last two episodes I watched, but didn’t get around to reviewing earlier.

Why am I ending this? Three reasons:

  1. The weather is getting nicer and I’m prepared to run outside again. In fact, this afternoon I ran outside for the first time since Thanksgiving-ish.

  2. I had been losing steam on the treadmill. Even though I was still watching full episodes, I was finding it harder and harder to stay motivated to get past 3 or 4K — or sometimes 2K. On top of that, my timing was often bad, where as soon as I was done on the treadmill, it would be time for a shower and dinner, and not so much sitting around at my desk in sweat-soaked running shorts opining breathlessly on my blog.

  3. Our treadmill died yesterday.

The treadmill probably can be fixed, but with the other two factors having already piled up, that was definitely “strike three” for me to wrap up this blog series. Plus, 60 is a nice round number. The Babylonians thought so. As good a place as any to call it quits on a project I had concocted primarily to get myself through the winter without turning fully sedentary again, now that winter is (mostly) behind us.

Anyway… I’ve got two more episodes to review, so let’s get to it!

#59

In Theory
Season 4 Episode 25
Original airdate: June 1, 1991

Netflix Synopsis

When a female crewmember is infatuated with Data, he decides to give a romantic relationship a try.

My Brief Review, What Passes for a Memorable Moment, and the Whole Episode Is About a Crew Rando, So Let’s Get It All Over With Under One Heading

Ugh.

No, actually, it’s not that bad. But I do feel a bit sorry for Lt. Jenna D’Sora. That is, I would have felt sorry for her if the very idea of getting into a romantic relationship with an android weren’t so obviously stupid. One thing I’ve always wondered: what does it feel like to touch Data? How skin-like is his “skin”? And how hard is whatever is under it? What’s his body temperature? Etc. Not to mention what it would be like to kiss him. Which she does. Repeatedly.

There are some highlights. Data programmatically instigating a “lover’s quarrel” — yelling “You’re not my mother!” Data ludicrously turning on his “seductive” chip or whatever. But for the most part this relationship story is not compelling.

Meanwhile, something completely unrelated and, once again, far more interesting (to me) than the personal drama we spend most of the episode dwelling on, is unfolding. The Enterprise is attempting to maneuver through a dangerous nebula. A “dark matter” nebula. I love how TNG went all-in on incorporating up-to-date cosmology and theoretical physics into storylines, even if sometimes it didn’t make any sense. I’m not sure if such a thing as a “dark matter” nebula exists, but if it does, I’d be surprised if a human spacecraft could interact with it at all without being destroyed. (But I may be conflating dark matter with antimatter. Oh did I mention that they somehow have developed a means of containing antimatter, which is how they power the ship?)

Would musicians in the 24th century really be using paper sheet music? A lot of us don’t even do that anymore now!

I forgot to mention, the episode starts with a woodwind quintet (!) performing in Ten Forward, featuring Keiko on clarinet, Data on oboe, and Jenna on flute. Plus two super-randos on bassoon and horn. (The bassoonist is a non-humanoid alien who would appear to be more at home in Mos Eisley.)

Anyway… a surprisingly weak episode this close to the end of the season, but it did air in June. May sweeps were already over, so they had to stick in one more throwaway episode before the exciting season finale cliffhanger!

Distance Rating: 2K

IMDb score: 7.2/10

#60

Redemption
Season 4 Episode 26
Original airdate: June 15, 1991

Netflix Synopsis

Both Capt. Picard and Lt. Worf must decide where their priorities lie as the Klingon Empire descends into civil war.

My Brief Review

Gowron is in it. Enough said.

Memorable Moment

Worf gets his honor back, which involves holding a nasty looking Klingon dagger by the blade, slicing into his hand, while Gowron says the magic words that clear his family name.

Crew Rando

Not a member of the Enterprise crew, but who’s that Romulan lurking in the shadows, conspiring with Duras’s duplicitous sisters? Gasp! It’s Tasha Yar! But… but… how??!

ANOTHER CLIFFHANGER!!!

I remembered that it was her, and so I recognized her voice, and was not at all surprised when she appeared at the final moment of the episode. Eventually I will get around to watching season 5 so I can be reminded of what happens next!

Distance Rating: 4K

IMDb score: 8.5/10

ST:TNG Treadmill Review #58: The Mind’s Eye

The Mind’s Eye
Season 4 Episode 24
Original airdate: May 25, 1991

Netflix Synopsis

La Forge is brainwashed by the Romulans and ordered to assassinate a Klingon ambassador.

My Brief Review

This is a pretty great episode that I don’t remember ever having seen before. We haven’t had a lot of Geordi attention in season 4, so it’s nice to have an episode that features him.

It starts off like a number of other episodes, especially in this season: a crew member (in this case, Geordi) is in a shuttlecraft, far away from Enterprise, when a Romulan warbird uncloaks in front of him. Bad news! Why they ever let shuttlecraft fly outside of visual range of the Enterprise, I’ll never understand. Something bad always happens.

The Romulans beam Geordi aboard their ship, send a half-assed Geordi lookalike in a cheap knock-off VISOR to take Geordi’s place on his trip to an engineering conference on Risa (another place where something bad always happens), and proceed to undertake an aggressive behavioral reprogramming process on Geordi, while also hacking his VISOR to allow them to transmit orders directly into his brain.

The intrigue is all focused on getting Geordi to assassinate a Klingon colonial governor (not an ambassador… the ambassador is there, but — spoiler alert! — he’s in cahoots with the baddies), thereby destroying the Federation/Klingon alliance and plunging them into war, to the benefit of the Romulans.

Ultimately Data figures out that Geordi’s shuttlecraft had been tampered with by the Romulans, and he pieces things together — far more slowly than I would expect his positronic brain to be capable of, to be honest.

It’s probably worth mentioning (gasp!) that I’ve never seen The Manchurian Candidate and leave it at that.

Memorable Moment

There are plenty of interesting moments, including when Geordi unknowingly hacks the Enterprise’s transporter system, and then innocently joins in the effort to try to track down who did it. My favorite random bit of weirdness though is when Geordi is summoned to the Klingon ambassador’s quarters, where he tells him how he should commit the assassination. The ambassador is sitting down in front of a massive Klingon feast, and here’s the bit I just can’t get over. He very carefully unfolds a cloth napkin and places it in his lap before digging in. What true Klingon would do that?!

Crew Rando

They aren’t real, but during Geordi’s reprogramming, he’s put into a simulation of Ten Forward, where he is ordered to assassinate Chief O’Brien. After an initial hesitation, he goes through with it, and then asks O’Brien’s two companions if he may join them. They agree without reluctance, Geordi pushes O’Brien’s lifeless body aside, picks his chair back up, sits down and drinks O’Brien’s drink! Damn! (Is that really how the Romulans think humans would react in that situation?)

Distance Rating: 3K

IMDb score: 7.8/10