Software, Development, and WordPress

Tag: WordPress (Page 1 of 204)

Articles, tips, and resources for WordPress-based development.

Using a Registry, Subscribers, and Services in WordPress

TL;DR: I find the using a registry, subscribers, and services very useful when building backend-centric plugins and utilities for WordPress. This post walks through how to do it.


After working in with design patterns, object-oriented programming, and WordPress for years, common ways of solving problems are bound to arise.

This is how we got object-oriented design patterns to begin with, so maybe this is a WordPress-centric variation of that.

Though I’ve written about things such as registries in previous articles (and ones that are not that old even), it’s never a bad idea to revisit the same topic especially when there’s something to continue to add to the previous take.

Continue reading

Debugging WordPress with Ray, Part 2

TL;DR: Here’s another way to start debugging WordPress with Ray using Composer on a project-specific basis.


Last week, I wrote a brief introduction on Ray, what I like about it, and why I enjoy using it with WordPress. I also gave a brief tutorial on how to use it in your day-to-day but that was it.

Ultimately, I want to cover more about the application from a development and debugging standpoint (as I had some great feedback about it on Twitter – thanks for that!). Before doing so, though, I thought it would be more useful to start with one more tip on how to get started using it.

Namely, how to use Ray with WordPress in a Composer-based workflow.

Continue reading

Debugging WordPress with Ray, Part 1

TL;DR: This post gives a high-level overview of what kind of app Ray is and how to set it up for use in WordPress.


For as long as I’ve been involved with WordPress development, I’ve consistently seen developers – myself included – consistently use print_r and var_dump whenever they need to see what’s going on within their code.

And this is okay for smaller data structures like looks at objects, arrays, and so on. Then on the other end of the debugging spectrum, if you need to step through code to see what arguments are being passed into a given function from where and with what value, then using something like Xdebug is incredibly helpful.

Until recently, I didn’t think there was middle ground. But then I found Ray and I’ve been using it ever since.

Continue reading

Programmatically Search WordPress Posts By Date Range

TL;DR: The code shared in this post shows how you can modify the query that runs on the All Posts page so you can limit how you search posts to a specified date range.

It’s been a little while since I last wrote about using the post_where filter for modifying the search query that runs on a given page, such as the All Posts area of WordPress. But given the fact that there are a variety of uses for retrieving posts – and custom post types – in different ways, there’s a variety of ways to use this single filter.

Continue reading

Add Custom Link to All Posts Screen Based on Post Meta Data

TL;DR: This article outlines the code needed to add a custom link on the All Posts screen that uses a custom piece of post metadata.

Note: A few months ago, I wrote an article on how to add a custom view to the All Posts screen. This article is not all together the same, but not all together different. Think of it as a more detailed and perhaps for more practical implementation of the concept.


Assume that you have a standard post type or a custom post type and you’re going to simply filter by a headline that you define using a mechanism that allows you to save data to the post_metadata table.

For example, let’s say that you have a post and it as a piece of meta data with:

  • a meta_key with the value of article_attribute
  • a meta_value with the value of headline

And you want to use this information to add a new Headlines link that automatically filters everything out except articles with that metadata.

Here’s how to do it.

Continue reading
« Older posts

© 2021 Tom McFarlin

Theme by Anders NorenUp ↑