Gutenberg is an ambitious project that aims to completely overhaul the experience of writing content in WordPress.
One of the problems you’ll soon run into when building a block for Gutenberg is that as a block becomes more complex, storing its complete output statically becomes undesirable. If a block contains several fields or its output contains HTML markup, you don’t want to find yourself in a situation where this output needs to be changed at some point in the future and you need to retrospectively apply changes to stored block output in every post.
Gutenberg supports dynamic block rendering so that you can perform more complex output rendering on the fly, without having to store the complete output when the block is saved. This is the same method that shortcodes in WordPress use and allows you to move away from static block output. If you’re building a block for Gutenberg that uses anything more than very simple output, you should consider using dynamic rendering.
You can take this one step further and build a dynamic block for Gutenberg which uses a theme template part for its output. This way, the theme on your site really is in control of its output, regardless of where the block is registered.
Continue reading “Rendering Dynamic Gutenberg Blocks in Theme Template Parts”
Ever wondered about situations where WordPress sends an email? I documented them all & how to filter or disable them.
The document lists every situation where WordPress sends an email, along with how to filter or disable each email. It’s accurate as of WordPress 4.9, and will soon include some upcoming changes in WordPress 5.0.
Recently I’ve been working to reduce the Travis CI build times of not only WordPress core, but also the WordPress plugins and projects that I maintain.
I’m going to use this post to document patterns and tips that you can use to speed up your build times. Comments welcome!
Continue reading “Reducing Travis CI Build Times for WordPress Projects”
Last updated April 2018.
Here’s a list of the various talks (mostly WordPress) that I’ve given in the past, and links to the video recordings and slides when they’re available.
Zen Mode: Developing While You’re Offline
Those of us who work in the web industry find that we’re online a huge amount of the time. Going offline can make us feel disconnected. But what about going offline while we’re working? Right at the time when we think we’re most likely to need an internet connection: to get our job done.
Working offline can be highly productive, and is often calming and focused. Whether we choose to go offline, or whether our surroundings make it necessary — such as while we’re traveling — having the right tools, environment, and frame of mind allows you to make working offline a joy.
In this talk, I cover the tools and approaches that I use to develop while I’m in zen mode and not connected to the internet.
Continue reading “A Collection of My Talks”
I was recently investigating the code coverage of the
map_meta_cap() function in WordPress’ core unit test suite — particularly the large
switch statement contained within the function. I was surprised to see that the coverage was higher than I was expecting, because I know for a fact that several meta capabilities aren’t tested.
It turns out there is a subtle code coverage reporting issue for switch statements that allow multiple conditions to trigger one action.
Continue reading “Misleading Code Coverage Reports for Switch Statements”
For us, there’s so much more value to be gained from building on each other’s work and knowledge than trying to hold on to a short-term technological advantage.
ustwo: An Open Source Example of a React-Powered WordPress Site
When I’m preparing a new release of one of my plugins, its Git commit history is a great starting point to use when writing the changelog.
Rather than dealing with a bunch of parameters in
git log, I use a simple Git alias which generates a plain list of the commit messages between the previous tag and the current HEAD. I can then copy and paste this into my changelog, and go from there.
Continue reading “Git changelog generator”
Last updated for WordPress 4.9.
Did you know that the
index.php file in a WordPress theme can be empty? There’s no need for it to contain anything at all, as long as you have the following template files in place:
Continue reading “ASCII WordPress Template Hierarchy”
Here’s a list of the developer-oriented plugins for WordPress that I use on a regular basis. (Alternative title: 10 WordPress Plugins You Can’t Live Without. You’ll Never Believe What Number 4 Does!)
Continue reading “WordPress Developer Plugins”
Last updated: September 2015
Blog posts like these (the latest of which is Dominik Schilling’s) have helped me find packages in the past, so I thought it was time I published my own.
I use Sublime Text 3 for the same reason as Dominik. It’s exceptionally fast. One day I will inevitably switch to the free and open source Atom editor, but it’s got a long way to go until it can match ST3’s performance.
Here are the packages I use:
Continue reading “My Sublime Text 3 Packages”