Categories
WordPress

Finding Duplicate WordPress Post Meta

Have you ever accidentally saved the same post meta to a post in WordPress, and ended up with a duplicate? Of course, you could go through each post and check the meta, check for duplicates, and delete any of them but… I think I’ve figured out a beast of an SQL query that will give […]

Categories
WordPress

WordPress Post Meta and JSON

…or how I stopped worrying and learned to love the slashes. Post Meta in WordPress is a great tool to store random bits of data associated with your posts. But did you know that it comes with its own set of problems? Have you ever tried storing a JSON string inside of post meta? Only […]

Categories
WordPress

Better Caching in WordPress

Caching data in WordPress is easy. Caching data in WordPress in a good and performant way takes a bit more work. For instance, many developers commonly use the Transients API to cache data. As the lowest common denominator in caching, this is okay. It’ll get the job done, even on a $10/year shared hosting plan. But what […]

Categories
WordPress

Page Generation Graph for WordPress

At work, one of the more interesting customizations we have on WordPress.com for our VIP clients is a dashboard that contains custom widgets.  One of them is a page generation graph that shows the average page generation time for their site compared to all others.  That way they can judge their code performance against a […]

Categories
WordPress

Quick Tip: DreamHost cron and WP-CLI

If you’re hosting your WordPress website on DreamHost, and use their cron system to offload your WordPress faux-cron for better reliability, be careful of what version of PHP you have in your code. I recently had an issue where my cron events weren’t firing, and after enabling email output, I ended up with something like this PHP […]

Categories
WordPress

Blogging Anonymously

An interesting problem I came across recently was how to set up a WordPress blog with an anonymous user.  Now, a simple way would be to create a brand new user with fake information, but that’s too easy. After looking for some prior art, I found the Anonymizer plugin in the WordPress.org plugin repository.  Unfortunately, it’s […]

Categories
WordPress

Logging Failed Redirects

WordPress has a built-in function called wp_safe_redirect().  This allows you to create redirects in code, but only to whitelisted domains (via the allowed_redirect_hosts filter). The downside to this is that you have to remember to whitelist the domains.  It’s easy to forget if you’re doing a lot of redirects, for instance with the WPCOM Legacy Redirector […]

Categories
WordPress

Purging All The Caches!

One of the best ways to ensure that a WordPress site–well any site really–stays performant and not broken is by leveraging caching. WordPress by default doesn’t do much caching other than some in-memory caching of objects, and the odd database caching via the Transients API. This site currently has three layers of caching: PHP OPcache […]

Categories
Uncategorized

Quick Tip: Viewing Headers With Curl

Something that I do often at work is to check HTTP headers for random things such as redirects, cache headers, proxies, ssl, etc. A common way this is done is by using the -I (–header) switch: The downside to this is that it uses an HTTP HEAD request, which can sometimes return different headers or different information […]

Categories
WordPress

Disabling WordPress Faux Cron

The WordPress WP-Cron system is a decently okay faux cron system, but it has its problems, such as running on frontend requests and not running if no requests are coming through. WP-Cron works by: on every page load, a list of scheduled tasks is checked to see what needs to be run. Any tasks scheduled […]