Tom McFarlin

Software Engineering in WordPress, PHP, and Backend Development

Page 137 of 427

Use and Abuse Singletons in WordPress

For those who make a living by creating custom solutions for others using WordPress, you likely have your approach to how you structure the foundation of your typical plugin. And I think that’s a Good Thing™.

If you’ve read any of my previous posts, you know that I generally prefer the object-oriented approach to building plugins so there are a number of patterns, common solutions, and architectural decisions that I try to employ from project-to-project.

I’m not dogmatic about it, though:

If something new comes along, I’m willing to give it a try. Similarly, if someone I’ve been using for a while is criticized, I’m willing to take a look but that doesn’t mean I’ll change it.

In short, I need a lot of information to sell my on why I should change something that works, that’s maintainable, and that reads well for other developers.

And one of the points of discussion that comes up periodically is the idea of using Singletons in WordPress development.

Continue reading

Design Patterns and WordPress (And Resources!)

For whatever reason, it doesn’t seem common that we talk much about design patterns and WordPress. And that’s odd to me.

Maybe I’m not talking to the right people, maybe I’ve got my head in the sand, maybe it’s just not something about which people share much information, or maybe people who work with WordPress don’t care that much about design patterns at all.

Design Patterns and WordPress

The architecture of WordPress is not the same as using design patterns iin WordPress.

But if you’re using WordPress and you’re building more than a theme or a simple plugin, the odds of you building something more advanced and not taking advantage of design patterns seems highly unlikely.

Whatever the case, if you’re someone who’s working on advanced solutions – perhaps web applications, perhaps having your components talk to third-party components, or whatever the case – then it wouldn’t hurt to have a reference of popular design patterns and antipatterns would it?

Continue reading

Creating Custom WooCommerce Input Field

I’ve been working on a project that introduces a few new options into a standard WooCommerce installation, and one of the features calls for adding a custom WooCommerce input field.

WooCommerce

In WordPress, creating settings pages has its process. That is, you create the necessary options group (if needed), settings fields, values, and so on. You introduce any markup that’s needed, validation, sanitization, and so on.

And all of that is needed when it comes to working with WooCommerce, but one of the things that I like is how the API for the plugin supports creating input fields with server-side logic.

Continue reading

Append WordPress Page Content From the Database

When we – or the people for whom we’re working – create WordPress page content, it’s usually through the editor or maybe through some other client front-end that we’ve created.

But what about the case where there’s something specified using a custom settings page that controls the content displayed on a specific page?

This is getting into custom implementation territory so let me try to give a bit more context to this whole situation.

Continue reading

Sharing Code: A Good Opportunity To Exchange Ideas

In the previous post, I happened to share a screenshot of some source code that was from a 0.1.0 (or, perhaps more appropriately named, an MVP) of a project I’m writing (and it turned out to be a good opportunity to exchange ideas with someone else).

Exchange ideas based on your source code.

Not long after it had gone live, I received a tweet containing the following comment:

Interesting to see how differently people work. There at least four things in your screenshot that I wouldn’t do.

From experience and from being online long enough, I know there are certain segments of our industry who look at something like this and think “Burn – he’s got it down and he’s going to take him to school.

Except not really.

I believe I’ve talked about this in previous posts, but what I’m getting at is when others make comments like this to you, approach it in two ways:

  1. Understand they are coming from a place of [likely more] experience,
  2. Ask what things they would do differently. Odds are they have good reasons and are likely in a position to help you get better at what you’re doing.

Later in the post, I’ll share the entire conversation that took place on Twitter but I think it’s important to mention that, at this point in time, I know the person in question well enough to have both respect and no problem in engaging them in further questions and conversations about things like this.

But it hasn’t always been that way. So for those of you who are getting into sharing your code and learning how to field feedback that comes regardless of the format, then this is primarily for you.

Continue reading

« Older posts Newer posts »

© 2025 Tom McFarlin

Theme by Anders NorenUp ↑