Software Engineering in WordPress, PHP, and Backend Development

Author: Tom (Page 346 of 429)

Including a WordPress Page Template in a Plugin

Note that this plugin is just a working proof-of-concept. Do not use this in a production environment.

One of the challenges of working with templates within the context of WordPress plugin development is that there’s no easy way to bundle templates with your plugin and register them with WordPress.

Template are usually relegated to theme development. And rightly so, correct?

After all, page templates are used to provide layout and presentation which is precisely what themes are meant to provide.

But if you’re working on a larger, more complex plugin that introduces custom post types, page templates, and other advanced functionality then there may be a use case in which bundling templates with your plugin is necessary.

I’ve hit up against this exact issue in a recent project, so I thought I’d share the basics of how I solved the problem, and then provide an example plugin to make the process of registering page templates with WordPress themes a bit easier.

Continue reading

A Case Against WordPress Shortcodes

At my recent WordPress Developer Meetup, the topic of shortcodes came up as a point of discusion. When talking about it, I realized that I’ve never actually talked about them here on the blog, so I thought it might be worth bringing up for discussion.

For those of you who have seen any of my plugins, you see that none of them include shortcodes despite the fact that people have requested functionality offered by them.

For the most part, I dislike WordPress shortcodes. I think they are unintuitive, difficult to use for the average user, and go against much of what the core functionality of WordPress aims to offer.

But the challenge is that there’s not yet a suitable alternative.

Continue reading

Quick Tip: Delete a Git Tag

As much as I love GitBox, it doesn’t actually provide the ability to delete tags from within the interface:

GitBox and The WordPress Plugin Boilerplate

GitBox and The WordPress Plugin Boilerplate

Sad, right?

Occasionally, there are times in which I need to remove a tag because I need to go back and make some final adjustments to a commit prior to pushing to my current branch (which is usually just `master` anyway).

This means that I need to hop over into Terminal to issue a few git commands in order to delete a Git tag from the command line.

Continue reading

My Day-To-Day: Managing Social Media

Last week, I wrote about my first Day-To-Day post on Getting Things Done. In the comments, Kevin asked the following question:

Tom, do you schedule time to use Twitter and general interneting or are you able to work with intermittent distractions?

The truth is, I was actually going to include this in the original post, but it was getting a bit long so I thought it made more sense to break it out into a separate post.

TL;DR: I don’t use a Twitter client on my phone, I check in a few times a day, I generally don’t use Facebook, and I use Path for my closest friends and family.

Of course, there’s a bit more to it than that.

Continue reading

Some Thoughts on Building WordPress Plugins

With the exception of Standard and contract projects, I generally don’t build WordPress themes for release.

I tend to favor plugins because I’m attracted to the functionality that they are able to introduce to the core WordPress application and, frankly, I don’t have the design chops required to produce a theme of high enough quality.

Simply put, I try to focus on what I’m good at doing so others can do the same.

Last week, I talked about the problem of offering support for free WordPress plugins, the challenges that I’m currently facing, and ultimately what I’m aiming to do about it.

So in keeping consistent with trying to share my general thought process on both plugin development and moving to a better business model, I thought I’d also share some thoughts on building WordPress plugins. Continue reading

« Older posts Newer posts »

© 2026 Tom McFarlin

Theme by Anders NorenUp ↑