Stephanie Leary, the author of the recently released Beginning WordPress 3.0, began using WordPress in 2004 when it was known for its easy-to-use blogging capabilities for smaller sites. Lately, it has been gaining a reputation for being powerful enough to run larger sites and large collections of networked sites. Leary, who works as a web designer for Texas A&M University and is co-owner of the company Paged Media, has worked with several open source content management tools.
“After using WordPress for very small departments’ sites over the years, last summer I converted a large-ish department from Joomla to WordPress. I’d tried Drupal, thinking we needed the extra complexity, but we really didn’t—and none of my content contributors could figure out Drupal’s editing interface,” she says. “After banging my head against Drupal on and off for over a year—and I’d used it before!—I switched the site to WordPress, and we were up and running in three weeks. My contributors picked it up in about an hour. It’s been a wonderful experience.”
Here are Leary’s thoughts on why she keeps coming back to WordPress for her website projects, why the latest release of WordPress makes it an ideal content management system (CMS) for many different kinds of websites, and what to expect in release 3.1.
Q: Please tell us a little about your background and why you decided to write Beginning WordPress 3.0
I’ve been working with WordPress in my freelance work since 2004. My business partner and I build websites for authors with books to promote, and we wanted to give them a simple way to update the content themselves. (At the time, most designers catering to that audience were charging exorbitant rates for doing simple HTML updates once a month. Some still are.) Back then, it was somewhat tricky to set up WordPress with a “static” home page, but it was worth the trouble because the editing interface was so easy for our clients to learn. Since then, of course, the software has come a long way. It’s now much easier to set up a WordPress site that doesn’t look at all like a blog.
I decided to write the book because I couldn’t find any books on using WordPress the way I used it: as a page management system with a simple interface, with posts demoted to a secondary role or sometimes omitted entirely. A lot of people were asking for advice and code snippets, and I wanted to be able to hand them a complete guide rather than a disjointed series of blog posts.
Q: In the introduction to your book, you talk about the difference between blogging and content management. What is the difference, and why does that matter to the average WordPress user?
To someone who’s always used WordPress, the concepts of blogging and content management have never been separate things. There doesn’t have to be a difference, really, and that’s the beauty of WordPress. The developers took a system that was made for simple chronological updates, and extended that simplicity to the page hierarchy. Then the link manager. Then the media manager. Then the plugin manager. And so on.
Until now, WordPress has been less flexible than other systems in that its posts and pages were the only available content types, whereas other systems would allow you to define whole new types of content. For example, a site consisting of some informational pages, a blog, and a product catalog was difficult to create in WordPress prior to 3.0. The new custom content type feature in 3.0 alleviates that problem. WordPress is now a more full-featured CMS in that it can be used to manage many types of content.
Q: What are WordPress 3.0’s CMS capabilities and how might they compare to, say, an open source CMS like Drupal or a proprietary system that might cost a lot of money?
Working in higher education, my budget is usually “zero,” so I’m much more familiar with the open source systems like WordPress and Drupal.
The big new features in 3.0 are: menu management, custom post types, better custom taxonomy support, and integration of the network (multisite) feature formerly available separately as WordPress MU. All of those things have been in Drupal for a version or two now, but in Drupal they’re generally more difficult to use.
Q: Why should someone pick WordPress, rather than another blogging system? Why should someone pick WordPress if they are looking for a CMS? How does the 3.0 release make it a more attractive option for either?
WordPress is the best blogging system around, and has been for a while. Movable Type and Textpattern are both great, but they both have some drawbacks. Movable Type is incredibly difficult to install compared to WordPress, and it requires Perl as well as PHP. Textpattern has an idiosyncratic method of organizing content that just doesn’t gel for a lot of users. WordPress does everything the others do, in a simpler fashion, and at this point it has a larger community—meaning more themes, more plugins, and more active support channels.
If you’re looking for a CMS with a great user interface, I’d recommend WordPress in almost all cases, and for all the same reasons. There is one thing I caution people about: WordPress’s user/role system is a little problematic, and at the moment it supports only one level of private content. (That is, you can’t have Content A that’s visible only to Group A, and Content B that’s visible only to Group B. In WordPress, all users who have permission to view private content can view ALL private content, so Group A can see Content B, and Group B can see Content A.) There are plugins to get around this, and the role system is currently scheduled for an overhaul in 3.1.
Q: Which major sites use WordPress? Does the 3.0 release make it more likely that larger sites might find it a good fit? If so, why is that?
There’s a showcase on the WordPress site (http://wordpress.org/showcase) that shows off some of the largest sites using WordPress. Most of the 3.0 features don’t necessarily make WordPress better for larger sites; just different kinds of sites. However, in 3.0, WordPress MU has been integrated back into the main WordPress project. This means you can now run a whole network of WordPress sites from one installation, without keeping up with (and waiting for updates to) a forked project. It’s now very easy to activate the network features and start your own version of wordpress.com, if you wish. (Maybe too easy; network managers need to be aware of the issues involved in hosting other people’s sites. See http://ipstenu.org/2010/07/the-dangers-of-an-unchecked-multisite/.) So, if by “large site” you mean a network of connected sites, then 3.0 is a consolidation and refinement of the features that used to be in WordPress MU.
WordPress sometimes gets slammed for not including a cache feature. The reason it doesn’t is that there are several kinds of caching, and it’s up to the site owner to choose the plugin that’s most appropriate. WP Super Cache is the most popular, but I’m told W3 Total Cache and Batcache are also excellent. A caching plugin is essential for a high-traffic site; you just have to pick one and run with it.
Q: Tell us about some of your favorite WordPress sites, large or small.
My favorite WordPress site in higher education used to be the Berkeley Department of Spanish and Portuguese, but for some reason they’ve switched back to an awful design with the pages done in plain HTML. That broke my heart a little, although you can still see the old WordPress design in a lot of design showcases, like eduStyle (http://www.edustyle.net/site.php?site=56).
I love what Panic (http://www.panic.com/blog) and Jason Santa Maria (http://jasonsantamaria.com/) are doing with the art direction of individual posts.
That said, most of my favorite blogs have everything to do with the writing, and nothing at all to do with the design.
Of my own WordPress sites, my favorites are Marsha Moyer’s (http://marshamoyer.com), which was the very first one I did using WordPress for a site that (at the time) didn’t include a blog, and Justine Larbalestier’s (http://justinelarbalestier.com), where I first got to experiment with some non-standard theme tricks: looping through pages instead of posts, using page excerpts all over the place, and writing custom widgets.
Q: Can you tell us about some of your favorite plugins? Are there any new plugins being developed to take advantage of new 3.0 capabilities?
Akismet (http://akismet.com) is absolutely essential.
Google Analyticator (http://ronaldheft.com/code/analyticator) is one of the many plugins that adds Google Analytics tracking code to your site. In addition to the basic tracking, it can automatically add the onclick events needed to track file downloads. It also provides a lovely graph in the Dashboard.
Contact Form 7 (http://contactform7.com) is a great email contact plugin that integrates with Akismet for spam protection. There’s an offshoot, MM Forms (http://wordpress.org/extend/plugins/mm-forms), that can be used for more complex forms and can store submissions in the database. For my larger sites, I like to use Gravity Forms (http://www.gravityforms.com) because its interface makes it easy for non-geeks to create their own forms. However, it doesn’t yet support Akismet, and that’s a major failing in my view.
Editorial Calendar (http://wordpress.org/extend/plugins/editorial-calendar) is a brilliant way of visualizing your posting schedule. Whether you need to analyze your past patterns or plan future scheduled posts, it’s a must-have.
I’ve recently discovered Relevanssi (http://www.mikkosaari.fi/relevanssi), which arranges search results by relevance rather than by date. I immediately installed it everywhere. It’s wonderful. There are a lot of plugins that improve WordPress’s search results, but this is the easiest to use.
My Page Order (http://www.geekyweekly.com/mypageorder) provides a drag-and-drop interface for rearranging pages. I still use page lists for a lot of things, even with the new menu feature, so I use this one a lot.
There are a lot of utilities I use to make my life as an administrator easier, although my users wouldn’t necessarily appreciate them or even know they exist: Clean Notifications (http://www.mikeindustries.com/blog/clean-notifications), No Self Pings (http://blogwaffe.com/2006/10/04/421), Beta Tester (http://wordpress.org/extend/plugins/wordpress-beta-tester), Database Backup (http://www.ilfilosofo.com/blog/wp-db-backup), Super Cache (http://ocaoimh.ie/wp-super-cache), Search & Replace (http://bueltge.de/wp-suchen-und-ersetzen-de-plugin/114), Changelogger (http://www.schloebe.de/wordpress/changelogger-plugin), Google XML Sitemaps (http://www.arnebrachhold.de/redir/sitemap-home)… I install those on every site.
I wrote HTML Import (http://wordpress.org/extend/plugins/import-html-pages) and Dashboard Notepad (http://wordpress.org/extend/plugins/dashboard-notepad) because I desperately needed them, and I’ve used them on almost all my sites, so I suppose I should put them on my list.
There are lots of new plugins that take advantage of 3.0’s features! One of my newest ones, Convert Post Types (http://wordpress.org/extend/plugins/convert-post-types), was made exclusively for 3.0. It allows you to move old posts or pages into new content types. Like most of my plugins, it stemmed from a problem I encountered at work. We had a lot of posts in a single category, and we wanted to turn them into a new post type without having to edit all 300-odd posts one at a time. I also wrote Content Audit (http://wordpress.org/extend/plugins/content-audit) for my day job, as a way of doing a content inventory right in the WordPress interface rather than copying everything into a spreadsheet.
In other 3.0 news, I really like Post Type Switcher (http://wordpress.org/extend/plugins/post-type-switcher), which gives you a simple button to convert post types one at a time, and Custom Post Type UI (http://wordpress.org/extend/plugins/custom-post-type-ui), which lets you create new content types and taxonomies without coding.
Q: Does the 3.0 release make WordPress any easier to use for the beginning blogger/content manager?
The new menu feature makes it easier to create a navigation menu that includes some pages, some categories, and some links to outside content. This was a big issue for a lot of users, since some themes used category lists for navigation while others used page lists, and there was no good way to combine the two. There wasn’t an easy way to link to outside content, either. If you had a photo gallery running on Gallery2 or ZenPhoto, there was no way to add that link to your main menu. The new menu feature makes that task very easy to accomplish.
3.0 also includes a new theme that takes advantage of all the new features. It shows off the new menus beautifully.
The update system is now centralized and easier to use. Hopefully, people are now finding it easier to update their plugins and themes as well as WordPress itself.
Most of the other new features are useful for developers or very advanced users, and I think most beginning WordPress users will never notice them.
Q: What can you tell us about custom content types? How do those work? How do they relate to taxonomies and fields?
Let me start with custom fields, since those have been around for a while. If you’ve used the post editing screen in WordPress, you’ve seen the built-in custom field interface. It’s not pretty. A plugin developer, though, can easily create a good-looking input form for a custom field without having it appear in the key/value list. Developers have been using this feature for a while to create extra fields: a phone number for a contact directory, a price for a catalog, that sort of thing. Custom fields haven’t changed in 3.0.
Custom taxonomies are new groups of categories and tags. If you’ve ever wished you could have two sets of category checkboxes instead of just one, custom taxonomies are the answer. For example, in the book database I’m working on, I could have one big pool of tags for the authors and genres of the books, but it’s much better to separate the two. I’m using a non-hierarchical taxonomy — that is, a new set of tags — for the authors, so my users can start typing a name and get suggestions. I’m using a hierarchical (category-like) taxonomy for the genres, so I can define subgenres (mystery: cozy, procedural, etc.) and let my contributors check them off a list.
So, with custom fields and taxonomies — which were available prior to 3.0 — I could create my book database using posts. Maybe I’d use a custom field for the price of the book, or its shipping weight. I’d use the taxonomies to categorize the books. But what happens when I want to build the rest of the website around the book database? Pages are still available to me, but I’d have to use posts again for my site’s blog, and somehow separate the news posts from the book posts using categories and taxonomies. Then my feed is all mixed up, and I’m having to exclude things from the home page, and I have to do a lot of if/else statements to figure out how to lay out my archive pages based on what category the post is in….
This was how people were mixing things together until 3.0 came out, and it was a mess.
In 3.0, we now have custom post types. This is great for my book database (or a catalog, or any number of other things). I can use my posts for their intended purpose and move my books (or products, etc.) into this new content type, which doesn’t appear in feeds or on the home page. I’ll have a separate list of the books in the Edit screens. I can specify that my author and genre taxonomies apply only to books, so I won’t see those input field when I’m editing a blog post. I don’t want my content contributors to be confused when a price field shows up while they’re editing a blog post, so I can also specify some custom fields that will appear only on the book editing screen. On the front end, I have type-specific template files I can use to display my book posts in a very different way.
Custom fields just add fields to an existing post type. Taxonomies allow you to tag and categorize those posts in different ways. The new post types really let you separate your content.
How custom types, taxonomies, and fields work together is really a huge topic. I devoted a whole chapter to it in my book and still didn’t have room to do more than skim the basics.
Q: How can WordPress continue to improve? Is there anything you’d like to see in a future release?
The WordPress team is currently taking some time off from new feature development to work on the community aspects of the project: the support forum, the documentation, and the associated projects like bbPress. This work is long overdue, and will solve a lot problems with the existing support channels.
My biggest issues with WordPress right now have to do with the role limitations I mentioned earlier, specifically regarding comment moderation and private content. (For example, private pages don’t show up in page lists, even if you’re logged in and you have permission to see the pages. This is a big problem if you’re using private pages to create an intranet.) Solutions are getting kicked around in the bug tracker, and I’m confident those problems will be resolved in the next version or two.
I’d like to see the link manager scaled up a bit — right now, it doesn’t support pagination, so it fails with a very large number of links. With a few modifications, you could use it to run your own private Delicious clone.
Now that we have custom post types, I think someone should pull together the best features of the various calendar plugins — GigPress, The Event Calendar, and so forth — and create one killer calendar plugin. There are several out there now, but they’re all a little quirky.
Q: Is there anything else you’d like to add, either about your book, or about WordPress 3.0?
3.0 is a wonderful release, and I’m so pleased to see the developers adding the advanced features (like custom post types) without sacrificing the great UI that makes WordPress so popular.
My book was written for developers who’ve never worked with WordPress before or just need a rundown on the new features in 3.0. It’s not a book for casual users, although the first few chapters might be useful to them. In the second half, there’s a lot of theme and plugin code for developers to use in their own projects. All those examples came from working sites — there are no hypothetical situations.
I’ve talked about my focus on general content management and not just blogging, which influenced every chapter in the book. In the developer sections, I tried to cover topics that hadn’t been addressed in other books. For example, I demonstrate plugin and theme settings using the Settings API. It’s just new enough that most books cover the older methods of saving options to the database, and I kept seeing requests for start-to-finish tutorials using the new methods, so I wrote them. I also found that a lot of new plugin and theme developers had never used Subversion before, and there wasn’t much documentation on how it works, so I wrote a step-by-step guide to submitting a plugin to the repository using both Windows and Mac Subversion clients.
In addition to all of that, I wanted to point out the basic things that are easy to overlook, even if you’ve been using WordPress a while: the bulk edit feature, the options for the three RSS reader widgets on the Dashboard, a dozen unlisted feeds that WordPress generates automatically… I worked in these little hidden gems wherever I could. (In fact, I’m doing a presentation on the hidden gems of WordPress at OpenCamp next month!)
My book is not a complete guide to WordPress. There are some things I just didn’t have room to cover. However, this book is the introduction developers need before they can move on to Professional WordPress or the WordPress Bible.
Beginning WordPress 3, available now: http://sillybean.net/books/beginning-wordpress/
I have the Stephanie Leary book, and it is very good. Very up to date considering Wp3 is not that old, and books traditionally take a while to get through the publishing process.
Glad to hear you liked it. Which parts of the book did you find particularly useful?