Software Engineering in WordPress, PHP, and Backend Development

Category: Articles (Page 152 of 258)

Personal opinions and how-to’s that I’ve written both here and as contributions to other blogs.

Why Are These WordPress Hooks Firing Twice?

The hook system that’s built into WordPress is great and really powerful once you fully understand now only how the default actions and filters work, but how you can leverage them in your own themes and plugins to have others work for you.

But there’s a problem that comes with this: Other developers can often abuse them. Perhaps they will name a hook like one that already exists, or perhaps they’ll trigger a hook outside of the normal WordPress lifecycle.

When you’re working on building a plugin that’s adhering to the best practices of using a predefined hook and another plugin ends up breaking the usual flow of control, it can be extremely frustrating.

You – or at least I – can literally spend hours trying to isolate and trace down the source of the problem.

Frustrating, right?

Anyway, I’m not in the business of “calling other people out” or identifying problematic plugins on this site (though I don’t mind to discussing one on one), so this post is not about a plugin that’s doing things in a way that I don’t recommend.

Instead, it’s about finding ways to find a solution when you’re faced with a similar problem.

Continue reading

Confessions of a Social Networking Skeptic

TL;DR: I’m what you’d call a social networking skeptic and I have little trust in the services we use to house our data.

I’ve been thinking about writing a post like this for sometime. It’s not controversial and it won’t result in a lot of discussion, but it’s something important to me and it took a while to articulate everything it is that I wanted to say.

Originally, it started off as something like this:

When it comes to working with data and applications, it’s important I have the ability to own my data.

But that isn’t completely true, so hear me out.

I know some people believe that open source gives them the ability to own all of the information that they give to the application, but that’s not always the case.

First, I think using nothing but open source as a personal philosophy is great. It’s not something that I personally choose to do, but I absolutely understand it and it does have a certain allure to it.

Secondly, when working with open source software, that doesn’t necessarily mean that the information that you’re giving an application will continue to be own solely by you. Take, for example, Instagram.

It’s a closed source application that uses third-party libraries several of which are open source:

Instagram's third-party libraries.

“We thank the open source community for all of their contributions.”

And that’s also fine. Using other libraries rather than writing your own – under the right circumstances – is one mark of good software development.

But do they let you maintain the ownership of your images and videos? This isn’t meant to call out Instagram specifically, but any of the social sharing services that are currently available (especially those that are popular).

To be clear, applications like Instagram do let you maintain a copy of your image on your Camera Roll (or whatever equivalent application your phone or device calls it), but that image is now stored on a third-party server where it may or may not persist from the moment it’s shared and whether or not you delete your account.

And sure, the terms to which you agree – whether you’ve read them or not – are subject to change at any time such that perhaps the rights you have today are not the rights you have tomorrow.

Again, for what it’s worth, I use Instagram as an example not because I’m out to vilify them, but because they were the first example that came to mind.

Anyway, the more I began to think about data ownership as it relates to social applications, the cloud, and basically any other application, the more I began to realize that my problem isn’t that I want to own all of my data – I mean, of course I want to own all of my data – but that I’m skeptical as to what some services may do with the data that I give them.

In this case, I’m specifically talking about social networking services.

Continue reading

Getting Started with Fixing WordPress Bugs

It’s one thing to have a local copy of the latest version of WordPress installed on your system – don’t get me wrong, it’s really cool to be able to see some of the new features – but it’s another thing to want to get involved in contributing to the codebase.

Sure, it’s completely possible to get started by trying to implement your own desired feature, but the likelihood that it’s going to be merged into core is very, very small. Those type of decisions have a process through which they undergo before being merged. Plus, that’s taking on a lot if you’re just getting started with contributing code to WordPress.

But what about trying to fix WordPress bugs? That is, what if you were to want to try to take your chances with fixing some of the existing problems with the software?

That’s a bit easier.

Continue reading

WordPress and Subversion: How To Check Out The Latest Code

There’s a lot going on as it relates to working with WordPress right now: People are discussing things ranging from dependency manage (via tools such as Composer) and talking about the up and coming REST API (which is really exciting).

I’ve also recently read that the object-oriented programming approach is just now making its way to WordPress development. Personally, I don’t fully agree with that, but I do think that there are some advanced topics that are making there way over such as inversion of control, dependency injection containers, and so on.

All of those are important things to be discussed, shared, and taught to others, for sure. But sometimes, I think that we forget that there are some basic things about WordPress that those who are just getting involved need to learn before getting into those topics.

These things include how to grab a copy of the latest version of WordPress from the trunk (let alone explaining what “trunk” – or source control – even is), how to get started with working on your first set of issues, and so on.

WordPress Trunk

This is something that I think those involved in WordPress development could do a better job of teaching. To be clear, I think some do a fantastic job. Some are also very quiet – and that’s fine, not everyone cares to blog and many people are heads down on important work.

But as much as we want people to be involved in open source, I think we should make sure people are educated as well as possible to get involved and have a clear understanding of what to do.

Opting not to share information doesn’t mean you’re greedy; however, as I’ve been thinking about the wide range of topics that exist for those who are trying to get involved in WordPress or who are looking to up their game as it relates to object-oriented programming, I thought it might be worth sharing some shorter articles on how to get started with some of these topics.

Continue reading

The Obligations of Learning a New Programming Language

One of the challenges that we – as programmers – are constantly faced with is learning a new programming language or whatever the latest and greatest technologies that are available (and using the term ‘greatest’ is just for the sake of the cliché phrase).

Then again, a lot of us get into this field for that exact reason, don’t we? I mean, we enjoy learning new technologies, applying them within the context of programming and problem solving, and then doing it again.

But after even just a few years in the business, it can get a little exhausting. This doesn’t mean it’s any less rewarding, but it does mean that when something else comes along – especially from the likes of larger players like Facebook, Twitter, or a similar company – other people are going to want to use them in their projects because the other company uses them and then we’re tasked with learning them.

For what it’s worth, I don’t consider it a bad thing, but it does contribute to the amount of time that goes into a project. This particular idea is something that’s better suited for a business-related post so I digress, for now.

But there’s another side to this:

A segment of the programming culture claims that we should be keeping our skills sharp by learning something new each year or so in order to make sure that we’re still relevant, to make sure that we’re still able to keep up with those coming up behind us, and generally able to keep up with the direction the web and/or software is headed.

And I don’t necessarily disagree with this, but if you’re in a position where you’re raising a family, or you’re in a position where you’re a little bit older and have obligations and responsibilities outside of your work such that you can’t spend as much time at a computer as you used to do (and I know that feel!), then this comes off as a very intimidating and frustrating demand on our time.

So why do we do it to ourselves?

Continue reading

« Older posts Newer posts »

© 2026 Tom McFarlin

Theme by Anders NorenUp ↑