The Third Version of Live Theme For WordPress

Comments are closed on this post. Please leave comments on the original blog post.

About four years ago, I had the pleasure of working with a team to help deliver the first iteration of Live Theme for WordPress; however, as the team leaned out, changed directions, and paired down our product focus, we sold the product to someone else for continued development and maintenance.

To make a somewhat long (perhaps even boring) story short, I’m currently working on the third version of Live Theme for WordPress.

How to Set an SMTP Server in WordPress

When it comes to sending emails in WordPress, the wp_mail function and its related filters such as wp_mail_content_type, wp_mail_from, and wp_mail_from_name are usually enough to accomplish the majority of what we need.

But there are times where it’s not enough. Specifically, there are times where we may need to define the details for using a custom SMTP server in WordPress.

Fortunately, WordPress provides a hook that makes this really easy to do.

How Not To Market WordPress Products (or “Why Customers Don’t Care”)

If you’re any sort of a WordPress developer, then one of the things that you’ve no doubt noticed is how we market our work.

I’d say that it can be divided into two camps:

  1. You have the developers who promote the features, design, and options that the theme or plugin offers.
  2. You have the developers who promote all of the things that have gone into the theme as to what makes it significant.

When it comes to marketing WordPress themes or plugins (or any product, for that matter), then the first group has it absolutely correct.

The second group, on the other hand, can take a few cues from the first group – namely, stop trying to market your WordPress products based on the tools and technology that were used when working on the project.

Dealing with Custom Post Types, Taxonomies, and Permalinks

Comments are closed on this post. Please leave your thoughts on this original article.

One of the most confusing aspects of working with WordPress is managing its rewrite rules. For anyone who has taken a dive into the Rewrite API and looked at how it works, and how to customize it to fit your own needs can vouch for this.

Honestly, if you’ve ever done any work with custom post types, taxonomies, and permalinks and worked with the rewrite parameter (or perhaps have left it out), then you’ve experienced a little bit of the confusion (or frustration, perhaps) that can come with it.

For those who have been wrestling specifically with the latter, I wrote up a short guide for making sense of this occasionally confusing aspect of WordPress.

An Example of How To Remove Empty HTML Tags

One of the most tedious aspects of building WordPress themes is customizing and styling the comments template. This includes not only the comment form and the pingbacks, but the response text, as well.

Don’t get me wrong: It could be worse, and after you’ve done it a few times, it’s likely that you’re going to use many of the same strategies that you’ve used in previous themes or templates.

But there are examples in which certain elements will render as empty HTML tags. If you have given those tags a specific, say, background style then it can really create somewhat of an ugly experience for your readers.

The challenge, then, comes at being able to remove empty elements before the user can see them. But there’s a catch: It can’t be done on the server side because the server side sees the HTML as you would expect it to be rendered whereas the browsers take the liberty of parsing the document and adjusting the markup so that it’s a bit more semantic.

At least that’s what most of them try to do.

Anyway, this can cause some unintended side-effects.

Using WP_Query To Get Posts From Last Week

One of the most powerful aspects of the WordPress API is WP_Query as it allows us to retrieve a wide variety of content through a relatively simple interface.

That is, it allows us to retrieve complicated datasets ranging from custom post types, post status, date ranges, taxonomies, meta data, categories, and so on all with a relatively standard set of PHP constructs (mainly arrays) and with a really solid reference in the associated Codex article.

One of the nicest things about WP_Queryespecially since WordPress 3.7, are the advanced date query parameters that we can use in order to retrieve information from a specific date range without having to do a lot of complicated date math (which, of course, is every programmer’s favorite aspect of development).

If you learn how to use that particular aspect of WP_Query and you’re familiar with PHP’s strtotime function, then you can retrieve posts from a range of dates easily.

Bug Ticket Triage for WordPress Themes

One of the things that I try to do with my projects is to create quick, iterative releases. When it comes to client work, I’ve made a lot of progress with this over the past year; however, when it comes to working on products (be it plugins, themes, or something similar), I’m not as good as I’d like to be.

Nonetheless, I’m still working on it and one of the ways in which I’m trying hard to focus on that is through creating a system of bug ticket triage.

Sounds all fancy, right?

Sounds fancy.

It’s not :).

Basically, it’s a way that I sort tickets as they come into the support channel and decide how I’m going to be resolving them according to their level of severity.

Though I don’t think there’s a definitive way to do this, I thought it might be worth sharing how I’ve been doing this with Mayer (as well as some other client projects) in order to try to create the leanest release experience possible.

A Quick Fix For Google Web Font Rendering

Like many, Chrome is my browser of choice, but the past couple of updates have resulted in some problems specifically with Google web font rendering (as well as some other web font rendering).

I had considered linking to a number of different issues that I had seen in bug trackers, but you can see just how popular this particular issue has gotten by performing a quick Google search.

To be honest, I’m not sure if this is relegated only to Chrome or to all WebKit-based browsers.

Anyway, since Chrome normally does silent version updates in the background, this should be fixed in an upcoming version – last I checked, it was resolved in the latest build of Chromium – but until then, I thought it may be worth sharing one way to fix the issue.

Are You the Smartest Person in the Room?

Recently, I heard a quote that has stuck with me. I can’t remember word-for-word how it was used, but the paraphrase is:

If you’re the smartest person in the room, then you need to find another room.

It sounds a little weird (and potentially even a little offensive) without knowing the context.

In short, it was said during a conversation about leadership and the importance of surrounding yourself with other smart people (well, smarter people), knowing that just because you may be the first person at a place doesn’t make you the smartest, and not being afraid to ask for insight, criticism, and advice in a variety of areas.

The topic had nothing to do with programming, development, or anything remotely close to that; however, I’ve been thinking about not only how it relates to this particular industry, but how it relates directly to me and my career.

A Practical Example of The WordPress Heartbeat API

The WordPress Heartbeat API is not exactly a new feature. That is, it was first released in WordPress 3.6. Maybe I’ve just done a poor job of keeping up with what others are doing with the API, or maybe I’ve just not paid attention to some of the stuff that people are doing with the API, but I haven’t seen that many examples other than how to get started with it.

On top of that, the Heartbeat API codex is lacking in documentation (though this is an open source project, so if anyone’s to blame, it’s all of us), so perhaps that’s a reason that few people have begun to implement it into their projects.

Whatever the reason, I thought it may be worth showing a practical example of how I recently implemented it within a theme I’m working on, and how I’m using it within conjunction with the Theme Customizer so that when an administrator makes a change to the theme using the Theme Customizer, the visitor will automatically (or is it automagically?) see the changes.