The WordPress Bible

The WordPress Bible is the guide you need for all levels of skill and expertise in WordPress. If you’re just beginning, I give you tricks and tips on how to make use of the WordPress administrative interface, how to install and configure plugins, themes and widgets.

If you’re a theme developer, I give you insight into the variety of template tags, theme hooks and best practices for building a theme that will wow your readers.

For plugin developers, the many APIs and classes that WordPress has to offer are at your fingertips.

The most popular open source Content Management System on the internet!

As of late 2014, WordPress powers over 20% of the internet. Put another way, one out of every five websites you visit on the internet is likely built using WordPress in one way or another. As of this update, WordPress 4.1 1 has been downloaded over 14.1 million times.

There’s a reason why this book was written for you. Don’t get left behind.

(And if you catch me out and about and own the book, I’ll gladly sign it for you!)

Purchase it today!

Notes:

  1. The WordPress Bible was last revised for WordPress 3.1, but almost everything in it still applies

Venture Capital Irony, Bubbles and Booms


Photo by epsos

Late in 2008, after the rest of the economy crashed and burned due to the housing crisis, the tech sector seemed to be fairly resilient. Maybe it’s the nature of the industry… less money at stake, generally, in tech VC deals than other industries. For instance, Biotech.

That all went out the window when Valley-based VC behemoth, Sequoia Capital, gathered a now-infamous meeting of all its portfolio companies and gave them what can only be described as a “the sky is falling” lecture.

In that lecture (that presentation is shown below), they advised their companies to buckle their seatbelts, lay off employees, and get rid of non-essential expenditures. They said it would be a dangerous ride ahead and that only the companies that had enough forward-thinking prowess to survive, would do so.

The presentation opened with an ominous title slide with the words: “RIP Good Times”. The presentation instructed CEOs to look for M&A deals as quickly as possible, raise new cash now (i.e. late 2008) if they were looking to raise a new round, and have at least a year of cash in the bank.

Pretty ballsy move that, frankly, spelled the beginning of the tech sector decline. If Sequoia was instructing their companies in this way, then something must be severe, thought many other VCs who followed suit with their respective companies.

In some ways, Sequoia was correct. It would be a long road to recovery. In other sectors of the economy, the recovery is ongoing or is just beginning.

The tech sector is not that way, however. In the past year, we’ve seen huge investments in 2010. Twitter raised $200M+ on a $3.7B valuation. Zynga, the social gaming company, raised $147M on an estimated $5B valuation. Tumblr raised $30M.

The bubble has been gaining full steam. And then there was yesterday.

Yesterday, you might ask? Yes… yesterday. Yesterday it was announced that Sequoia Capital led a $41M Series A round (Yes, you heard that right… Series A!) for new mobile social photo sharing company, Color.

I’ll let you read about what Color is because, though it’s a bright, shiny object that is interesting in some ways, it’s not, to me, a $41M play.

Sequoia seems to be taking the approach that many smart VCs these days, including Mark Suster from GRP Partners, said last week when describing investment strategy relating to teams and not products.

Whatever you’re working on now, the half-life of innovation is so rapid now that your product will soon be out-of-date. Your existence is irrelevant unless you continue rapid innovation. Your ability to keep up is dependent on having a great team of differing skills. Individuals don’t build great companies, teams do.

And while I fully agree with Mark, I do have to question Sequoia making a $41M play less than three years after they virtually single-handedly drove the nail into the coffin of the tech sector. To me, it seems Sequoia made an opportunistic opportunity to drive the market rates down on valuations, to eventually make a big play like this at lower valuations (Disclaimer: I don’t actually know the terms of the Color deal). With a lower valuation, they can throw more cash and own the lion share of the available stock ownership. You know… waiting for a slam dunk, as it were. Mission Accomplished!

However, it’s notable that the Color team is truly a notable team. The former Chief Scientist at LinkedIn. The guy who sold Lala to Apple in 2009. Five other notable experienced entrepreneurs and successful startup people.

I’m sure Sequoia knows what it’s doing. It’s certainly interesting to watch investors defend them. There’s just very practical questions about how the company that started the tech recession could come out guns blazing on this one.

Pre-order WordPress Bible: 2nd Edition

