Long ago, in the before times (around about 2019), a young Mage skilled in the craft of Pressing Words became aware of others looking to embark on the journey of learning this powerful magicks. He sought to create an aide, a guide for beginners taking their first steps on the path to their development. This guide became known as “Project Zero” and would grow and evolve to respect and hold true two of the Prime Dieties: Sehanine, the Moonweaver; and Avandra, the Changebringer.
Ok, so it’s been a while since I made any update on Project Zero. The last I posted about it was a good while ago, back when I launched it. And wow, have things changed since then.
What is Project Zero?
In case you haven’t been following, Project Zero was a free, open-source theme released under the GPL version 3 licence. I made it to help developers create their own themes by providing essential files and some helpful functions. It also bundled a few useful repos to make the work easier and better. Honestly, it was great.
Then things changed. I began talking to some developers who were looking to expand their own knowledge of WordPress. One developer complained about how it was difficult to add a portfolio without the need for a dozen plugins. I said each of those plugins would just create a new post type, and that doing so was pretty easy.
And yet that functionality had never made it into Project Zero. There was no reason why; it just never crossed my mind to include it. The first major development of the Project in a few years was now here. I set about doing a little research – more to make sure everything I did in my work was right.
And it turned out that … it wasn’t.
What has changed?
You see, in all my themes where I’ve used custom post types, I’ve built them into the theme. And yes, that included this one (eeeeep!!!). While that will still work, you actually should use a plugin to load them. That way, if you need to change your theme, you can and you don’t lose anything. Since your post data is controlled by your plugin and not the theme, there are fewer headaches.
So, now there is a problem: I’ve been using my themes for all of my custom post types. And this is bad practice. I want Project Zero to follow every best practice where possible. The solution would be to create a plugin with all of the required post types and be done with it.
Which leads us to today …
Long live Project Zero
What started as a quick beginner theme has now grown. Project Zero now comprises a classic theme and a plugin. (I have a block theme planned, but first I need to … you know … know how they work.) They work well together and utilise a number of WordPress best practices.
Not only that, but the theme acts as an actual theme, not just a skeleton to use to build your own. I’ve also included webfont files from Font Awesome and Google Fonts – locally, to help prevent issues with GDPR and with rate limits on loading fonts. I will update these when new versions of the fonts are released. There have been a few cleanups made, and there is a simple CSS file, as well as a theme.json
file to help with the Block Editor.
The plugin contains a single custom post type and a template that can be used if the theme doesn’t have one. It comes with a metabox for custom metadata, and an options page to help add site-wide options to your installation.
Meet the new release
Project Zero is now two separate items: A basic theme to build on top of, and a basic plugin. So that I can
I named the theme “Sehanine”, after the Moonweaver deity from Dungeons and Dragons. She appeared in the live-play stream Critical Role. She is the Goddess of illusion and misdirection, appearing in a number of forms as fit her purpose. She’s probably the best deity to name a theme after since the purpose of one is to create a new image for your site.
I named the plugin “Avandra”, after the Goddess of freedom, travel, adventure, and luck. Adding plugins comes fraught with issues. But WordPress is built on freedom, and plugins are one of the best mechanisms to exercise that.
And documentation?
And there is documentation, or at least it is in development. Far better documentation than the last release. Yes, it is taking some time. A lot of time. Topics are now more in-depth, cover a larger array of elements, and give examples. I’ve also included headers in the code to help find appropriate references in the WordPress Codex. There is a lot of documentation here, and I am adding more to it.
There will be more to come with Project Zero. As WordPress adds more to its core software, I will add more to help developers. This is a project I ultimately benefit from, so I will revisit it often.
Fork off!
You can also contribute to the Project. Head on over to github.com/cocodedesigns/pzero-theme to get a copy of the theme, or github.com/cocodedesigns/pzero-plugin to fork the plugin. You can also push your code to the Project, and I will review it.
I can’t wait to hear how Project Zero helps you in your work. Head on down to the comments and let me know where you’ve used it, or if you have plans to. Also, tell me what you would like to see in the project. I’d love to hear from you.