Uncategorized


  • Exclude Posts Plugin

    WordPress’s Query Loop Block is vital to building block theme sites but it’s missing a a critical feature: The ability to exclude specific posts. I’ve created the Query Loop Exclude Posts plugin to add that. Here’s a super common pattern seen on many blogs: a set of related posts displayed at the end of the…


  • Project Icons

    Project Icons

    Nearly every significant project I work on requires a custom set of icons. It’s always been a little hard to give site editors a nice, straightforward way to add the brand-correct icon to a page or a button. I’ve created a tidy little plugin to make it a little easier to manage. Project Icons is…


  • More Flexible Mobile Menus

    Full Site Editing in WordPress is full of potential but hasn’t fully matured. One big challenge is how to handle navigation for both desktop and mobile visitors. There are several common scenarios where the Navigation Block provided by WordPress doesn’t work well. Lots of items in the desktop navigation Plative’s header seems pretty straightforward but…


  • Use Create-Block for a Multi-block Plugin

    Nate Finch wrote post on the WordPress Developer blog about how to use Create-Block to make a multi-block plugin. I’m condensing that here so it’s easier for me to remember and find. First use create block to make a block plugin. Run from within the /wp-content/plugins directory: Then delete the contents of /name-of-plugin/src Then cd…


  • Extending Blocks with Block Editor Filters

    The WordPress Block Editor has a number of filters to let us extend a given block but the documentation left me scratching my head. I had a project where I needed to add style variation to headings and paragraphs that added a little decorative line above the block. Then we needed a control to set…


  • Block Templates and Block Styles

    I regularly build custom blocks for clients. They very often contain a set of InnerBlocks called a template. The syntax for this is not well documented. The template is an array of blocks. Each block is an object with the block name as a string, an array of that block’s properties, and, optionally, an array…


  • FoundationPress Generator

    I’ve been using Foundation for a long time as my go-to front-end framework. I’ve been very grateful for the Foundation Press starter theme. While some starter themes are stripped too bare and others come loaded with too much, Ole Fredrik’s theme strikes the Goldilocks zone. I’m also a big fan of how quickly the folks…


  • SVN in a Git world

    I mostly use the Git version control system in my workflow. The one exception is for WordPress.org plugin repos that still use SVN. Since I rarely use it I just spent a ton of time re-learning how to deal with it to update my Featured Authors Widget plugin. Here are my notes. This is mostly…


  • New WordPress plugin: Featured Authors Widget

    I’ve posted up a plugin to the WordPress.org repository, Featured Authors Widget. I built it for Article-3.com but it’s a useful plugin for anyone with a multi-author WordPress site that wants to showcase particular authors. You can read the full details here or just head over to WordPress.org to download it.


  • Big fun with preg_replace_callback

    I had a job that required creating a custom input filter for Drupal. It turns out to be pretty easy but I had a heck of a time finding documentation on it that made much sense to me so here’s my explanation of how to do it. The magic is all done by the PHP…