Featured WordPress

WordPress Drop-In Plugins?

You know all about WordPress plugins and may have heard of Must-Use plugins, but what about “Drop-Ins”?

In WordPress, there are three types of plugins:

  • Regular plugins – in /wp-content/plugins/ and can (generally) be activated/deactivated/updated via wp-admin’s UI.
  • Must-Use plugins – in /wp-content/mu-plugins/. Only PHP files in the mu-plugins directory itself are detected and they are always loaded—you “must use” them. You can’t deactivate them or update them via UI. You must delete or move the file to deactivate and must manually update via FTP or some other out-of-WordPress method.
  • Drop-Ins plugins – in the wp-content but only specific file names. They replace/augment very specific functionality within WordPress.
File name
Caching functionality
When WP_CACHE is set true.
Replaces WP’s default database handling.
Custom DB error message.
Completely replaces the error page that usually says Error establishing a database connection.
Database Error
Custom install scripts. Allows someone to override wp_install() or any other function in wp-admin/includes/upgrade.php
WordPress installation
Custom maintenance message. Completely replaces the Briefly unavailable for scheduled maintenance. Check back in a minute. error page.
During plugin/theme/etc updates.
Functionality specifically for an object cache.
Very early loading functions before multisite starts to load.
When SUNRISE is true. Multisite only.
Custom error message when loading a deleted subsite.
Attempting to access a deleted subsite. Multisite only.
Custom error message when loading an inactive subsite. Attempting to access an inactive subsite. Multisite only.
Custom error message when loaded a suspended site.
Attempting to access a suspended subsite. Multisite only.

The list is very specific and, in many cases, providing a quick replacement to an error page where it may not make sense to try to add via hooks or filters.

The kicker is the caching ones—advanced-cache.php or object-cache.php—are often added by the installation/activation functions of caching plugins but are not always removed when uninstalling. If the caching plugin is deleted via the file manager instead of a typical deactivation, it wouldn’t be able to delete the drop-in either.

If you run into situations where you’re trying to debug something and it seems like there is mysteriously cached items. Check out the wp-content directory and try renaming those files to force-deactivate a cache if there are seemingly no normal caching plugins active.

Microblog Site Info WordPress

Keeping It Clean

I went through my debug log tonight, which had been a bit long mainly due to older plugins throwing warnings in PHP 7.

Of four plugins generating PHP 7 warnings, two had merged-but-unreleased fixes, one has a pending PR that I could apply and confirm working, and wrote a PR for the last one.

Clean logs here I come!

Featured Microblog Technology WordPress

More blogging and less social media

Entering 2018, I plan on setting a New Years’ resolution of using social media less, and blogging more.

Source: More blogging and less social media

The founder of Drupal, a “competing” CMS to WordPress hits the nail on the head here. I’m planning on doing the same.

I do like that I look up old friends on Facebook. I like it as a directory, but as a content consumption tool, it seldom brings joy to my day. Maybe if it had a filter to only display “life news”—weddings, births, illnesses, deaths, new jobs and the like.

So yeah, here’s to blogging more and owning my own content more in 2018.

Microblog WordPress

Mobile App UI Fail

This morning, I needed to post a quick note to my team’s p2 about a scheduled standing meeting today I would be missing. I often use the mobile app for posting something short like that (and this post).

This works well until when I post it to this site instead of the p2.

Would an “Are You Sure?” be a good idea for publishing?

Featured Technology Web Development WordPress

The Open Web

The most powerful aspect of the Internet is the open web. From the very beginning, there has been a conflict with on one side walled gardens and closed networks with open standards and interoperability on the other.

My first experience with an online world was dial-up into AOL and exploring their internal experiences. Only rarely did I click the button to go into the unknown and wild internet. AOL controlled everything within their experiences.

For awhile, we had a golden age of blogging. People would comment on each other’s blogs. If you wanted to write a novel in response to someone, you did–on your site. When you did, a trackback or, later on, a pingback would automatically alert the original post and a little ad-hoc social network between two sites was created.

