Tracking versions of WordPress plugins in theme directories

On WordPress projects where the entire application is defined by the theme, it can be common to submodule or directly commit WordPress plugins to a directory like theme-name/lib. However, in doing so, you lose out on WordPress’ built-in update tracking. It would be cool to have a utility plugin that loads theme-specific plugins into the Manage Plugins […]

Using HTTP DIGEST authentication with WordPress’ wp_remote_get()

HTTP BASIC authentication (Wikipedia) is a form of client / server authentication where the username and password are base64 encoded in the request header. However, because these credentials can be easily decoded, BASIC authentication requires SSL for the request to be secured. HTTP DIGEST authentication (Wikipedia) permits more secure communication between the client and server over insecure […]

Love and profit for wp search-replace — thanks Pantheon!

Moving databases between environments is tough. Many things can break in the process, and a single issue can sink hours of your valuable time. Migrating WordPress databases between environments is especially tricky for two reasons: Instead of relative paths, WordPress stores full URLs in the database, in many different columns and tables. These URLs, along […]

Verifying WordPress migrations

It seems like every time I do a migration with the WordPress importer, something about my data breaks. For instance, while writing my Year in Review post just now, I noticed last year’s post has an incorrect image: The image should be the visualization. It would be really neat if I could verify a migration with WP-CLI. […]

Decisions, not options, in the WordPress Customizer

Earlier this month, I helped relaunch Pottery Barn’s blog. The homepage and each brand page (PBteen example) are moderately configurable through the WordPress Customizer. Building this functionality was an opportunity to make user-friendly decisions about the management experience. Smarter Featured Gallery By default, the topmost UI element on each homepage will display the most recent published post. […]

The pain of customizing WordPress themes

Choosing a WordPress theme from the Customizer is a bit painful. First of all, "Search installed themes" doesn’t make sense as a string on a hosted WordPress service. As a user, I have no ability to install new themes. It could be edited to just "Search themes" Second, as a user with a blog, I […]