Software Engineering in WordPress, PHP, and Backend Development

Author: Tom (Page 117 of 428)

How to Create a Zip File With Excluded Files and Directories

Whenever we’re working on a project that requires some custom functionality, we still try to abide by the whole themes-are-for-presentation and plugins-are-for-functionality even if it’s not something that has any use outside of our projects.

This doesn’t mean we don’t use source control or anything like that, but it’s just that not everything that is open-source by its license is available for download because it has no applicability outside of a niche use case.

But that’s a discussion for another time.

All I’m saying is that even though we may be working on something just for us, we don’t abandon good development practices.

And there are times, say, where we may be sharing files, source code, or something via Slack that is not yet ready to either commit or to share any other way. In times like that, it’s helpful to be able to create a zip file, right?

Slack: Sharing a plugin without source control.

But sometimes, we need to create a zip file with excluded files.

Continue reading

Maintaining a Post Status When Updating a WordPress Post

I just finished a feature for a project that uses a combination of custom post types, data imports, and updating existing posts when deleting a user (or set of users).

There’s one problem, though:

Say have you have a post that’s currently published (that is, it’s ‘post_status’ is set to ‘publish’) but, when you update the post via wp_update_post, its post_status attribute is set to ‘future.’

In order words, whenever you programmatically update a post, the status of the post is set to ‘Scheduled’ (according to the UI) and ‘future’ (according to the database column).

So what gives?

Continue reading

Project Management: Features (Milestones, Tasks, and Feedback Loops)

Project management is multifaceted, and the way we all go about breaking up the various aspects of our projects are likely contingent on how our place of employment does it, how the client wants to do it, or how we opt to do it ourselves.

For this post, when it comes to working specifically on any given project, I’m specifically talking about how we take the requirements of a project and break them up into more manageable pieces and deliverables for the people for whom we’re working. And in doing this, I think it’s important that they’re kept in the loop and can see progress at the proper checkpoints to garner feedback.

Despite changing various aspects of my business as I’ve learned more about what works and what doesn’t, one thing that’s remained consistent in how I handle the development-related aspects of features of a project.

Continue reading

Inheriting WordPress Projects: Tips For Development

If you’re running a business that focuses both on developing solutions from the ground-up or that focuses on implementing a custom solution in the context of pre-existing projects (or maybe both), then you’ve likely – at some point – been in the situation of inheriting WordPress projects.

Tackling projects from either handle brings its set of challenges – most of them welcome  – but it seems to be far more common place for people to complain about working with a pre-existing codebase.

It’s not that I don’t get that feeling, but I do think there’s a level of immaturity in doing that. On the one hand, yes some codebases are outright terrible. But then some codebases aren’t that bad. In fact, I’d argue they are just a little bit different from how you’d develop it.

This is a case in which standards come into play, but I digress on this for now.

So let’s say you’re inheriting WordPress projects and you’re not particularly stoked about the codebase with which you’re working. How is it that you can still enjoy the work that you’re doing without feeling like you need to critique every aspect of whatever it is with which you’re dealing?

Continue reading

Thoughts on Community-Based Support Forums

Last week – and this weekend – I’ve been reading the comments on Pippin Williamson’s posts about his company’s decision to adjust prices on Easy Digital Downloads (and for those who are curious, I applaud it).

That’s a conversation in and of itself, and there’s a long comment thread that I think is worth reading for anyone involved in WordPess product development, but I digress as that’s the point of this post.

Reflections on a Price Increase

Some readers have left comments throughout the comment feed discussing the notion of community-based support forums. The whole thread is worth a read but:

  1. EDD used to offer community-based support forums (in addition to their other support),
  2. I’ve built and worked on products that had community-based support forums

And, in retrospect, I absolutely do not think it’s a wise decision for a WordPress-based product shop to offer them. I have my reasons, I’ll elaborate, but I want to be clear that I’m constraining this strict to WordPress because it’s what I know.

I can’t speak for any other segments of our industry.

Continue reading

« Older posts Newer posts »

© 2025 Tom McFarlin

Theme by Anders NorenUp ↑