Feed readers provided a place for people to aggregate their blogging experience. From there, easy publishing and content aggregation fell in love and gave birth to social networks. This path wasn’t intended or necessarily in mind when Facebook or Twitter started, but nevertheless.


In all of this, having your home belong to you is important. A business whose online presence is their social media page is placing all of their eggs in one basket hoping that it isn’t in the platform’s business interests to change the system to your detriment. Even on site-builder platforms, which do give you your own website, do not give you any means to take that content with you whenever their platform or your needs change.

Having a home that you control is important, but now you have to maintain your main online presence and your Facebook page and your Instagram account and your Twitter feed and maybe blog on Medium too and so on and so on. The open web is being lost.

I want to see the WordPress ecosystem do more toward building up the new open web. Whether it is directly in Core or experimented with via Jetpack, there is a large user base who would benefit by modern and advanced open web technologies. There is a solid group of folks who believe in an open and independent web who have helped create standards and systems to interoperate, but it’s hard to gain adoption without the baking of something with the heft of Facebook or Twitter. is what turned me on to the modern standards. aims to be, more or less, an open Twitter. You can pay them to run your microblog or it’ll pull in your WordPress site (a special site just for your microblog or, in my case, just a category). Reading more about the tech behind it, such as webmentions–which I had heard of before but never took the time to read up on it–gave me a new excitement for the future of the web that I haven’t had in awhile.

What can we do to help continue this excitement? WordPress has considerable pull. When it supports something, it gets noticed. If we can figure out how many make webmentions work well, would Facebook or Twitter begin to support them in some way?

To this end, I would like to dedicate some of my free time toward exploring this more. Specifically:

  1. Update the PuSHPress plugin. It is currently on and available for self-hosted sites using an older version of the now-called WebSub W3C candidate recommendation. Automattic already has that much and it gives me a good place to start.
  2. Find small places in Jetpack that we can work toward supporting these efforts in a frictionless way. One example is storing Publicize URLs locally so plugins like Syndicated Links can use that information. In this case, with a Facebook or Twitter link stored in Syndicated Links, a service like can better get webmentions sent to your site. It isn’t required, since they’ll likely have links back to your site already, but again, small things to close the gap.
  3. Determine what could webmentions support in WordPress naively look like. What makes sense to be added to Core and how to make it expandable in a way that doesn’t tie our hands down the road. (Post formats, anyone? Pretty soon after they launched, the issue of not enough structure on how they worked ended up resulting in a pretty random experience. 3.6 tried to fix it, but, in many respects, it was too late.)
  4. More broadly, think through how else we can positively include ripe standards. Like a recent Jetpack fix to make our recipe shortcode compatible with

The hard part is keeping the end user in mind. I’ve recently setup a few pieces of indieweb concepts on my site, but it isn’t something that I would expect my wife or a random end user to do. It isn’t obvious why one would do this, it is a bit clunky, the workflows aren’t straight-forward yet. I think they can get there.

The dream isn’t to return to the past before social media, but help make social media part of the web in an organic way. For this post, you can like it or comment it on via this site,, Twitter, or Facebook, but all of the comments will appear here using Webmentions. The closed gardens will still exist, but it’ll make it easier for people to reach out between them.

I know I’m very late to the party after a tiny bit of research I’ve done so far. I’ve seen the same names pop up all over the place. These folks have worked very hard to get where it is now and I’m sure they know of dozens of roadblocks I couldn’t imagine today. But, I hope that, even if I’m late, there’s still room at the table.

How about you? What would you like to see move forward in the evolving open web?

Microblog WordPress

Matt and Om at WCEU 2017

Until the polished version is out, you can watch today’s WCEU Q&A with Om Malik (@om) and Matt (@photomatt) via the livestream video. I’m excited to see what we can do to improve the open web.