Getting images to load efficiently in WordPress takes a little bit of work. Here’s a few of my tips for ensuring that they load at the proper size and as quickly as possible. Continue reading
Although I’ve been selling products through WordPress for over three years, this project was really fun because it gave me the opportunity to rethink all the services and infrastructure involved and build something new from scratch.
It’s clear that WordPress has grown into an excellent platform for launching a digital products based business. I thought it would be worth sharing some of the great tools, products and services we relied on to get the job done for those interesting in launching a similar type of business. Continue reading
Anders Norén is one of the most prolific theme developers I know of. In 2014 he released a total of 8 themes into the WordPress.org repository- all of which are excellent. A total of 4 made the Tavern’s top 15 free themes of 2014.
If that wasn’t enough, Anders announced a brand new one this morning:
— Anders Norén (@andersnoren) January 1, 2015
As with any great theme, I really like the attention to small design details. For instance, look at all the subtle icons and design that went into a simple author comment:
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.
Pingdom also offers a nice visual waterfall of page speed timings (similar to the “Network” tab in most browser developer tools), and Google Insights can give good general suggestions. Continue reading
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
Most developers use a custom page template if they need to display a custom post types on the front/home page. This is fairly easy to do using a new WP_QUERY:
$args = array( 'post_type' => 'download', ); $downloads = new WP_Query( $args );
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