The time has come when Amazon has updated their listings to include the WordPress Bible: 2nd Edition, available April 12, 2011.

This edition has been updated for WordPress 3.1 and includes detailed information on WordPress, WordPress Multisite, Post Formats, Post Types, Advanced queries, new APIs and more. The 1st edition, which you can buy today, has already sold thousands of copies. It only covered up to WordPress 2.9. So much has happened since then.

Some reviews from 1st Edition:

I have been developing websites on the WordPress platform for a few years. Most of what I have learned has been learned by experimentation, lurking in forums and reading the WordPress Codex. I’ve been hoping that some day, a book that would delve into the inner-workings of WordPress would appear. The WordPress Bible is that book and it does not disappoint. ~M. Erb, Syracuse, NY

This is the perfect companion to your keyboard and mouse as you dive into WordPress to not only write blog posts, but create plugins, create themes, work with functions, create widgets and more. This is very easy to read, it’s updated up to 2.9 version and nothing will be different when 3.0 comes out as it does cover other things like WordPress MU and buddypress. I love this book and was looking forward to it so bad, I drove across the state to pick up the only copy left in NJ. ~Manny Gongora, Melbourne Beach, FL

Overall, the second edition has been much improved from the first, both in content and, I hope, approach. Go pre-order now and lock in your price-point!

Pittsburgh Sports Radio vs. Baltimore Sports Radio

With the AFC Divisional game – a.k.a. Armageddon – set to kickoff at 3:30 CST on Saturday, I have altered my daily routine a bit. Normally, I listen to 105.7 The Fan in Baltimore over the internet. This week, however, I’ve taken great interest in what Pittsburgh is saying about the Ravens-Steelers matchup. For this, I’ve been also listening in on Pittsburgh’s 93.7 The Fan.

The first thing I noticed is that they really aren’t talking about the game, for some reason. They have this unnatural obsession with Penn State Basketball and Penguins hockey. Bah! Penn State and the Pens aren’t in the post-season right now. The Steelers biggest game of the year is Saturday! Whatever.

The second thing I notice is that when they do talk about the Steelers, there is a tenor of fear and concern about the game. In contrast, Baltimore seems downright giddy about the matchup. Maybe that is because Baltimore already beat Pittsburgh at Heinz field and came damn close to beating them again at M&T Bank stadium.

This, of course, is the rubber match. Baltimore has no reason to think they can’t beat the Steelers and advance to the AFC Championship game.

And, if the Jets were to take care of business against their bitter rival, the Patriots, Baltimore would host that AFC Championship game at M&T Bank Stadium.

Nice.

10 Things You Need to Know About WordPress 3.1

Happy New Year, everyone. WordPress development on version 3.1 is wrapping up (Currently it’s in Release Candidate and should be released early in 2011)…. which means, it’s time for another edition of our 10 Things You Need to Know About posts.

