Register WordPress Hooks Declaratively

Have you ever written any WordPress code that needed to register a lot of hooks — a lot of actions and filters? Have you ever forgotten to put the right number of $expectedArgs into the call to add_action() or add_filter()? Worse, have you ever forgotten your call to one of those? No more! This article … Read more

Good WordPress developer tools

This, a work-in-progress, is a list of good tools for WordPress developers. Plugins Query Monitor by John Blackbourn. Monitors pretty much everything that happens on WordPress page views, not just queries. WP Rollback by GiveWP.com. Reinstalls previous versions of themes or plugins. Demo Press by Milan Petrovic. Generates fake content and can create many posts, … Read more

WordPress plugin release tools

When developing WordPress plugin for distribution on the wordpress.org directory, we need some tools to automate the release process. It’s convenient to use github (or another source-code control vendor) to hold the day-to-day development source code. And, when we’re ready to release the plugin to the WordPress repository, we need to use WordPress’s Subversion (svn) … Read more

Reindexing tables with bad dates

Sometimes, upon adding indexes to MariaDb or MySQL tables with columns with zero-default dates you’ll get an error message like this: This happens because your server’s default sql_mode includes the NO_ZERO_DATE value. It is prevalent when working on WordPress indexes using phpmyadmin or some other MySQL client program. To prevent it, change the sql_mode before … Read more

Real users slow applications down

Anybody who’s worked with databases knows this: as they grow they can slow down. It’s the curse of the customer base. Successful applications gather users and other transactional data. In this article I’m using MySQL database queries based on WordPress’s database design. Still, the ideas in this article apply to every application built on any … Read more

Capturing and examining queries

This entry is part 2 of 2 in the series WordPress MySQL performance monitor

It’s straightforward to get WordPress to capture the MySQL queries it uses to generate each page view. We can then analyze the captured queries. Capturing WordPress offers a way to capture a list of the database queries it uses in each page view. It’s simple: define the global SAVEQUERIES symbol. You can define it permanently … Read more