10 Things You Need to Know About WordPress 3.5

For 7 years, I’ve been publishing these articles every time a new version of WordPress comes out. Since version 2.0. It’s been a long run. It began as a need to fill people in about new features in WordPress (and there were a lot in 2.0). There wasn’t anybody doing these at the time, and certainly WordPress wasn’t nearly as popular as it is now (22% of the internet is powered by WordPress).

But many more people have stepped up in recent releases and have started updating readers with new features and expectations. My job here is done. I’m passing the baton but really the baton has already been passed and I’m happy about that. This will be my final 10 things article. Thank you for sticking around and following along all these years.

On Wednesday (likely), December 5th, WordPress 3.5 will drop with all it’s gooey goodness. A BIG shoutout needs to go out to Andrew Nacin, the lead developer on 3.5, for project managing this release while also planning his wedding, and to his best man, core developer Daryl Koopersmith for leading the media efforts. And of course, all the other core contributors to this release (I, sadly, am not one this cycle).

So without further adieu, let’s get into the guts of 3.5.

Media Manager

One of the most anticipated revamps in WordPress history has finally arrived. Since the days of implementing the media upload integration, core developers, users and everyone in between has cried for a new way of managing media. It’s finally here and it is one of the biggest undertakings in WordPress core development history.

The new media manager in WordPress 3.5 simplifies the process of uploading various media formats (usually, but not limited to, images). Everything is right up front and easy to understand. Instead of having cryptic icons over top of the edit area on a post editing screen, you now have an obvious “Add Media” button.

Clicking Add Media brings up a dialog that has a very large, and obvious “drop zone” where you can drag and drop files into. This aspect has actually been around for a few versions, but now it’s a much smoother experience. Of course, you can also click the prominent “Select Files” button in the drop zone to pull up a more traditional dialog for selecting those media files and uploading.

You can also get a much more intuitive view of your already uploaded media attachment, select any number of photos and insert them into a post or create a gallery. This was all supported before, but the logical workflow makes the process a million times easier.

Also, gone are the days of uploading an image, having to close the media dialog to then re-open it to create a gallery or futz around with details for each image. This was always kludgey before. You could assign an image as a featured image without having to close the dialog, but then inevitably you’d end up in a situation where the dialog had to be closed to get into another image mode.

I’m really curious what the reaction to this feature will be.

Twenty Twelve

WordPress Twenty Twelve default theme
The front page layout of the new WordPress 3.5 default theme “Twenty Twelve”
Twenty Twelve is the new theme that is coming with 3.5 A few cycles ago, the core team decided to retire the old default “Kubrick” theme and release a new standard theme once a year. Twenty Ten came in 2010. Twenty Eleven came in 2011 and, well, obviously, Twenty Twelve is dropping in at the tail end of 2012.

Twenty Twelve is a fun theme. It’s fully responsive, so it conforms to different viewport sizes – monitors, iPads, smart phones, etc. In WordPress 3.4, the Admin got responsive love, and now the default theme gets it as well.

You can actually download and install it now, as it is also compatible with WordPress 3.4 and is on the theme repository.

This default theme has better typography, a home page template, various options for columns and widgeted areas and would serve well as a handy theme framework for child themes as well.

In addition, if you haven’t started leveraging post formats (available since WordPress 3.1), you can do that now with Twenty Twelve. The theme has built in styling defaults the match the sort of thing you’d expect from Post Formats (to me, still one of the most neglected things in WordPress)

HiDPI “Retina” Admin

For those of you on the retina display bandwagon, both Twenty Twelve and the entire administrative interface are all retina ready. No pixelation on those high-end Macs!

In WordPress 3.4, the first steps were made by providing quite a few retina (or hi-def, if you will – it will make more sense in a minute why I offer that clarification) icons in the admin. Now, the CSS (specifically for print) also supports this hi-def rendering. If you must print a tree, the print stylesheets will be printing in hi definition.

