Adding a WP-CLI Command to Your Plugin, Part 1

I wanted to write some importers for CSV files, but not one that operated from the admin screens. I wanted a command that I could pipe my data into, and populate a table.

“Simple,” I thought, and then realized I needed to parse wp-config.php for the database password. While that’s not hard, it’s really bad form, especially when you can use WP-CLI to run commands within the WordPress environment.
Continue reading Adding a WP-CLI Command to Your Plugin, Part 1

A Small Large Network

Several years ago, I wrote a series of article about implementing a small network that has some “enterprise” network features. For the most part, these aren’t necessary, but I believe, as we deal with more mobile devices and IOT devices, we will want to isolate our networks into segments, and implement firewalls between the segments, even for small LANs. Fortunately, our phones are somewhat safe — Windows hacking over the LAN in the late 1990s taught everyone a lesson. That said, there are a lot of camera, sensors, and other devices that are on LANs, running with default passwords, and subject to sniffing.

The original articles are here.

PHP Notice: Undefined index: HTTP_HOST in /home/…/ms-settings.php on line 48

You’re running the WP-CLI and get that message, plus the following error:

Error: One or more database tables are unavailable. The database may need to be repaired.

Continue reading PHP Notice: Undefined index: HTTP_HOST in /home/…/ms-settings.php on line 48

WP’s Backbone-like Templating Language

In yesterday’s post, I talked about fixing up old PHP code to be safer.

There’s another anti-pattern common in old PHP code, and that’s mixing the display logic with the output logic. While some of this is inevitable, nowadays, the rule is to use a templating system like Twig to separate out even small bits of HTML code from the logic.

WordPress does this on the front end via Underscore templates, but configured to use Handlebars-like syntax.

This is a PHP class that does the same thing with PHP. I wrote it so I could use the same, or similar, templates on both the client and server side.
Continue reading WP’s Backbone-like Templating Language