This is a bigger release than was originally planned. It was supposed to stay small and set the stage for a larger WordPress 3.2 release later in the year. That release will require PHP 5.2 (make sure your host supports it now… We do at WP Engine. WP 3.1 did turn into a larger release than expected, but I think you’ll be happy. So without further adieu.

Network Admin

if you’re running WordPress in Multisite mode, or have used WordPress MU for a while, you may find yourself alarmed by the conspicuous lack of a Site Admin/Super Admin menu that has been situated at the top of the Admin menu. Never fear, though it looks like this has gone the way of the dodo, in fact it has been relocated into a separate dashboard area accessible from the new “Network Admin” in the top right of the WordPress Admin. Notably, when you click on this link, you are taken to a new dashboard for Network management (and that link then changes to Site Admin to allow quick access back into the normal WordPress admin. Also note that, like the previous Super Admin menu, this link is only viewable (and by proxy, accessible) to users who have been designated as Super Admins. This change allows for additional separation of content production and administration and allows for blogs (Sites) to be managed individually and the Network to be managed separately.

Post Formats

Perhaps one of the most talked about features in WordPress 3.1 are post formats. Post formats have been implemented in a variety of ways for years. The idea that some content is different (and should be rendered differently as a result) has gone way back. A prime example of this was the concept of “Asides” – or little blurbs that were often simply links or short posts that were off topic, not really worth a full blog post or whatever. Now, with a bit of code in a theme functions.php, you can enable any number of 9 different formats: aside, chat, gallery, link, image, quote, status, video, or audio.

In this paradigm, theme developers can target specific CSS and layout structure to each of these post formats. This enables rich user experience and high quality layout without prejudice toward the most common type of content… text. If you aren’t sure what each of these types of content are, I refer you to the Post Formats section of the Codex which has a list.

In order to enable a theme with one or more of these formats, add the following line to the theme functions.php file:

1
add_theme_support( 'post-formats', array( 'aside', 'gallery' ) );

This line enables new UI in the post edit
screen that allows for you to designate a post with a specified format. For a thorough write-up on this new feature, go read the post format reference from my friend Lisa Sabin-Wilson.

Internal Linking

Have you ever gone through the torturous process of adding links to your own site to a post you’re writing? You have to go find that post from a different tab or window, usually via search or scrolling through potentially pages of content to find exactly what you want? Yeah? Me too. As a result, WordPress has added Internal Linking as a feature to WordPress 3.1.

This feature, only available when using the Visual Text Editor, allows you to add a link as you always have, or choose from already existing content on the same page. Yeah… that easy. Simply click the typical link button, then click on the arrow to
expand the “Link to Existing Content” section of the pop-up window. Pretty neat!

Import Overhaul

In advance of WordPress 3.2 and PHP5 dependence, we see yet another improvement that rewards WordPress users who utilize hosts using PHP5. The import routine has been rewritten from the ground up with efficiency in mind. While the old importer used regular expressions to parse through the WordPress export file (XML), this caused really bad efficiency problems.

Now, using native XML parsers, the WordPress import can process files much more efficiently. Additionally, similar to the file system transport API that is used by the one click installer and upgrade routines, WordPress goes through a series of checks to find the best method for XML parsing available on the server, thus a progressive enhancement for PHP 5. The first check is for SimpleXML (PHP5-only) followed by XML Parser (used in PHP 4) and, if neither of those two libraries are enabled, it falls back on the old, antiquated regex parsing.

Editorial Comment: I was hoping for a rewrite for 3.2 to both the exporter and importer that would handle everything in JSON (a much more lightweight plain text file format), perhaps optionally, instead of XML. XML parsing by nature, regardless of SimpleXML or XML Parser, is quite expensive in terms of CPU cycles and efficiency.

Theme Filter

WordPress.com users are probably familiar with the theme filter that those bloggers have had access to. With Theme Filters, users are able to quickly drill down on possible themes to install and use based on criteria such as number of columns, features, etc. To access this, simply click on the Feature Filter on the right side of the themes page to display all the options that are available. Note for Theme Developers: In order to make this useful for bloggers, please ensure that your theme style sheet headers include a Tags header similar to this:

1
Tags: white, yellow, light, one-column, two-columns, fixed-width, custom-colors, custom-header, custom-background

Advanced Taxonomy and Postmeta Queries

WordPress wouldn’t be complete without enhancements for developers as well. In WordPress 3.1, developers have access to powerful new features that provide for robust querying of both taxonomies and postmeta. In previous iterations, developers could target posts with WP_Query (or the Loop) to only those posts that have meta_key=foo or meta_value=bar.

The problem was, the potential for more granular targeting (i.e. get only posts with meta_key=foo AND meta_key=bar AND published BETWEEN Jan 1 of 2007 and Jan 31 of 2002) was not possible. Now it is. Replace meta_key and meta_value with meta_query and feed it in an array of arrays that contain any of key, value, compare (comparison operator) and type (data type). This will cause the query to automatically drill down with more granularity on the content requested.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$query = new WP_Query( array(
'meta_query' => array(
array(
'key' => 'foo',
'value' => 123,
'compare' => '>=',
'type' => 'numeric'
),
array(
'key' => 'foo2',
'value' => array( 'bar2', 'bar3' ),
'compare' => 'IN',
),
)
) );

The same can be done with taxonomy queries. Instead of meta_query, however, use tax_query and instead of key, value, compare and type you would use taxonomy, terms, field and operator. Otto has a good explanation for that on his site.

User Queries Overhauled and Simplified

Anyone who has done plugin development that has needed access to users have had a hodge podge of functions like get_userdatabylogin(), get_user_by_email(), etc. Not a lot of consistency, and definitely something that required frequent referencing of code. Now, from the “Duh! Why Didn’t I think of that?” file, comes the get_users() function that simplifies that API. It also wraps around a more powerful class for user search and querying called WP_User_Query.

To leverage this new API, you simply pass an array to get_users() and it returns an object based on the dataset retrieved. Arguments in the passed array can be:

  • blog_id – defaults to the blog id of the current blog (always 1 when WordPress is in standard mode but maybe another number in Multisite mode.
  • role – administrator, author, editor, subscriber, contributor. Defaults to nothing.
  • meta_key – allows for usermeta comparison and defaults to nothing.
  • meta_value – allows for usermeta comparison and defaults to nothing.
  • meta_compare – allows for usermeta comparison and defaults to nothing.
  • include – an array of user IDs to search. If empty, it searches all users. By default, it’s empty.
  • exclude – similar to include, this is an array of user IDs to not search. By default, it’s empty.
  • search – provides a way to target how columns are targeted. If, for instance, *max* is passed, wildcard searching is done in user_login, user_email, etc. By default, it’s empty.
  • orderby – specifies which column the results should be sorted on. By default, it is ‘login’ which designates the user_login column.
  • order – ASC or DESC. By default, queries are returned in ASC order.
  • offset – Designates a number of records to offset in the resulting dataset. If set to 1, for instance, the data will be returned with the first record skipped and begin on the second. By default, this is empty.
  • number – Designates how many records to return.
  • count_total – if set to true, the number of records returned is included in the dataset. By default, this is set to true.
  • fields – designates which fields to search. By default, this is set to ‘all’

Admin Bar

For those of you who have been WordPress.com or BuddyPress users, you’ll be familiar with the admin bar. The Admin bar is a toolbar that goes across the top of the site that allows users quick access to other parts of their blogs. That Admin Bar has now been brought to WordPress 3.1 as a user setting so it can be turned on or off based on preference
in your user profile.

In Multisite, the default is to show the admin bar in both the wp-admin as well as on the front end. In standard mode, the admin bar is set to only display on the front end by default. The Admin Bar, by default, provides quick access to a User menu providing a quick link to the user profile as well as the dashboard and the ability to logout. There is also a My Sites drop down menu available in Multisite that allows users quick access to blogs they have access to. There is also Admin Bar access to other frequently used areas of the blog and plenty of hooks and filters for plugin developers to add additional access.

Improvements to Custom Post Types

In WordPress 3.0, custom post types were introduced and now they have been iterated on. For one, in WordPress 3.0, custom post types could be declared but a standard set of UI was added to the admin menu. This set of UI was fashioned with an edit menu (called Posts for the standard Posts UI), Add New and, if custom taxonomies were assigned, Categories and Tags (or
whatever those taxonomies were designated as).

Now, developers can add a show_in_menu argument when registering a post type, and designate which menu to display limited UI in. This allows for custom post types to be used with the flexibility of eliminating potentially unwanted UI that would clutter the menu. Andrew Nacin has a great writeup on admin menu changes with post types that is worth the read for any developer working in this area.

Related, when declaring a post type, you have traditionally had to pass an array of labels that designate a singular version of a name (i.e. Post vs Posts) as well as a common name (i.e. Posts). You can now add menu_name to that list of labels if you want to target a specific way of displaying the post type in the admin menu.

Finally, theme developers can now create template files named archive-{post_type}.php to target specific post types to specific templates. Utilize a new has_archive() function to determine what should be displayed when there are actually posts that match the criteria of the query or not. This gives a good way of providing some kind of 404ish or other content if no content for the post type exists.

Filterable Template Hierarchy

Speaking of template files, it’s now possible to designate different template file orders and hierarchy depending on need. The original ticket, patches and ultimate core addition, uses the following example:

Take the author template hierarchy: author-{nicename}.php > author-{id}.php > author.php

Say I want to add author-{role}.php before author.php.

With an ‘author_template_candidates’ hook, I could manipulate the actual hierarchy.

Thus was born the ‘{$type}_template_hierarchy’ filter which can be used by developers to insert author-{login} before author.php in the hierarchy by hooking on the filter ‘author_template_hierarchy’. Pretty Neat!

Conclusion

While WordPress 3.1 is not the biggest release in the history of WordPress major releases, it does add quite a few new toys for bloggers, as well as developers. Remember when upgrading that you should, if you can, test your site in a development area before doing the upgrade. Plugins should most likely work, but you never know. And if something is broke, you can email me a aaron@technosailor.com and, for a fee, I may be able to help you out.

Finally, the second edition of the WordPress Bible will be out sometime this spring and it does, in fact, cover WordPress 3.1. However, the 1st edition is available now and is a great resource if you’re trying to get under the hood. You can buy that today on Amazon.

Credit: Andrew Nacin (@nacin), a Core WordPress Developer, slapped me with a trout several times during the course of writing this article. While I take credit for the article, any inaccuracies are entirely his fault. ;-) #blamenacin

The Web Is Passing Most of You By… And You are Asleep

Usually when Dave McClure, Angel Investor and Hustler, has something to say on his blog, it is said with passion, drama, and a pinch of angst. But he’s almost always right and he makes you believe it in the end with unequivocal points and thoughts.

Because this post is so utterly important and I firmly believe it and expect you to as well, I’m going to channel Dave in this post. If you’re offended by language, leave now.

Why? Because mobile is the most important thing going on in technology today and you all are sitting around talking about social media. That’s right, I said it.

You are talking about social media and the Old Spice campaign like it’s something awesome. You’re circle-jerking each other by promoting products and bullshit companies simply because your friend you drank with at Affiliate Summit is doing the social media. You’re holding it wrong!

Do you even know what their business strategies are? Do they have anything worth talking about besides their marketing campaign. They are just using Twitter and you’re praising them for their ingenuity because “they get it”.

Fuck. That. Shit.

They have no fucking idea that most of their customers have a phone and a significant percentage of those phones are smart phones. They are completely ignoring mobile and you’re enabling that bullshit by focusing on their conversations and engagement.

Fuck. That. Shit.

Here’s the reality. The next generation of the web isn’t bullshit REAL-TIME anything. We’re overloaded on real-time. Real-time is what causes your friends to look at their phones the entire night while you’re trying to socialize with them. What you need to be thinking is the RIGHT-TIME web. What do you need to know right now based on your interests and focus? Can that be delivered via the most ubiquitous device on the planet – the cell phone?

Instead, you’re worried about making sure your colleagues have their dicks sucked by the public.

Fuck. That. Shit.

The order of operations for the next-gen web is a simple formula. The RIGHT data to the RIGHT person at the RIGHT time on the RIGHT device. Data first, Device LAST.

But you don’t get it. You’re talking about iPhone apps. You think the iPhone, the iPad, and the Android will save us. You don’t realize that mobile constitutes more than those devices. You’re running companies that specialize only on a single device and app. Yea, I’m looking at you, Gowalla.

You’ve missed the damn boat.

You think that the next-gen web is about conversations. Hello? That started in 2004 when Facebook was invented and became mainstream in 2006 when Facebook opened up and Twitter launched.

The train has left the station.

You think the next-gen web is all about the here and now. Do you not under stand the word “next”? You don’t think proactively. You repeat talking points.

Fuck. That. Shit.

We wouldn’t be having to get people together in a crisis and figure out how to mobilize relief workers if the “right-now” web was operational and people weren’t narrow-mindedly thinking about how an iPhone app can help Haitians when most of the population of Haiti can’t afford an iPhone, and probably have old Nokia T9 phones capable of only SMS, if they own a phone at all.

You’re not thinking about mobile. You’re not thinking about semantic data and how it operates in a mobile form-factor.

And because of that, you’re missing the boat.

Photo by ilamont.com

EXCLUSIVE INTERVIEW: Copyblogger Brian Clark Leaves DIYThemes/Thesis Theme

A few weeks ago, Brian Clark of Copyblogger.com confided in me that he was leaving DIYThemes, and splitting paths from the embattled Thesis theme and lead developer Chris Pearson. He agreed to do an interview with me exclusively about this news. This is the entire transcript of that interview.

Technosailor.com: Brian, thanks for agreeing to this interview. Obviously, the timing of this announcement and interview are interesting considering the discussions that have been happening in the WordPress community as it pertains to licensing and DIYThemes, the creator of the Thesis theme. You’ve been with DIYThemes since its inception and have championed the theme. You’re leaving the company now. Can you describe the reasoning that has gone into this decision?

Brian: Chris Pearson and I have been discussing an amicable way to split for the last 3 months. The very public disagreements Chris recently had with Matt Mullenweg were ugly and embarrassing, but that’s beside the point.

The reason for the split is more fundamental than that one issue. For the last year Chris and I have had completely different opinions about the direction of the development of Thesis, the running of the company, and our relationship with the WordPress community. And there really hasn’t been any way to resolve those different opinions given that I’m the minority owner of the company and what he decides goes.

Technosailor.com: Well, when you say “our relationship with the WordPress community,” that’s got to mean the GPL issue, right?

Brian: That’s part of it, but also, fundamentally I think Chris really wants to build something new that has nothing to do with WordPress. Trying to force his development ideas into a WordPress framework creates a whole set of issues. I wanted him to go build his thing on a separate development track and simply be okay with Thesis being a great framework that extends the power of WordPress — because that’s what it was supposed to be.

As for the GPL, I took steps from the very beginning to make sure we never issued a license that was in contravention of the GPL. We used a membership concept since 2008 after I came on board. Our terms of service said you follow the rules of your Thesis plan and get the benefits of membership — support, updates, etc. If you don’t follow the rules, you get kicked out. It was never a problem, because most people are honest.

My last official act with DIYThemes was drafting the Thesis split GPL license after Matt Mullenweg publicly committed to suing Chris. I thought that was the right move for Thesis going forward, and Chris eventually saw the light. But we were going our separate ways no matter what.

Technosailor.com: There’s a lot more to the story than that regarding the GPL. I know the story because of our conversations over the years, but other people don’t. Can you elaborate?

Brian: Okay. At the very beginning, I was completely in the dark about the GPL. I’m a content guy — I’m busy writing and producing content, not following WordPress politics. But once Chris asked me to partner with him, I naturally had to educate myself. What I found out about the GPL didn’t make much sense, frankly, but it was the way things were with WordPress. So I made sure we never took an intellectual property position in our membership terms that opposed the GPL.

About a year-and-a-half ago, Matt Mullenweg made a big push for the major WordPress premium theme developers to expressly declare themselves GPL. I think Brian Gardner of StudioPress was the first to go along. About that time, I told Chris I saw no problem with going expressly GPL, since we’re selling way more than just code and again, most people in our particular market are honest.

Chris told me to go talk to Matt and Automattic CEO Toni Schneider about going GPL and being welcomed into the WordPress community with open arms. It’s important to remember that due to the Copyblogger audience and my personal relationships, we never needed the blessing of WordPress for marketing purposes. But Matt was offering prominent exposure on WordPress.org, so why not?

Long and short is, I spent a lot of time discussing things with Matt in the early summer of 2009. We had everything worked out. I went back to Chris and he said he had changed his mind and didn’t want to go GPL after all. I thought that was a mistake, and looking back, we started diverging on just about everything from that point forward.

Technosailor.com: Now, you’ve argued with Matt publicly about whether the GPL is even legally enforceable. How do you explain that?

Brian: Oh, don’t get me wrong – as a former attorney, I think the odds of the GPL being shot down in court in this context are pretty good. A lot of practicing attorneys think so too (if you’re interested in that kind of stuff, you can read this and this).

But the law is not the point. If you’re going to develop on a massive open source platform like WordPress, it makes sense to follow the rules of the community that’s developing it. If you don’t want to, go build on something else, or build your own thing. I see the point behind the philosophy of the GPL, and I’m fine with it. I don’t like people trying to assert that it is “the law” and that non-GPL developers are “breaking the law,” because that’s just not accurate.

The GPL is a license (a contract) that has never been judicially tested in the way WordPress says it applies, and that position probably wouldn’t survive a court case. But I got out of law because I hate litigation, so why would I want to fight about it? Just play according to the home court rules and you can still make money with a great offer.

Technosailor.com: So you’re selling your stake in DIYThemes or are you maintaining your interest and stepping away from daily operations and intervention? Is there an advisory role here or is the relationship done?

Brian: At first, around 3 months ago, we explored selling the whole company. Then I floated the idea of me buying Chris out along with some investors. Chris said he wasn’t interested. We finally settled on Chris buying me out over several months of installment payments. The paperwork was drawn up, Chris had a few minor questions, and he told me it was no problem getting it done by the end of July.

Apparently now Chris has changed his mind about that as well. So things are in limbo, but I no longer have any active role with DIYThemes, operational, advisory, or promotional. Like I said, my last official act was preventing him from getting sued by WordPress.

Technosailor.com: What’s the future then for Copyblogger? You have been running Thesis for as long as Thesis has been around. Do you continue doing that or move to a different framework?

Brian: We stopped using Thesis as a development platform for pending projects months ago. It’s perfectly fine for some people, but it doesn’t play well with WordPress enough for our needs. So I’m sure I’ll move Copyblogger to something else soon. And that was part of the reasoning for my departure — I can’t promote something I can’t use.

Technosailor.com: What about Scribe? Is that part of DIYThemes?

Brian: Scribe is a separate company with a different partner and has nothing to do with DIYThemes. It’s exceeding all my expectations after only 6 months and we’ll be releasing version 3.0 this month. So it’s not all doom and gloom. ;-)

Technosailor.com: Now that Thesis has gone Split GPL, do you feel like the damage that has already been done in the community can be fixed? Is it possible for Thesis to have the prominence and success it has had prior to the public “altercations”?

Brian: I don’t know. I just know I no longer have to wake up each morning worried about what “altercation” has broken out overnight. That’s a good feeling in itself. Life is too short to be involved in things that make you unhappy.

Photo Credit: Wendy Piersall

I’m Pro Choice. I’m Android.

We in the tech world are a fickle bunch. On one side of our brain, we scream about openness and freedoms. We verbally disparage anyone who would dare mess with our precious Internet freedoms. Many of us, especially in my WordPress community, swear allegiance to licensing that ensures data and code exchanges on open standards.

Yet one thing stands out to me as an anomaly on this, the opening day of pre-orders for the iPhone 4.


Photo by laihiu on Flickr

Ah yes. The iPhone. The gadget that makes grown men quake in their shoes. The thing that causes adults to behave as if they left their brains at the door. At one point in time, I called this behavior “an applegasm” and identified the Apple store as the place where intelligent people go to die.

And it’s not only the iPhone. It’s the iPad too (I bought one 3 weeks after release and only because I needed it for some client work). In fact, it’s any Apple device. Apple has a way of turning people into automatons controlled by the Borg in Cupertino.

Don’t get me wrong. I love Apple and I love Apple products. However, there is a degree of hypocrisy (or shall we call it “situational morality”) that comes into play here. There is nothing “open” about Apple products. Sure, Steve Jobs famously points out that Apple encourages the use of open web standards like HTML5, CSS3 and Javascript, but the devices are nowhere near open.

In fact, the devices are so closed and guarded that strange things like lost stolen iPhone prototypes make huge news. There is only one device. There is only one operating system. There is only one permitted way of designing apps. There is only one carrier (in the United States).

And the open standards, web-free, maniacal tech world that is ready to take off the heads of closed entities like Microsoft, Facebook and Palm, whistle silently and look the other way when it comes to Apple.

In another few weeks, I am going to be eligible for an upgrade with Verizon Wireless. As a longtime BlackBerry user (I refuse to give money to AT&T ever), I will be investing in a new Android-based phone. I won’t be doing this with any kind of religious conviction about open source. There is a legitimate place for closed source in this world. I’m doing this because the culture of openness (which supersedes the execution of openness, in my mind), allows for more innovation and creativity.

In the Android world (which is quickly catching up to the iPhone world), apps are being created without the artificial restrictions placed by a single gatekeeper. There are more choices in phones. Don’t like this one? Try that one. There is a greater anticipation around what can be done.

Apple had to have its arm twisted to enable multitasking in it’s latest operating system. It had to have its arm twisted to allow cut and paste. It still hasn’t provided a decent camera, despite consumers begging for one. In the Android world, if Motorola doesn’t provide it, maybe HTC does. You have choice. Choice is good.

I’m pro choice.

Battle of the Titans: Premium Theme Framework Smackdown

I have provided updates for the problems reported with each theme on their pages in this report. We can provide one update per framework as long as something significant has changed (as in a new release of the theme).

For a few days now, I’ve been looking closely at the four major theme frameworks. There are many premium themes. I, in fact, for the time, am using one from Woo Themes that I’ve modified to fit here. However, there are only four that I see as worthy competitors among the elite theme frameworks.

I will be using affiliate links when referencing all of them just because, if you choose to use any of them based on this article, I don’t mind collecting a commission fee. This does not indicate my endorsement of any of them. In fact, quite the opposite. I expect you’ll find me to be a hard, but objective critic of all of them.

The four theme frameworks: Thesis 1.7, Headway 1.6.1, Genesis 1.1.1, and Builder 2.3.11.

Report Scope and Prism

When I went about gathering data on this post, I heard a lot of back and forth from those in the WordPress community about why they liked or disliked each of these themes. Some of the issues were restrictive licensing that flies in the face of the open society that is WordPress. Other things were lingering effects from the Great Premium Theme Pissing Matches™ of 2008. Still others were about how user-friendly the themes were for users. In this report, I put all of that aside and look strictly from the perspective of infrastructure, data, security and WordPress core feature support.

All metrics that have been taken were created equally via a local installation of WordPress (eliminating network latency), with no plugins installed, 10,000 blog posts and 10,000 pages. The data points were taken in the context of a stress test and may or may not reflect actual usage. However, large scale stress is something to be concerned with for any site that is large or plans to become large. How the server handles database transactions, and file load is an integral part of a long term strategy. Each theme was deployed with no configuration changes beyond default settings provided by the theme. The results are fascinating.

This is a seven page article so click through to each new page to read the analysis of each theme.

Photo by icantcu

The Most Expensive Question

The most expensive question you can ask a consultant is, “What else do you recommend?”

This seems like a simple thing. At least if you’re a consultant. Potential clients approach you and they know they need something done. They may have a good idea of what that something is and they may even be able to provide a wish list of things to get done. However, for all that preparedness they ruin it all for their budget by asking, “What else do you recommend?”

Now some consultants do business this way. They are paid to help the client understand their needs and map out a solution. However, understand that this is a very expensive proposition in most cases. Hours of meetings and calls and emails exchanged back and forth can go into defining the scope, as we call it.

What's the Point?
Image by skipnclick on Flickr

We’ll usually approach the client with open ended questions to get a high level view of the client project.

  • What are you trying to accomplish?
  • What is your ideal end result?
  • What problems are you trying to solve?

Once I get a broad picture of the project, I can schedule conference calls with relevant parties to discuss each answer to each question. This is for the purpose of defining the details. Each call could take an hour or more and might span more than one call. This is all billable.

At the end of these series of calls/meetings, we still might have a bunch of email exchanging to do. This is even before we begin doing actual work. You can easily rack up thousands of dollars during this process.

The next phase of the project involves deliverables. Having defined all the scope details, the project probably goes on Basecamp or some similar project management service. Most consultants have a “floor” that is a minimum threshhold. I know people who will not work on projects below $50k. Others won’t work below $25k.

At this point, if the client is still not mentally committed to a path, there can be a lot of potential for “Scope creep”. That is, when the scope of the project slowly expands to incorporate other areas not defined in the agreed upon scope. Good consultants see this coming and can either agree to it pro-bono (bad policy), agree to it as an added service/feature (billable) or convince the client the idea is bad (it might be).

Scope creep is rarely good for the client, though. You’re definitely going to get billed for it when working with most consultants.

Bringing this full circle, however, you can mitigate your costs when dealing with consultants by having a really firm idea as to what and why you want to do from a high level. Leave the details to the consultant to work out, but strategically know where you’re going. If you can define the scope (wireframes are always helpful), you can lessen your cost even more.

The more we as consultants have to do, the more you’ll pay. We don’t mind helping, but if money is an issue, be careful and come prepared.

And for God’s sake, don’t ask “What else do you recommend?” We can make a mint off that question.