Gathering diagnostic data for plugin support

What’s this problem? WordPress plugins run on a variety of sites running on a variety of server configurations, and a variety of other plugins. It’s common for unexpected configurations to cause trouble for plugin users. Then, users open support threads saying “something went wrong.” The plugin authors then need to ask for configuration information to … Read more

Improving WordPress core search

WordPress’s core search capability is very simple and very primitive. That can be frustrating. We’re spoiled by Google, Bing, and the other search engines which have had decades to get really good. What makes them good is a lot of information beyond the content of any given site, and thousands of programmer labor years making … Read more

Elementor Performance

I’m seeing a lot of questions about sites being slow. Anecdotally, it seems like many of those are Elementor sites. So a database performance fanatic like me smells an opportunity to make improvements. Some of the WordPress punditocracy says “don’t use Elementor”. But, they have over ten million downloads. So let’s help those sites if … Read more

Slow searching for WooCommerce orders

Background WooCommerce offers a search box on the WooCommerce -> Orders page. It lets a shop manager search orders, current and historic, for the customer’s name, address, email, and other data. It also searches the names of products and shows orders containing those products. On large sites with many orders, the search is astoundingly slow. … Read more

SQL_CALC_FOUND_ROWS in WordPress

Background When presenting so-called “archive” pages of content to users WordPress uses the notorious SQL_CALC_FOUND_ROWS MySQL extension to populate its display that looks something like this. This kind of user interface is known as “pagination” because it lets the user select pages of results. So, it’s really useful. The phrase “Showing 1-12 of 1348 results” … Read more

Slow WordPress Queries

Index WP MySQL For Speed, the WordPress plugin, allows users to monitor their MariaDB or MySQL database traffic and upload the results of those monitors. It gathers information about the queries, including how long they take and how many there are. Analyzing the uploaded monitor data allows me to identify the most frequent queries and … Read more

Sonic search: notes on its use

I have been working on a WordPress search plugin to use Valerian Saliou‘s Sonic search backend. It is a lightweight alternative to backends like Elastic Search. Its straightforward approach to normalizing natural language queries makes it useful for searching WordPress content. And its speed and feature set lend themselves gracefully to autocompletion. Using Sonic in … Read more

Names in WordPress settings API

To plugin developers WordPress offers the Settings API. It lets us define settings pages, sections within those pages and fields within the sections. WordPress Settings API We use WordPress options to store configuration variables for our plugins. The settings API lets us create pages in the WordPress back-end dashboard to allow users to enter and … Read more

Jetbrains Gateway is really nice

Jetbrains, the Czech company that makes PhpStorm, WebStorm and Intellij-Idea, has their Gateway product in beta. It works like this: you run the Gateway software on your desktop machine — you know, the one with the nice display — and it connects to some other development machine to run your IDE. I’ve been using it … Read more