Scott Fennell

Photo of Scott Fennell

Scott is a WordPress theme and plugin developer with a penchant for connecting the dots between services like MailChimp, Cloudflare, and GoDaddy. He has been published in A List Apart and CSS-Tricks.

Latest Articles

No kidding, there I was, checking my email, when I saw it: [RESPONSE REQUIRED] You’ve been selected as a speaker for WordCamp Maine! It’s more or less my professional goal to infiltrate the inner circles of the WordPress community, so this came as good news.  Even better, I already had my topic prepared because I’d written it as an ALA article some years ago.  The one problem?  Slides.  I had none, and if I tried to make…
I’ve been writing WordPress themes and plugins for about a decade and recently I’ve been putting more effort into curating a personal “boilerplate” folder for new themes and plugins. In reading through it, I can see what concepts and components have become habitual for me, regardless of the subject matter of the project. Some `Constant` Companions I declare the following constants: The purpose of this block is to introduce some basic data about our project,…
Some years ago when I first interviewed with LexBlog, the CTO reiterated several times that he really wanted me to be fluent in plugins, in addition to themes. I knew my way around plugins generally, but I liked the vibe I got from the interview and I wanted the job to work out well, so I stopped at Barnes and Noble on the way home: This book changed my working life profoundly. It’s no exaggeration…
Accessibility, also known as “a11y”, refers to how well a website functions for people with disabilities. Common examples of disabilities in this space include visual conditions like color-blindness, vestibular conditions like animation nausea, and motor disabilities such as cerebral palsy, which happens to be the focus of this article. The Feature I am tasked with creating a “jump menu” for navigating tag archives.  Something like this: There is no submit button.  By merely selecting a…
JavaScript wrangling has been among the most controversial topics in front-end development for a long time now. It’s right up there with tabs vs spaces and french press vs pour over. Here’s how we do at LexBlog in all current and foreseeable projects. The Global Object We kick off a plugin/theme JS file with a global that is namespaced for that project, containing handy functions used throughout.  Example:…
I was looking forward to writing about an intriguing bug in the new FireFox Quantum browser. I was looking forward to depicting the obscure CSS syntax that it bungles, and I was looking forward to explaining just what I plan to do about that. Given the rash of workplace abuses in the news lately, I’m not going to write about technology this week. Instead I’m going to write about the best advice I’ve ever heard:…
I often work with exactly one plugin active, other than the plugin I’m working on and its dependencies. That plugin is Query Monitor. QM adds a button to the admin bar that turns red when I make mistake, and reveals a treasure land of begun info when I click on it. QM is completely free and has inspired a vibrant community of side-plugins, that hook in and provide even deeper debug info about specific…
I try not to get overly technical in this space, but when I get a chance to implement one of my very favorite programming techniques, I have a hard time keeping it to myself.  I want to tell you about recursion.  Per wikipedia: A common method of simplification is to divide a problem into subproblems of the same type […] where problems are solved by solving smaller and smaller instances. Here’s the example.  Earlier this…
There’s nothing wrong with making mistakes, in fact I highly recommend it. However, if I make a mistake and I have no plan for preventing it from happening again, that feels pretty lame. One mistake I have made before, is forgetting if I am on a live installation or a staging installation. When I say live and staging, I’m referring to WP-Engine’s excellent system. I made this mistake recently while working on a site…
Recently our reporting software, NewRelic, alerted us that some of our code was running slower than usual: I was able to trace it back to a recent update where, in order to make our code more flexible, I began to register and accept default values for various database settings: Surprisingly, this added up to a palpable slowdown.  We have tons of options in our Apple Fritter theme, hundreds actually, so running this routine potentially hundreds…