This also opens up opportunity as browsers and CSS3 continue to advance and provide developers with new tools.

Retina not only gives print versions additional clarity, and those high end Macs more beauty, but it also renders things better for you iPhone 5, iPad 3, Kindle HD and various new Android device users. Rejoice! (but I have an iPhone 4S, so meh!)

Removing the Links Manager

Links Manager Removed
So long, Links Manager, and thanks for all the fish!
Oh my God. We finally got rid of this antiquated thing!

Remember back in the day when people actually kept blogrolls? And WordPress had this feature in the menu called “Blogroll”. And then people started realizing, as possibly one of the earliest turns toward WordPress not being only a blogging tool but also a full-blown Content Management System, that Blogroll just didn’t seem appropriate (or whatever the thinking was), so it was renamed to Links.

It’s now coming out entirely. Existing WordPress install retain the Links manager but new WordPress 3.5 installs no longer have this functionality.

If you still need it, you can install the Links Manager as a plugin.

Favorite Plugins

As a developer, I am constantly setting up WordPress installs, setting up new WordPress installs, resetting WordPress installs, etc. so perhaps my favorite new feature in WordPress 3.5 is the “Favorite Plugins” doohickey. I always have a subset of plugins I use for development and functionality I consider a “must have” for a client project, etc.

Favorite Plugins can be installed from right in your plugin manager.
Favorite Plugins can be installed from right in your plugin manager.

If you go to the WordPress plugin repo (and are logged in with your WordPress.org username), you will see a new “Favorite” button on every plugin page.

This becomes incredibly useful in WordPress 3.5 where you can now pull down your favorite plugins with one-click install. When you visit the Plugins > Add New admin page, you will see a new “Quick Link” along side the “Upload”, “Popular” and other links that have been there all along. Now you just have a new menu.

This brings up a page where you can enter your WordPress.org username and get a list of all the plugins you’ve favorited on the plugin repo and install as you need.

Protip: Now you can stop emailing me and asking me what plugins I recommend. Enter MY username – technosailor – and find out which plugins I prefer.

Tumblr Importer Support

One of the most popular blog types and platforms in the past few years is Tumblr. Up until now, there hasn’t been a way to get Tumblr content imported into WordPress. That’s no longer the case.

On the Settings > Import page, you can now activate Tumblr import support. Warning: The process of importing Tumblr is a little kludgey and that is due to Tumblr’s own systems. You will need to register an app with Tumblr, enter certain key information about your WordPress install into the Tumblr app registration page, and copy certain key information into WordPress.

The instructions are all on the Import admin screen. I suggest opening up the Tumblr app registration page in a separate tab as you’ll have to go back and forth between Tumblr and WordPress.

Once you do this, you can connect WordPress to your Tumblr blog and slurp in all the data you’ve had over there. I know y’all love Tumblr, but this is your opportunity to get off of it and onto a more widely used and customizable platform. Plus, you have Press This in WordPress to allow you to continue your Tumblings.

Simplified Dashboard

Simplified Dashboard
Simplified Dashboard
The Dashboard has always been a bit of a sore spot for new users unfamiliar with WordPress. What is all this information? Unfortunately, that’s not going away quite yet. However, WordPress now makes it easier for users to get up to speed with common things like writing an about page, setting up a theme, etc.

In addition to Dashboard fixes, there have been a number of smaller UI changes in the admin, including the Privacy page being removed and merged into the Reading Settings pages. Lots of effort was put into a simpler user experience.

It’s the little things that help users get up to speed and using WordPress quickly and effectively and reduces the learning curve.

Multisite: switch_to_blog() performance problems fixed

There are a couple of Multisite improvements for developers. For the longest time, well before the merge of WPMU into WordPress, the way developers could switch “context” from one site to another would be through switch_to_blog(). Even after the merge, that function still remained the way to do it. But it has always come at the price of performance and caching. It was an extremely expensive function to use, filled with unnecessary database queries and other fudge.

