On of the things that I’ve enjoyed the most about working through the live workshop on WordPress plugin development is the conversation that’s ensued around writing WordPress code and PHP code readability in our Basecamp discussions.

For those of you who have been around a while, you know that I’m opinionated when it comes to writing WordPress code. Specifically, I believe that just because WordPress is written in PHP does not mean that we should forgo the APIs and use PHP functions just because we’re either more familiar with them or because we find them easier to use.

That said, there are times in which the native PHP functions are the way to go.

For example, string comparison.

Continue Reading…

One of the things that my team at 8BIT is passionate about is education specifically in the publishing space. It’s taken us some time to begin putting together a series of events now that we actually have space to support it, we’re offering a 100% free Atlanta blogger meetup here at the office.

This is the first of a series of events that we have planned for the summer.

Some are paid, some are free, but one thing that we’re looking forward to the most is meeting like-minded people who love blogging, development, designer, the Internet, and all things in between.

But our ultimate goal is not simply to meet people – it’s to equip people to do a better job at what they already do, or what they want to do.

Continue Reading…

Last week, I wrote a post discussing why I think it’s important to use a trailing slash in WordPress.

The point of the post was to state that when you’re working with URLs and you’re looking for the last index of the array, the only way to guarantee the it’s always at the final position is if there’s a trailing slash so that you can explode on the ‘/’ character.

This post lead to some good discussion about why or why not to use trailingslashit, it brought to light to some other important and useful functions, and actually reminded me that there are times when trailing slashes should be used and when they shouldn’t.

To that end, I thought I’d thought I’d do a more thorough explanation as to each of the “trailing slash” functions WordPress offers, their purpose, and why trailing slashes are even important in the context of URLs.

Continue Reading…

When it comes to working with URLs, I believe that we should often be using trailingslashit in WordPress.

This is post is part of a larger discussion that I’ll be covering in more detail in another post, but here’s the gist of why I’m a fan of using trailingslashit.

Here’s why: there’s only a handful of operations that you can really be doing:

  • Setting up some type of rewrite rules or routes
  • Sniffing out parts of the URL to check for data
  • Redirecting (or protecting) users from content based on their status
  • …and maybe a few more

When it comes to examining the contents of the URL, one of the most common – if not the most common – way of doing it is using explode and then examine the various indexes of the array.

But in order to properly handle this, I think that we have an obligation to code defensively against URLs because we never know how users, third party libraries, or other clients are going to provide said URL.

And thus the case for always using trailingslashit in WordPress projects.

Continue Reading…

If you're interested in tracking all of my posts on Medium, be sure to bookmark this link.

This week, I ended up writing my first post on Medium and, as promised, thought I’d share my thoughts on my initial experience.

Ah, an in case you’re a drive-by reader, last week, I shared that I had received an invitation to Medium and shared a few of my thoughts on the tension of writing on the platform. So the purpose of this post is to revisit my thoughts from that post, and share about my experience thus far.

At this point, with a single post, there’s not much to say, but here’s what I have to offer.
Continue Reading…

If you're an advanced developer or just want the TL;DR version of this, skip to the code.

One of the more common UI design patterns is to render a table of data that includes rows that include people’s names, various information about them, and so on.

Usually, there are some type of control elements that allow you to filter the data by some type of criteria. Obviously, this is especially useful with large datasets where you don’t want to page through pages of data or scroll for a significantly long length of time.

Though there are a variety of ways to filter data – especially if you want to do so through the use of different values – one way that’s most common is to filter data by a person’s name.

If the data set is really large, this is often something that’s best left to process on the server side; however, if the data set is modest, it’s really easy to filter names in jQuery.

Continue Reading…

One of the things that I enjoy most about blogging is being able to help others (and be helped by others). Aside from that, I’ve also had a lot of fun at speaking at different events and conferences. In July, I’ll be speaking here in Atlanta on Five Ways To Improve Your WordPress Development Skills.

Here are the details on the event:

Continue Reading…

In a recent project, I was working with someone who wanted to mark a comment as unapproved regardless of the value that was set in the WordPress settings.

Specifically, the person was using a plugin that allowed for certain attachments to the plugin. In order to make sure that the comment could be screened prior to allowing it to go public on the blog, they wanted to moderate it from the dashboard without needed to completely enable comment moderation across the board.

This is something that’s relatively easy to achieve programmatically.

Continue Reading…

When it comes to introducing custom functionality into a WordPress project, the debate between functions.php vs. plugin usage is nothing new.

Generally speaking, I think of themes are presentation and plugins as functionality that transcend whatever theme or themes with which they’re installed.

But sometimes, this delineation isn’t so clear. For example, let’s say that you’re working on a theme that needs to introduce a custom meta box – or several – into the post editor screen.

Though this is presentation related in that it will impact what’s displayed to the users, it’s also a bit of custom functionality but it’s only relegated to this particular theme.

What then?

Continue Reading…

When it comes to building, launching, and maintaining your own projects – be it software, hardware, blogs, sites, songs, paintings, …, anything, etc. – one of the things that you have to be prepared for is the amount of criticism to which you’re opening yourself up.

Granted, you have to take the good with the bad, but the problem with the bad is that it’s so much easier to take to heart and/or focus on that the good, right?

But the irony in this is that not only do we subject ourselves to said criticism, but some also offer criticism to what others have done.

If you’re on the receiving end of said criticism, it’s easy to get defensive; if you’re on the giving end of the criticism, it’s easy to mask it as constructive when, in fact, it may not be at all.

So how do we deal with this kind of stuff on a day-to-day basis?

Continue Reading…