I recently listened to an interview with Tom Dale, one of the developers who helped create Ember. He was comparing Angular, which is maintained primarily by developers at Google, and Ember, which has a smaller and more diverse group of contributors behind it.
I thought this remark was interesting and also applies to the WordPress world:
“I think of open source project as an organism. An organism has an immune system and the best thing you can do for the immune system of your project is to diversify as fast as your can.
This includes valuing contributors who are not just code writers. It includes valuing people who write documentation, valuing people who work on infrastructure, valuing people who run events and organize meet-ups in the real world.”
WordPress sends e-mail notifications for a number of different reasons. New user registration, password resets, and comment notifications are the common defaults.
Plugins also tap into the e-mail system too, especially for extensions that add contact forms, e-commerce or subscription functionality.
If e-mail is integral to your WordPress site, you might want to consider using Mandrill (a service by the folks behind MailChimp) rather than the default WordPress mail system. If your server doesn’t allow mail scripts or have a mail server, this might even be essential (and an alternative to running it through SMTP using a plugin like this). Continue reading →
Fast load times are incredibly important for website users. Unfortunately, it’s an overlooked feature on most WordPress sites.
Themes and plugins aren’t necessarily optimized for performance, and it can be difficult to determine how plugin and design choices affect the overall page speed.
But, if we start to measure it, we can start to optimize for it. When I do site performance audits for clients I primarily use two tools to evaluate page speed. The browser developer tools (Chrome) and the “Site Speed” report in Google Analytics.
Although I do my best to ensure compatibility between versions of the Options Framework theme (GitHub), upgrading to this latest version will require some minor updates on the part of theme developers.
I am also planning to write some tutorial soon about how to migrate from the Options Framework to the native WordPress Customizer if you’d prefer to take that route. Continue reading →
However, WordPress still treats this as a page rather than archive, which can be problematic if you have specific styles or scripts that only load on archives or rely on certain body classes. So I started to experiment with a pre_get_posts function. I found this actually works quite well, even with pagination and infinite scrolling scripts. Continue reading →
I enjoy talking shop with other theme developers. A few months ago I was lucky enough to get a chance to interview Mike McAlister.
For those that don’t know Mike, he runs a little theme shop called Array.is and is an excellent designer and developer.
When Mike and I did the interview, he had just launched a rebranding of Array. We discussed the importance of good design, the economics of the theme business, and how he first got into building themes. Continue reading →
I’ve had a number of tiny WordPress sites on shared hosting (BlueHost) for over a decade. It’s been pretty great. Shared hosting has a lot of benefits: it’s cheap, it’s relatively easy to manage, e-mail is included, and there’s basic support.
The drawback is that servers aren’t generally optimized for WordPress performance, and once a site begins to scale in traffic you need to move it to a managed host or a VPS.
I’ve been wanting to try DigitalOcean (one of the many cloud providers) because my hosting bills have been growing. I still have my basic shared hosting with BlueHost, but I also have large sites on WP Engine, and a VPS with WiredTree. They’ve all been great and have their own benefits, but the idea of consolidating into one provider and reducing my hosting bill significantly is a huge draw. Continue reading →
WordPress 4.0 introduced a few new features for the customizer, including panels and input field types. This post on the Core Make blog explains the updates well- but since I was experimenting with it today I thought I’d post a few more examples.
I put together a code snippet that registers a custom panel, section, and then displays a few of the new field types: url, e-mail, password, textarea, date, and range. Arguably the only real useful ones are textarea and range as you’ll see in the notes below. Continue reading →