It left developers looking for ways to accomplish the same task in a different way – which is really not the WordPress way. We encourage developers to use the tools WordPress provides and not to try to get around them. This mentality is almost universal and prevents problems with backwards compatibility in the case of database schema changes, etc. However, this beast had never been tamed for this specific functionality.

As of WordPress 3.5, this function has now been refactored and performs significantly better than what it did, including massive caching changes. Developers should feel far more comfortable using it. Hooray!

Multisite: Sub Directory

Another Multisite improvement is the ability to install WordPress Multisite in a folder. Up until now, WordPress Multisite could not be installed in a subdirectory. It had to be installed in the document root which was… silly.
In WordPress 3.5, a lot of work was put into making it possible to do just that. Specifically, this came out of Hack Day at WordCamp San Francisco in August. Nice work Mark Jaquith and company.

WP_Query Enhancement

One final developer tool that was added in WordPress 3.5 is a modification to the post__in argument that can be passed to WP_Query to affect what posts are pulled in a custom query/Loop. While post__in has been around awhile, and takes a comma separated list of post IDs to be retrieved, now, if the orderby parameter is set to post__in, the order of the IDs matter. Specifically, the order of the IDs in post__in is the order they are retrieved in the resulting dataset. Before they were simply ordered in numerical order (or whichever custom order parameter was supplied – post_name, post_title, etc) .

This is pretty effective for CMS-style usage of WordPress where a developer may want to have granular control of how specific content pages are listed, displayed, etc.


So that’s it! Nice big release. A lot of under the hood stuff for developers, but really this release is less of a developer’s release and more of a user experience release. When WordPress 3.5 drops on Wednesday (assuming that happens as expected), I’d love to hear feedback.

Thanks for reading all these years. I’m not disappearing. I’m just retiring from this column. Of course, I’m always looking for full-time or consulting work. Please feel free to contact me if you think we might be able to work together.

Until then…

So long and thanks for all the fish
Original Photo by Starrarte Used under Creative Commons.


10 Things You Need To Know About WordPress 3.2

Photo credit Randy Stewart.

WordPress 3.2 will be released soon (at the time of this writing, it is in RC1 which essentially means it is done and being tested). This is an exciting release as it marks the first release that drops PHP 4 dependency. For years, WordPress has opted to play to the lowest common denominator while hosts have taken their sweet time arriving at PHP 5.

Of course, this may mean nothing to you, depending on your technical knowledge of the underlying language. However, it has limited the amount of innovation that could be possible using the more modern version of PHP 5.

The focus for this release was to slim down redundant code that had been added along the way to employ PHP 5 techniques in a PHP 4-compatible fashion. In addition, a focus was placed on slimming down code all along the way to provide a more efficient codebase. Eliminate, eliminate, eliminate! More Red than Green – a reference to the way changes are recorded visually where red is code elimination and green is code addition.

Regardless, the approach to PHP 5 adoption has had a positive effect. Approximately 12% of the web is powered today by WordPress, whether self-hosted “.org” sites or Automattic’s WordPress.com and other hosted WordPress sites.

As I have done eleven other times before, today I bring you the Ten Things that, in my opinion, you should know about WordPress 3.2.


One of the big things that was discussed internally around the time when WordPress 3.0 was released over a year ago was the need to keep the default theme fresh. To that end, for WordPress 3.0 did away with the old Kubrick theme and replaced it with the fresh and semantic Twenty-Ten theme.

Yes, you can see how naming a theme Twenty-Ten in 2010 setup the opportunity for a Twenty-Eleven theme in 2011. And there is that opportunity for a new theme called Twenty-Twelve in 2012, but let’s not get too far ahead of ourselves.

Twenty-Eleven visually is not a huge departure from Twenty-Ten. It still uses much of the same visual layout that Twenty-Ten did. The new theme, however, is greatly different behind the scenes.

