Software Engineering in WordPress, PHP, and Backend Development

Author: Tom (Page 15 of 427)

Quick Fix: Module ‘imagick’ already loaded

When working with multiple version of PHP installed via Homebrew, there’s a chance you’ll encounter error messages like this:

PHP Warning: Module 'imagick' already loaded in Unknown on line 0
PHP Warning: Version warning: Imagick was compiled against Image Magick version 1809 but version 1808 is loaded. Imagick will run but may behave surprisingly in Unknown on line 0

Granted, the version number may be different but the rest of the message will be the same. When I’ve experienced this, it’s when I’ve a set up like this:

  • I have multiple versions of PHP installed (anything from the earliest build in 7 up to the latest version in 8),
  • I swap among versions in my ~/.zshrc file depending on the project,
  • When I attempt to run code that’s on an older version of PHP after installing and using the newer or latest version of PHP, I see the above error.

To fix this, there are two things you can do:

  1. Locate the version of the php.ini file for the version of PHP you’re currently using,
  2. Update the php.ini file for the version to disable the version check on Imagick.
Continue reading

Using Custom Tables for ACF Data

In my previous post, I showed you how to import programmatically defined ACF data. However, I also mentioned that there are some issues you may encounter when dealing with large datasets, such as those that use the Repeater field.

The Repeater field provides a neat solution for repeating content – think slides, team members, CTA tiles and alike.

This field type acts as a parent to a set of sub fields which can be repeated again and again. What makes this field type so special is its versatility. Any kind of field can be used within a Repeater, and there are no limits to the number of repeats either (👨‍💻 unless defined in the field settings).

Repeat, ACF Manual

The Repeater field allows you to create a set of fields that can be repeated an unlimited number of times. While this is great for flexibility, it also means that there is no limit to the number of rows or fields that can occur. As a result, you may run into the upper limit of what the database can store.

For those who are familiar with the implementation of the Repeater field, you know that each time a new entry is added to the post that the Repeater is attached to, a new set of records is added to the postmeta table. Over time, this can become a scalability issue.

That is, the post table will hold the post to which the repeater is attached. Then every time a new entry is added to said post, a set of new records will be added to the postmeta table.

Overtime, this won’t scale. More specifically, you’re going to hit a point as to where adding a new row in the repeater won’t work. And this is where the alternative solutions for custom data tables tables for ACF comes into play.

Continue reading

How To Import Programmatically Defined ACF Data

For as nice and as powerful as ACF is, it’s not without it’s shortcomings (but I guess that could be said about any software). For the purposes of this post, though, this is the software about which I’m discussing.

Specifically, I’m talking about the following scenario:

  1. You have a repeater field that’s defined programmatically and thus doesn’t show up in the WordPress administration area,
  2. The data contained within the repeater field is so much that it exceeds the amount of data that can be efficiently stored in the postmeta table.

I was going to cover each of these in one post but given that they aren’t really related, it seems to make most sense to separate the content.

In this post, I’m going to cover how to import a programmatically defined ACF group. And in the next post, I’ll talk about solutions for migrating data into its own table.

Continue reading

The Architecture Astronauts of WordPress

One of the things I read – and learned – early on in my career was the term Architecture Astronaut. It was coined by Joel Spolsky (as far as I know) and it goes something like this:

These are the people I call Architecture Astronauts. It’s very hard to get them to write code or design programs, because they won’t stop thinking about Architecture. They’re astronauts because they are above the oxygen level, I don’t know how they’re breathing. They tend to work for really big companies that can afford to have lots of unproductive people with really advanced degrees that don’t contribute to the bottom line.

Don’t Let Architecture Astronauts Scare You

I really liked the definition because then, just as I am now, I am surrounded by incredibly smart people from whom I can learn.

And for those of us in this field, it allows us all to:

  • learn great engineering techniques,
  • the reason why engineers write code a certain way,
  • and how to approach problem solving in a pragmatic way (pragmatic being the keyword here, but more on that in a moment).

But that’s not how it always is, is it? Not in other fields; not in WordPress. And the more segmented WordPress is becoming between frontend technologies and backend technologies, the more different these discussions are becoming.

For the purposes of this post, the whole architecture astronaut thing is something I hope all backend engineers pay attention to regardless of where they are in their career. (Let’s avoid architecture astronauts of WordPress.)

And here’s why.

Continue reading

Thoughts on WordPress Certifications in 2023

I’m trying to branch out a bit with the stuff about which I write this year. And given the the rise in discussions on WordPress Certifications, I see an opportunity to do just that.

This isn’t much of a well-researched or academic article. Instead, it’s an op-ed by someone who’s been in the space for over a decade sharing his perspective on the idea of WordPress certifications in 2023.

If you’re not interested in reading the whole thing, I’ll save you some time and simply state: I’m not completely for it, I’m not completely against it. I think it purely depends on the goals of the person and the needs of any given company who is hiring the individual. Above all else, it needs to be collaborative.


If you run a search for “WordPress certifications,” you get quite a few results back. The thing about these programs is that I have no idea how to determine what makes for a good certification.

  • Who has vetted the curriculum (let alone who comes up with it)?
  • Who evaluates the end result of achieving certification?
  • Who determines what is a satisfactory certification in the program?

To that end, I’m opting to use the article posted on the Make WordPress Training site, Exploring WordPress Certifications.

Over the years, there have been a few discussions about creating formalised certifications for WordPress, most notably in 2013 as seen on Torque and WP Tavern. While those discussions are nearly 10 years old, they are still relevant and, now that an open learning platform for WordPress exists, this is a good time to revisit those conversations.

Hugh Lashbrooke
Continue reading
« Older posts Newer posts »

© 2025 Tom McFarlin

Theme by Anders NorenUp ↑