The Right Way to Customize a WordPress Plugin

Video: I presented on this topic at WordCamp Dayton 2014. It’s very common for developers to customize and extend existing plugins to fit their own needs, which is one of the great advantages of using open-source software. They often do it by making their changes directly to the plugin, though, which creates a security vulnerability […]

Continue reading...

Conditionally Loading JavaScript and CSS in WordPress Plugins

Update 1/2/2013: As of WordPress 3.3, it’s now possible to call wp_enqueue_script() directly inside a shortcode callback, and the JavaScript file will be called within the document’s footer. That’s technically possible for CSS files as well, but should be considered a bad practice because outputting CSS outside the <head> tag violates W3C specs, can case FOUC, and may […]

Continue reading...

What Really Makes a Password Strong?

Bob Yexley turned me on to passphrases a few years ago when he linked to what became a seminal article on the topic by Robert Hensing. The argument is that passphrases — random words strung together to form a phrase, e.g., monkey stars hatchback questioning — are both more secure and easier to remember than what are […]

Continue reading...

Comprehensive WordPress Multisite Migrations

Migrating multiple standalone installations of WordPress into Multisite can be relatively easy if you don’t need it to be perfect. The Codex has a basic guide and Stephanie Leary gave some more detailed tips at WordCamp Phoenix 2011. But I’ve been working on a project for a client who had half a dozen blogs with […]

Continue reading...

Updating OpenDNS With a Dynamic IP From an Endian Firewall

The Endian router/firewall appliance comes with a Dynamic DNS client that supports the major DDNS providers, but it doesn’t support updating OpenDNS, which is necessary for any custom settings on your OpenDNS account to be applied to the traffic you pass through their servers. It’s possible to configure this yourself, though. There’s a helpful post […]

Continue reading...

How to Build a Template in CMS Made Simple While Maintaining Sanity

I’m not a big fan of CMS Made Simple, but I end up doing a lot of sites in it by request. It’s taken me awhile, but I think I’ve found a way to structure templates that doesn’t make me want to club baby seals out of frustration. First, what I don’t like about it. […]

Continue reading...

Comparing E-mail Address Validating Regular Expressions

I wanted to find a regular expression to validate e-mail addresses, but when I searched I found dozens of slightly different versions of the same expression. Almost all of them had people leaving comments about how it failed to validate or invalidate some rare but completely valid/invalid address syntax. But dispite all the criticism, I […]

Continue reading...