Note: This blog (along with all of my blogs) are running Twenty-Eleven right now.

Users of Twenty-Eleven have the opportunity to select a one-column or two column layout for their blog from inside the WordPress Admin. The two column layouts can use a sidebar left or sidebar right variant.

My photoblog uses a one-column format, as an example.

Additionally, Twenty-Eleven also offers a dark and light color scheme. My photoblog, for instance, uses the dark format while this blog uses the light format.

Finally, as with Twenty-Ten, the theme allows for custom header images (or no header images) and backgrounds. Because of the professional nature of this blog, I’ve opted to use no header on this blog and my personal blog utilizes a custom header image.

And of course, as with all things WordPress, no one says you have to settle for what Twenty-Eleven offers out of the box. In fact, it is encouraged that you use Twenty-Eleven as a parent theme that offers all of the benefits of the default theme while putting your own spin on it with a child theme.

Distraction Free Writing

While I write this post, I am using the successor to the Full-screen mode that has been in WordPress for some time. Full screen mode, in my opinion, never really was well adopted but it has been championed in the past by bloggers who focus on efficient workstyles, or Getting Things Done (“GTD”) approach to work.

The ability to shut out all distractions so as to focus on the task at hand is hugely important. WordPress core developer Mark Jaquith has said for years that his vision for WordPress was that it would become a tool that got out of the way of people and their writing. It’s not about WordPress. It’s about writing and the experience should be such that you should never have to think about what tool you are using to do that.

With Distraction Free Writing, you have just that. By clicking on the Full Screen (in HTML writing mode) or the new icon for DFW in the toolbar of the visual text editor, the blogger finds themself on a plain off-white canvas with minor tools along the top of the screen to assist in basic formatting. If you leave your hands off the mouse, even these fade away allowing you to just write in a pleasant, serene environment.

This feature is probably my favorite in WordPress 3.2 and usability/writer-facing features are rarely my favorite as a developer. I generally prefer new APIs and developer tools. However, this feature wins hands-down.

Minor Overhaul to Administrative UI

It’s been several years since WordPress has undergone a major Admin overhaul. There have been tweaks along the way, but by and large the administrative interface has stayed true to what it evolved into (with much research and usability testing) in WordPress 2.7.

There is not a drastic overhaul in WordPress 3.2, but it is the larger than a few tweaks and color scheme modifications. In WordPress 3.1, the Admin Bar (which I’ll talk about later) came into being and in 3.2, emphasis has been put on placing more commonly accessed functions into it as opposed to the main UI.

As a result, familiar things (which were often used for blogs in Multisite mode) such as the “Favorites Menu” have been removed to the Admin Bar. The Quick Access menu that allowed Multisite Super Admins quick access to the “Network Admin” has been relocated to a less-than-obvious dropdown  in the upper right. Hint: The dropdown menu can be accessed by clicking the “Howdy Aaron” link, where “Aaron” is your username.

Other aspects of the new interface are mainly aesthetic. Menus are where you’d expect them. Features are where they’ve always been. Plugin developers who have built UI for their plugins are still safe as long as, as usual, they are using the WordPress best-practices, i.e. using the same HTML formats and structures used in core.

More Determined Move to the Admin Bar

As mentioned before, the Admin Bar has become the focus of a “Command Center” approach. By default, quick actions like Adding a new post or editing a page or getting quick access to the dashboard of other Multisite sites are loaded into quick menus in the Admin Bar.

This is also where the philosophy of plugin development that provides quick access to features should be. A good example of this is the Purge Cache functionality in W3 Total Cache. Where this has been in the Favorites menu inside WordPress, it now will have to move to the Admin Bar. This seems like a more natural place to me anyway. Other plugin developers should look at their code to ensure that they are compliant with this approach.

John Brook has a most excellent tutorial on creating and adding menus to the Admin Bar.

PHP 5.2.4 and MySQL 5.0

