Tom McFarlin

Software Engineering in WordPress, PHP, and Backend Development

Page 64 of 428

Subtitle Migration: From a Theme to a Plugin

Recently, some theme shops have been acquired by larger hosting companies. Thus, getting a copy of a theme that you want is now more difficult unless you use said host.

For those who typically read this site via RSS (or some other means), then it’s worth noting that I’ve changed this site back to a stock theme (Twentyseventeen, actually).

Subtitles Migration: A Change to Twentyseventeen

The short reason being that this is a theme that is likely to be long supported since it’s built by the WordPress.org team and it’s going to play well with all of the new and upstream features.

But when changing themes, I lost one of my favorite features: Subtitles. That is, each post that I wrote had its subtitle to help explain and give context to what the rest of the article was about.

I’ve been familiar with Philip Arthur Moore’s Subtitles plugin for some time.

Subtitle Migration: Moving to Subtitles

And the way the previous theme was built along with the way this plugin is built made it possible for me to write a small plugin to migrate all of the previous theme subtitles to the plugin subtitles.

Here’s how where it is, how to use it, and how it works.

Continue reading

WordPress Pagination: A Simple Utility (And Why)

When building templates for WordPress, you generally have pagination functions that come from the application itself.

WordPress Pagination: Get Next Post

These incude things like:

And there are a few other posts that give you greater granularity around taxonomies such as get_adjacent_post().

I recommend reading all of the above links because they are useful if you’re building a theme, working with custom post types, or are simply looking for a deeper understanding of some of the common template tags.

If, however, you’re looking for an easy way to write your WordPress pagination utility (which I’ll explain the rationale for momentarily), then the rest of this post will cover exactly that.

Continue reading

WordPress eCommerce, Past, and Future

Rewind a few years, and early e-commerce in WordPress was a bit of a hack (as it was in most blogging software).

There was a time when “WordPress is just for blogging” was a valid argument. Products were simply blog posts. Programmatic gymnastics took place to work around this, but in the end, everything was saved in the database as a post with attributes just like any other blog post.

Then, in WordPress 3.0, Custom Post Types came to be, and this opened a vast array of possibilities. Suddenly everything fit in the posts table. Anything you could think of, from social network content to e-commerce products, could all fit in the posts table, with the postmeta table to back it up.

A post could now be thought of as an entity or a model with attributes or properties described by information in the post metadata table.

But it’s not like that anymore.

Continue reading

WordPress Widgets: Refactoring, Part 2

After all of the preliminary content, we are finally at a place where we are ready to begin resolving the coding standard problems thrown by our IDE and by our code quality tools.

In doing this, I’m going to be breaking down the content into two posts:

  • the first post is going to focus solely on refactoring the existing code,
  • in the next post, we’re going to look at refactoring the structure of the plugin to enhance the organization and architecture.

Screen Capture on 2018-11-20 at 12-50-27.gif

For now, though, let’s take a look at the errors the code sniffer is throwing and see if we can’t bring it up to more modern standards.

Continue reading

Keeping Domains, Hosting, and Email Separate

Though this is something I think anyone with a domain, self-hosted site, and email should use, it’s also something I think is important for us – as those who provide services to others – should use.

Specifically, I’m talking about keeping domains, hosting, and email separate so if you opt to change, say, your hosting then you can keep all of the parts working with as little downtime as possible.

In this post, I’m going to cover how to do it, the services I recommend (and no, none of these are affiliate links), and then how each piece works independently of one another to provide the most seamless experience possible.

Continue reading

« Older posts Newer posts »

© 2026 Tom McFarlin

Theme by Anders NorenUp ↑