I mentioned the new system requirements at the beginning of this article. This shift to PHP 5 has been a long time in coming and was done deliberately to time with WordPress hosting on PHP 4 dipping below 10%. In other words, it is more than likely your host is already on PHP 5.2.4+. However, you should verify this if you’re not sure.

With the adoption of PHP 5.2.4, there is also a bump in the requirements for MySQL. Now WordPress requires MySQL 5.0, another hurdle that is not very hard to overcome but should be verified if you’re not sure.

Ryan Duff has created a quick and easy plugin that can be installed to ensure compatibility with WordPress 3.2.

For Newbies, a Better Help Menu on Each Page

For some time, WordPress has included a contextual “Help” menu in the upper right of many of the screens in the admin interface. However, with WordPress 3.2, every page has a help menu. Not only does every page have a help menu, newbies can get detailed contextual assistance for each page. Veteran users already know their way around, so this will be less than helpful, but for n00bs, the guidance lowers the barrier to entry.

Upgrade Enhancement – Just the code you need!

Think iOS5 but for WordPress. When Steve Jobs announced at WWDC recently that iOS updates would in the future come in smaller packages applying just new code and differences over the air, WordPress was already working on this (errr, except the over the air part).

Up until WordPress 3.2, upgrades were performed by downloading the entire package and applying it over the existing install. While this was fine, it took a lot more time due to the larger package size. This new version will enable future upgrades of WordPress to be done incrementally making the process much faster and efficient.

Code Efficiency enhancements

A huge emphasis was placed on core efficiency in this release. Many of the updates that have gone into this release have been major refactoring of code as well as the removal of legacy (and now unneeded) PHP4 compatibility code.

When I write these articles, I like to look at a diff file of all code changes between the last major release and the current. I was blown away by the amount of PHP4 compatibility code that has been axed.

Additionally, a lot of effort has been placed on database optimization. Many queries have been made more efficient. These things are less notable for smaller sites, but for large sites and hosting companies (such as my company, WP Engine), these types of optimizations add up in orders of magnitude!

File System API

Another optimization that has been made (getting the clue that this release is all about streamlines?) has been in the code that handles upgrades and automatic installs of plugins. When the original code was written, it was written to find what methods were available to write to the filesystem. This was because WordPress does the best it can to be as compatible as possible with as many server configurations as possible.

Some of the more obsolete (and unnecessary) transports have been done away with in favor of Streams. Though streams existed in PHP 4.3 (WordPress’ former system requirement), the upgraded requirement now allows us to do so much more with file transfer, handling and writing.

But I don’t want to get overly technical right now.

No IE6 Support

Screenshot courtesy of Mashable.

We all knew Internet Explorer was dead. Well, most of us. Believe it or not, there are still folks (mostly in government and enterprise organizations) where IE6 is still in use. While WordPress has always endeavored to be as compatible with as many configurations as possible, just like file handling replaced by Streams and PHP4 going the way of the Dodo Bird, IE6 can die in a fucking fire too. Oops. Sorry, kids. No more IE6 support.

Automatically approve parent comments

Finally, a longtime nuance has been comment approval. Comments have always been a one-to-one relationship with approval. You approve one comment at a time. And while that’s normally fine, what if you have nested comments and you approve a child comment but not a parent comment? Then you have a weird hierarchy that may not make a lot of sense.

In WordPress 3.2, now when you approve a comment that has an unapproved parent comment, the parent comment will also be approved. Many people have asked for that and now it’s here.

BONUS: Credits Screen

But wait… There’s one more thing. Every release, hundreds of people participate in the development process by writing code, contributing patches, discussing ideas in IRC and on Trac. That doesn’t even begin to acknowledge the testers, translators, and documentation writers who contribute their time free of charge.

Now, in the footer of the WordPress Admin, you’ll find a Credits link that shows everyone who has contributed to this release. Good job, guys! (I’m one of the contributors).