SitePoint Podcast #56: Professional WordPress with Brad Williams, David Damstra, and Hal Stern

Episode 56 of The SitePoint Podcast is now available! This week, Patrick O’Keefe (@iFroggy) and Stephan Segraves (@ssegraves) interview regular podcast co-host Brad Williams (@williamsba) and his co-authors David Damstra (@mirmillo) and Hal Stern (@freeholdhal) about their just-released book, Professional WordPress.

Listen in your Browser

Play this episode directly in your browser! Just click the orange “play” button below:

A complete transcript of the interviews is provided below.

Download this Episode

You can also download this episode as a standalone MP3 file. Here’s the link:

Subscribe to the Podcast

The SitePoint Podcast is on iTunes! Add the SitePoint Podcast to your iTunes player. Or, if you don’t use iTunes, you can subscribe to the feed directly.

Interview Transcript

Patrick: April 6th, 2010. We talk to the authors of a new WordPress book aimed at developers. This is the SitePoint Podcast #56: Professional WordPress with Brad Williams, David Damstra, and Hal Stern.

Hello and welcome to another edition of the SitePoint Podcast. This is Patrick O’Keefe and I’m joined by my usual co-host Stephan Segraves as we flip the script a little bit and interview our usual co-host Brad Williams, along with David Damstra and Hal Stern. Together, they have co-authored the new book, “Professional WordPress” from Wrox Press, a division of Wiley.

Professional WordPress is part of the Programmer to Programmer series, and as such it’s focused at WordPress developers, and those who really want to get into the code or the software. According to the Wiley website, the book is an in-depth look at the internals of the WordPress system that goes beyond the basics and delves into the heart of the system offering overviews of the functional aspects of WordPress as well as plug-in and theme development. If you’d like to find out more, you can find the book at your favorite bookseller, and also on the book’s website at professional-wp.com. Without further ado, let’s get down to business.

It’s good to have Brad join me and Kevin Yank as the SitePoint podcast hosts that are also published authors. Stephan, you know you need to hurry up and get on that.

Stephan: I’m writing a 3-part play.

Patrick: Well, there you go. Let’s do a quick bio check. In 30 seconds or less who are you, what do you do and why did you write this book. I think we’ll start with Brad since no one listening to this show really knows him all that well.

Brad: Sure. I’m Brad Williams. I’m the CEO and founder of Webdevstudios.com and we primarily work with open source software to build websites and different applications. So obviously, WordPress is one of our tools of choice.

Patrick: Okay, David?

David: I’m David Damstra. I’m the manager of web services for CU*Answers which is a credit union service organization. My team develops websites for credit unions and we use WordPress as a CMS. It’s an awesome tool for us.

Patrick: Cool. Hal?

Hal: I’m Hal Stern. I began blogging about six years ago when I was with Sun Microsystems and when I was looking to take some of that content into a more private and personal space, happened upon WordPress and decided that I needed to start figuring out how it worked from the inside out. Days of taking apart teddy bears and radios kind of caught up to me in the open source world.

Patrick: How did you three come together to work on this book?

David: There was a post on Photomatt from Matt that said Wiley and Wrox were looking for some WordPress authors to start a new series and I think at least Brad and I, believe, responded individually and Hal… And it just came together.

Brad: Yeah, that post was actually – I actually dug it up because I just wrote a blog post about it. It was almost a year ago today, it was the 10th of February last year so we’ve almost come a full circle in a year from literally the time we all kind of saw that post about Wiley wanting authors to actually, you know, the book being released and promoting it. So it’s pretty exciting.

David: I had worked with Carol Long who’s the executive editor at Wiley, the Wrox label, I had worked with her previously and she and I had been talking about a book idea and again, it was nice to sort of have independently the different threads come together.

Patrick: So where are you three geographically? I know Brad is in New Jersey. So where are you at, David?

David: I’m in Grand Rapids, Michigan which is on the west side of the state.

Patrick: And Hal?

Hal: I’m in the northern part of New Jersey. So even though Brad and I are in the same state, we’re kind of not because we’re in different area codes.

Brad: Hang out by the beach.

Patrick: Cool. So Wrox’s actually – so you guys came to Wrox; they didn’t come to you I guess? In David’s case, you had been talking with Wiley and that sort of worked together but it was sort of they put out a request and you guys went to them, right?

Brad: Yeah. It was actually Matt Mullenweg who’s one of the founding developers of WordPress. They had contacted Matt to kind of get some exposure to bring in more authors. They were looking for more WordPress related authors. So obviously he has a very big reach. Well, myself and David both saw his post along with many others from what I heard and we just emailed and expressed an interest and it kind of went from there.

Patrick: That’s cool. So Wiley, of course, is a huge, huge publisher and not surprisingly they’ve put out a bunch of WordPress books. Just kind of reading down the list here, you have: Professional WordPress of course, Teach Yourself Visually WordPress by Janet Majure, March 2010 that came out, WordPress Bible by former SitePoint forum staff member Aaron Brazell in February, Smashing WordPress: Beyond the Blog by Thord Daniel Hedengren in February 2010, WordPress 24-Hour Trainer, WordPress for Dummies 3rd edition by Lisa Sabin-Wilson out in August, 2nd edition was in February. You know I guess the question is how do you feel that Wiley has positioned your book as compared to the others?

Hal: Well, this is how. I’ll give you my view on it because I think that part of the way that this project came about was our desire to really treat the material not in terms of hey, you want to start a blog, here’s how you go create a new posting, here’s why you should use tags and categories but to really think about teaching people how the code is structured and enough of the internal mechanics of WordPress so that you develop an understanding if you want to go extend it through themes, you want to go extend it through plug ins. Even if you just wanted to fine tune things a little bit, you sort of know how all the pieces fit together. That was my goal and initially in talking to Carol Long about this book and the combination of the three of us was worked very well I think because we brought three very different perspectives in terms of WordPress development expertise. Obviously, the other part of this is how is the book structured; obviously not a beginner’s book, trying to aim at either a well educated user, someone we hoped to become a well educated user or in a lot of cases, really going after a developer audience as opposed to someone who’s, again, they decided they want to start a blog so they’re going to go buy a book on WordPress.

Patrick: What’s your take on that, David?

David: Yeah, I agree with Hal. This book is not like a recipe book. It’s not a how do I make a website, how do I do this, how do I do that, it’s much more in-depth on the theory behind WordPress. There’s no way we could keep caught up with a recipe book on the constant evolvement of WordPress. I mean even 3.0 is coming out any day now, well, probably a month now, but focusing more on the theory and how to do things so you have a foundation to use WordPress rather than get you through this current version of WordPress.

Stephan: This is Stephan. Are you guys, then, involved in the core? Do you all three contribute to the core of WordPress?

Brad: I’ve contributed some code and patches to the core of WordPress and to some of the sister projects like MU and BuddyPress. I wouldn’t consider myself a huge core contributor but there is time to time where I’ll come across a bug and I’ll certainly do what I can to help fix that in the project itself.

Stephan: David?

David: Yeah, I’m certainly much more of a lurker where I’m monitoring it and watching it but I haven’t actually contributed something back at this point.

Stephan: Do you guys do plugins at all? I know Brad has some plugins. Hal or David, do you all do plugins?

David: We have plugins that we use for our specific credit union sites that integrates with the credit union core processing environment. So it’s of no use to anyone besides our clients.

Hal: I actually came at this much more from a perspective of someone with a lot of interest in databases and data management and again, trying to figure out how both how all the content is stored and what the relationships among the various data items are and eventually, again, how WordPress going to turn it into something that gets displayed on a page. So if David’s a lurker, I’m meta lurker I guess but again, that’s one of the reasons why when you have a group of co-authors – I played some of editorial role and also just try to make sure that everything tie together and really defer to David and Brad as the deeper developers here and both with much better artistic sense than me.

Stephan: Well, it sounds like it’s a really nice trifecta you got going on. That’s good.

Brad: I think that’s what they were aiming for when they kind of put the team together is rather than have one book written by three different plugin developers, they wanted to really bring in a team that had a lot of different experience with WordPress. So like you said, Stephan, obviously, I have a lot of experience with plugins and more of the programming side of it whereas Hal and David have their own strong points as well that I’m not as good at. So we really kind of mesh together and that really helped us all during this writing process to kind of lean on each other for those certain areas.

Patrick: So I’ll throw this one over to Brad but David mentioned 3.0 being around the corner of course and it occurred to me I know in writing my own book and my book isn’t a software book thankfully and I made the decision to avoid that for this very reason but with software that’s being updated so constantly, what kind of decisions did you make? How did you guard against getting too version specific so that the book doesn’t become outdated any sooner than it needs to?

Brad: That’s a good question and especially with open source, I mean like you said it’s evolving quickly. I mean WordPress 3.0 is slated to come out less than a month from now. I think May 1st is the target date. Obviously, when the book comes out we can’t be current up to the exact version that’s out there or the developing version. Professional WordPress is based around WordPress 2.9.

The nice thing is we made sure when we were writing this book that not only did we talk about some topics that might have been specific to that version but overall as a whole, it’s more of the appropriate ways to use, to hook into WordPress, to use the proper functions, to work with the different API’s and these are things that aren’t likely going to change anytime soon.

Patrick: Hopefully.

Brad: Hopefully, you’re right. And some things will change but one of the beauties of WordPress is there is always that backwards compatibility. So if you write something today, will it work a year from now? It’ll defiantly work. Will it be the correct way to do it? It’s hard to say because it does evolve quickly but we certainly made sure we use the most up-to-date practices on everything that we did write about so we knew our book would stay fresh for as long as possible.

Patrick: Does part of doing this book, I guess I’ll throw this one over to David, but does part of doing this book, I don’t know how your contracts read, but is there an expectation that you will do a 2nd version down the road assuming it sells a reasonable number of copies?

David: I think you have to ask our families if they want us to do this.

Brad: Or allow.

David: We haven’t had direct discussions with the publisher about that but I know each of us have already made lists of what we’re going to update for a 2nd edition should the opportunity arise.

Patrick: Now, we’ll edit that part out so that people actually go out and buy this one. I don’t know, if I was your publisher… No, I’m just kidding but no, that makes perfect sense. I think it’s natural for that to happen and it’s interesting to me how many WordPress books actually have come out and are coming out. I guess it’s a hot area for publishers to kind of jump onto and I guess what happened is the first books must have done extremely well and when one book does extremely well for one publisher in a certain genre, it seems like other publishers jump on as well. Do you think there’s any – I don’t know it’s not a problem because it’s a good thing for WordPress but is a number of WordPress books out there a little overwhelming do you think?

Brad: I like to think that people do their research when they’re getting a book so they look at the reviews, they look at what other people in the community or in the field say about these books to kind of know which one would be right for them because you’re right, there is some overlap on these books and there’s a lot out there but I think as far as Wiley and Wrox, I know their goal is to have a new book out for every major version of WordPress, which is a three to six month cycle on every new book. Obviously, that’s a lot of books coming out but they are still relevant.

Patrick: So major version being WordPress 1, WordPress 2, WordPress 3 or?

Brad: No, so right now the current version is 2.9.2, so the major release is 2.9. So we’re not talking about…

Patrick: Okay, so 2.9, 3.0, 3.1, etc.?

Brad: Right.

Hal: I also think part of the approach of writing a book is you want to write something that conveys enough, I don’t want to say critical thinking because it makes it sound like something you’re going to pick up at Harvard. If they want to teach a WordPress course, they’re more than welcome to use our book as a textbook, of course, but if you want to convey here’s how you approach the code, here’s how you approach a set of problems, as Brad mentioned earlier, to teach people how to go use the other resources that are available to them and by doing that, the overall structure of the book I think remains constant through a couple releases. Also, I think no matter where people intersect it, it’s a good starting point for them. Again, they can pick it up in something specific to 2.9.2, get a sense of help. Here’s how the loop is structured, here’s how template files get chosen. Great, I can now go use that in 3.0 or the next major release after that.

Brad: To expand on that a little bit, you know Hal is absolutely right, so obviously, there’s – I mean anyone that’s worked with WordPress even a little bit knows there’s a lot of different functions out there that do just about anything you would want with WordPress. There’s a function to pull back your categories, pull back your tags, pull back pages, links, whatever it is you want. There’s usually a function out there that will do it. We’re talking thousands of functions so obviously it’s impossible to know all those but we actually open up some of the core files of WordPress and show you like here’s all the functions that are related to a post, here’s all the functions related to a category, this is how you read the code, there’s inline documentation you can look at. So it does really train you how to rather than rely on okay, this is how you do this or that or this. You can really dig in yourself and look at these functions and really start to kind of grasp how they work and how you can use them.

Patrick: So this is part of Wrox’s Programmer to Programmer series, right?

Brad: Yes.

Patrick: So with that in mind, the audience isn’t your typical someone looking to just get into WordPress. WordPress for Dummies would seem to be a better fit for that. This is more of a book for people that have an expectation of or have a level of PHP programming I suppose and I guess – what is the target audience? What are you expected to know coming into this work? I guess I’ll throw that one over to David.

David: Yeah, this is definitely for someone who’s looking to extend WordPress or real power user, someone who knows PHP, somebody who knows CSS for the themes, somebody who can go through some of the codex and get the functions to make WordPress do what they want it to do.

Hal: I always like to answer by example. Working with a friend of mine who’s putting together a website for people who are looking at job issues, recruiters, job postings, interesting news items and wanted to be able to sort the posts alphabetically because that’s how people tend to think of looking up a recruiter or looking for a company name and kind of came to me and said I know I can do this but how do I do it? You know, I know I kind of have to do something over here with a query what do I do? It’s like not exactly the world’s greatest PHP programmer or certainly not someone who’s going to be contributing to the core but someone who basically wanted to know where do I go, I know it’s a couple of line change, I know I just need to know which parameters to go change, where do I go for that and he’s my target audience. I just need a lot more people like him but that’s my target audience.

Patrick: So here’s a question. Have you guys, because I know this is myself because I wrote a foreword for a book about phpBB and connected in that kind of phpBB area and I’ve seen the books come out, have you guys heard much of the reader who says why would you write a book about this, you can just go to the manual online or you can just pull up the WordPress documentation and so on? Have you run into that person yet?

Brad: I think most people that have kind of dived in to WordPress, because the first place you go when you’re really starting to learn how to customize WordPress is the codex and the codex is essentially the documentation for WordPress on WordPress.org, it’s all the different documentations, functions, how they work, anyone that’s kind of dived in the codex will quickly realize there’s a lot of information in there, a lot. I mean it’s been growing for who knows how many years now. You know there’s thousands if not tens of thousands of different pages inside this Wiki. It’s very hard to follow and the content is just not organized in a fashion that’s easy to learn if you’re kind of coming in to WordPress and want to know how to extend it. So most people usually already know that, they’re looking for something that’s laid out a little bit better whether it’d be tutorials on a website or a book they can physically hold and use as a reference. They’re looking for something that’s a little bit more focused and more organized and that’s really where our book comes in.

Hal: Again it’s not meant to replace the codex; it’s really meant to be – at one point I referred to it as sort of your travel guide to the codex, it tells how you want to approach it, where the interesting things are, how you should go interpret what you’re going to find there and that way, people who read the book who are also interested in using the source code as their reference will be able to do both. Very few people I think are able to pick up a reference book and read all that’s through it and learn something from it. And again, part of the goal of writing a book is to help out that level of organization.

Patrick: I like Hal there. He’s like a – back up off the ledge there, Brad; this isn’t to replace the codex. We don’t want to anger anyone.

Brad: No, it’s definitely not and you know we actually reference the codex. We kind of show you how to use the codex in an efficient way, how you can find particular functions because there is a lot of great information in the codex. The problem is it’s usually buried under something that may be outdated or something that isn’t as relevant to what you’re searching for. So it’s just a matter of finding it. So we kind of help you like okay, here’s the function in this core file, now here’s how you can go find that function of codex, now here’s how you can work with that function. So we really kind of show you the different places that you can use to help you learn that.

Patrick: Stephan, do you want to jump to the technical stuff?

Stephan: Yeah. So can you guys kind of cover what you contributed to the book, which part, just so I kind of know who did what?

Brad: Do you want to know chapters or I mean just overall topics?

Stephan: Just overall, just the general idea. Just so I – like I have a question about the cache.

Brad: That would be under David. I did plugin, dev, the loop, the database… David, you handled the caching.

David: Yeah, I think Brad’s the first part and I’m the second part and Hal kind of reviewed everything.

Stephan: So my question – one of the chapters is about scalability and caching and things and I wanted to get you guys your take on caching and who is it right for and who is it wrong for and kind of the way people should go forward. We’ll just jump in a little technical here and get you guys your thoughts.

David: Well, I mean for me caching, there’s a bunch of levels to it. You basically need to start caching when your site starts struggling to handle the load. There’s a couple of different spots where your – you know WordPress is not known for its database query optimization. It makes multiple roundtrips to the database for every single time, every single page load. So putting that MySQL cache and it helps you with those queries but then also you can start caching your front end too, the different objects there or even going into super cache and running out a full page key thing into a HTML page.

Stephan: And the book covers that pretty well. I mean it goes through and it gives people directions on that. I think it’s a great chapter. So do you think then that – I mean how do people know when a website is not performing the way it should be? Is it obvious all the time? Sometimes it’s not, right?

David: Sometimes it’s not I guess. You know if you look at your website and it’s not loading quick enough you know there’s something going on. You should have a reasonable expectation of how long it takes your web page to load especially using tools like Firebug and YSlow even though – I mean like I said in the book, your problems are unlikely to be the same problems as Yahoo’s. Because you’re not on that same scale.

Stephan: So no NoSQL for anybody, right?

David: Yeah.

Hal: I think David made a good point. This is one of the things that you asked sort of what we did. Well, part of my job was to look for the points of narrative consistency as we went from chapter 1 all the way through the tail of the book and talking about migration. But we actually touch on things like caching and database performance, some of it comes out in the chapter on the loop because if you’re going to go and change your query so that you do a query then you throw away the cache, you do a query, you throw away the cache, not only are you making your performance – you’re inhibiting whatever performance benefits you get out of the object caching in WordPress and then you’re making it worse by going and doing more database queries in the first place.

So if your problem is it feels slow and it’s because you’ve gone and modified the loop a little bit, you may actually make things a lot worse. And then David mentioned other things you can go do in terms of actual page generation that will sort of take the – extract the content and so we cut down the code path needed to get or to turn it to HTML. Yeah, I think this is one of those – the performance thing is very much a black art and that’s true whether you’re talking about WordPress or databases or big web servers. I think it’s really understanding how the single request is going to go from your web server through your core code off your database and all the different things that’re going to color its performance along the way. Again, we tried to hit that. We hit it in a couple of different spots.

Stephan: Yeah. I was also reading through a couple of the chapters, there’s plugin development and there’s theme development, can you kind of go through plugin development? I’ve seen it done at – I was at WordCamp Boston and I saw yet another related post plugin and kind of how to modify that and things like that. So can you kind of go through what plugin development entails and why it’s important to not modify the core and instead use a plugin or use modification of the loop?

Brad: Yeah, absolutely. So plugin development is one of the chapters that I wrote and it’s probably, it’s easily my most favorite chapter that I put together for the book. I really think it covers just about everything you need to really start getting into plugin development and hooking into WordPress. So basically, plugins and WordPress are quite simply just pieces of code you can install in WordPress that’ll add functionality. The functionality can be – it’s really limitless what it can add. It could be anything from a simple contact form to maybe a database backup plugin to maybe an event calendar of some kind. I think there’s over 9,000 plugins currently in the plugin directory on WordPress.org. I mean there literally is a plugin for just about everything.

The advantage of using plugins and why you never want to hack the core or modify the core WordPress files are when new versions of WordPress come out, if you have hacked any core files, you kind of limit yourself to where you’re not able to upgrade because you will lose those hacks you put in place.

So rather than modifying core WordPress files, you should build plugins that can add in whatever that functionality is that you need. And the plugin chapter really goes into detail, everything from creating your first plugin file all the way through to using different hooks, which the hooks in WordPress are basic ways that you can drop code at specific points as WordPress is loading, they’re called actions. So say I need to drop some CSS code in the header of my theme, I can hook into the wp_head action hook and it will drop whatever code I want in there. So it’s just a simple way to kind of drop your customized functions or whatever you’re trying to do throughout the different parts of WordPress. So anyone who’s really looking to get into extending WordPress should definitely dive right in and start working with plugins and playing with them.

Stephan: Cool.

Hal: And I think you’re going to see more and more, some themes like the Thesis for example that are just loaded with plugins or loaded with hooks so that not only do they themselves extend the different editing themes and managing function that they’re using but they provide a ton of other jumping off points for you to even further customize them and that’s right – because I have an old talk of Brad’s I think about using a theme and you know I got it from him about a year ago or when we first started working on it. So I look at it and I kind of put it away saying alright, I’m missing a lot of context for that and then on the other side of having gone through the plugin chapter pickups, oh, this is exactly what I was trying to do. I want to go fix the way this multimedia box works over here and again, it was very quick to tie those two thoughts together. Once I had that background of okay, here’s where the different hooks and filters are going to fit together, they are provided by the theme I started with.

Stephan: Cool. I don’t want to get too off of the technical track but it leads me to another question, you mentioned Thesis and having these hooks built in to Thesis or different themes, do you think it’s going to get to a point where there’s going to be so much hooks in that theme that when you upgrade to a version, a new version of WordPress that it’s going to create some issues as far as upgrading?

Brad: Well, it should never get to that point. If the theme is coded properly, it should never kind of overlap to where upgrading WordPress could affect it. Now, a lot of the popular frameworks like Thesis and Genesis and Hybrid and some of the other ones, they have very prominent developers behind them and designers so they know what they’re doing. So they make sure they code them to the standards to make sure that that wouldn’t happen.

Stephan: One thing that is pretty much the most important thing in the book to me at least when I was reading through it was the fact that we shouldn’t use ‘admin’ as the username in the security section. David, can you go into why that’s such a bad idea and a little bit about security?

David: Sure. Well, using admin, which by the way it’s removed in WordPress 3 on fresh installs, they don’t much use that anymore, the reason you don’t want to use admin is your WordPress site is protected by a username and password and for a hacker to get in, they got to guess both those, they got to guess the right pair but it already letting them guess admin. So all they have to do now is guess your password. So one of the first things you should do on a previous to 3.0 install is make yourself your own admin account with a unique username and remove that admin username.

Stephan: Now if people have already installed WordPress and they have used the admin username, is there a way for them to go in and remove that and change it without losing their blog?

David: Yeah, definitely, the first thing you need to do is create yourself a new administrator level account. Once you do that you log in as that new administrator account, you can delete the admin user and WordPress is smart enough to let you reassign any posts that were attributed to admin before to be attributed to whatever account you want it to be or you can delete them altogether but usually you just move them over to your new admin account.

Stephan: Good information for users to have.

David: The other thing you should do there, which Brad covers in some of its security trainings at WordCamp, is in your theme, you shouldn’t display your username outright in the theme otherwise you’re pretty much negating this whole process.

Stephan: Should you show the person’s name, real name instead?

David: Yeah, you can use like the nice name or the nickname but not the username.

Stephan: Not the username, no.

Patrick: There’s a song in there somewhere. I don’t know where it is but it’s like the nice name, the nickname, the username, you know your nickname isn’t always your nice name. You know you guys – and I debated whether or not to actually bring this up – but you mentioned Thesis and I know kind of hotbed issue right now – is that Brad laughing?

Brad: Maybe.

Patrick: Maybe. I thought it might be. No, so it’s a hotbed issue right now, I know it is and I know that it’s kind of controversial within the WordPress community, I don’t know how open source politics works at times, I guess I wanted to ask what are your thoughts are individually, I guess with Brad, David and Hal, in that order, what are your thoughts briefly on commercial themes as a whole, as a business and what you’d like to see happen?

Brad: I like commercial things actually and at WebDevStudios I would say 90% of the websites we build we start with a commercial theme as a foundation and the reason we do that is mainly because out of the box, they’re coded to the standards and you have a good foundation to work off of rather than grabbing a free theme that you think looks nice but then you go behind the scenes look up the code and it’s a disaster. In that case you spend more time trying to fix it than you do actually customizing it how you want. The thing that I’d like to stress to people is there’s a big difference between a WordPress theme and a WordPress theme framework and I think a lot of people don’t quite understand the difference now.

So basically, a WordPress theme is just like all the themes that we’re used to in WordPress. It’s a set of PHP files you download, you activate the theme, if you want to modify the files, you open up a file and you make the changes that you want. A WordPress theme framework actually works a little different. So it’s still code, you still download the theme and activate it but to work with it, you don’t actually modify the core theme files. You usually, like Hal pointed out earlier, most of them have a set of hooks that you can use so rather than just opening my home.php file and making changes, there’ll be a hook that I would have to use to hook into the homepage and then make whatever changes I want. Now the problem is theme frameworks are more advanced to work with because now, rather than just opening up one file and kind of working my way through it and making changes directly to the HTML or the PHP that I see, now, I’m forced to use PHP just to even start. So it definitely adds to the complexity of working with it and a lot of people don’t realize that. When they buy a theme framework, they think oh, I can do anything I want out of the box and it’s really not the case. It’s actually a little more advanced to work with so then they’re stuck and they’re kind of forced to go either buy a different theme or to hire somebody to help them out.

Hal: Or you could buy our book and a theme framework at the same time.

Brad: That’s a good solution.

Hal: Yeah.

David: This is David. Actually, going back to having three different backgrounds coming into this book, my team are all PHP developers. We build custom themes from scratch starting with the Sandbox theme and it’s just like we did in the book. We’ve tried to use theme frameworks like Thesis and Hybrid and whatever else and it just frustrates my guys beyond belief because they have to go into the admin to use a hook to add something to a special spot instead of opening up footer.php and putting the code in right there because we come from a PHP background.

Hal: And I would say you know but also there’s an element of design capability here and I probably sit in the middle here. I don’t have a problem taking things apart and looking at the code. I just want what I produce to be usable and have the right aesthetics and actually make people want to come back to my site as opposed to looking at and running away screaming with their hair on fire that it looks like a fourth grade art experiment that it failed, which is most of the time what my attempts to design look like. So for me, I’m happy to pay what I consider to be a nominal sum for a really good starting point and especially a starting point that I can go and further customize so it doesn’t look like everybody else who started from that same point. Simon Phipps who is, I’d say, one of the fairly vocal guys in the open source community, likes to say that people will pay for things at the point at which they have value and when you’re talking about things in the roughly hundred dollar range, there’s an awful lot of value there for me in terms of my time saved and in terms of the overall impression, the overall user experience that gets created, for me it’s a really good trade off.

Patrick: Sound like there’s a viral video in there somewhere, hair on fire that could be used to promote the book, I don’t know. Maybe you guys want to look into that.

Brad: Wait till you hear what Hal’s blog is.

Stephan: Well, guys I have one question that I think all three of you guys can touch on is what is the great plugin that not enough people know about. So we’ll go Brad, Hal, David.

Brad: A great plugin, that’s a good question. I think if you go to the WordPress.org and you look at the top most popular plugins, most people are pretty familiar with these and for good reason, they’re very good plugins that even we use in a lot of websites. I guess it depends on the particular use case of what you’re trying to do. There’s a plugin I like and it’s based on security. It’s actually mentioned in the book. David wrote about it and it’s called the WordPress File Monitor and basically what this plugin does, you activate it on your site and if any source files, so any PHP or CSS, any files in your website are changed, it will automatically email you and telling you exactly what was changed and at what time and it’ll send it right to your email. So what this is it’s basically a first response prevention for if your site were to get hacked. So if there’s file on your web server changes and you didn’t do it, there’s a good chance that something fishy is going on that you need to look at. So this is definitely one that I recommend for any website for security reasons. So again, it’s called the WordPress File Monitor plugin.

Stephan: Hal?

Hal: So I have just started poking around with the Google Analytics dashboard which is one we don’t talk about in the book. Again, one of the things I’ve done recently is trying to take a couple of different places where my content was a Movable Type based blog as well as two WordPress blogs, bring them all together, both due to a change in employer and also just finding out I was never having enough time to keep multiple blogs together and one of the things that really turned into a problem for me was you’d go work on some content then you go back over to Google Analytics then you go back to the WordPress admin page. And the nice thing about the Analytics dashboard is it gives you the Analytics embedded in either in your page control or in your post control. So you can actually get a sense of what content that you’re looking at managing has generated what sort of viewer response. And so for me, just being able to do that kind of direct correlation was very helpful.

Stephan: Yeah, I use that one as well. I love it. David?

David: I think my favorite plugin right now is Gravity Forms. Gravity Forms has completely changed the way we’re able to do any kind of form on a WordPress site. It is a commercial plugin now so you have to pay for it. But we bought a developer’s license on day one and I don’t regret at one bit.

Brad: Yeah, I would definitely second Gravity Forms. I got to be honest, when I first heard about it, I thought you know what, that’s a nice idea but it’s not really going to work because there are a lot of contact form plugins already available. After the first time I tried it, I bought the developer license and haven’t looked back. I mean it literally is a game changer as far as creating forms and not only does it make contact forms but you can make forms that automatically make posts inside of WordPress. So imagine you want a nice front end way for your users to add contents to your site, rather than going into the backend of WordPress, you can easily do that through Gravity Forms.

Patrick: Well, I think the final question for today, I wanted to bring it back to I guess the book publishing. I like to ask authors this question, I asked Gary Vaynerchuk this question, we interviewed him at the end of last year, we talked about, again, the book publishing industry and I was curious about your thoughts on it specifically as it relates to publishers and their futures. You know, you’ve been all through the process of publishing a book and gone through the editorial stages. In my case, that was like three steps of editors. I don’t know how many it might have been in your case but it takes a year to get a book done. And obviously, in the music industry, in the book industry, publishing in general, the Internet has allowed the sort of quicker to market system where you can self publisher easily, you can sell a lot of copies online.

What is your perspective of the publishing industry and in the future, if you write another book, are you looking to go through a publisher again or self publish it or what do you think? Brad first.

Brad: Well, I would certainly go through a publisher just because I wouldn’t really know where to start. I mean I could certainly write a book and then either self publish or work with one of the publishers where you basically pay to get it published. But for me it’s more of a time issue. I wouldn’t have time to do that and still run the company and support our clients and things like that. So if it came down to it and I did do another book, I would certainly want to go through an established publisher to help me out with that.

David: I think the other benefit you get with going through a publisher is Wrox is a name recognition. You know that’s a good series of books. You know they put a lot of weight behind them and having that being published under Wrox is definitely good for our book. It’s something we can do. Other thing Wrox and Wiley did with our book and a lot of them is it’s a DRM free eBook. So you can download that and just get a PDF that you can use also.

Hal: Yeah, I guess sort of two views on that, right, is the tools for publishing like the tools for all other digital content creation are reaching the consumer space right now. Anybody who has a word processor or a laptop can go off and essentially create 400 pages of content and put it together as a book but there is a certain, as both David and Brad mentioned, I would say an awful lot of mechanical effort that goes into the publishing business as well from the actual printing process to layout, to cover design, to marketing, to talking to the booksellers, to figuring out who gets review copies and how you setup the marketing opportunities like this and essentially, all of the things that go into running a business. If you haven’t done it before I think they’re very hard to do and to Brad’s point, if you have done them before, unless you’re writing books for a living and you go on book tours and go sign copies in your local bookstore, it’s hard to find all the time to go do those things. It’s great to have a company whose primary line of business is selling dead trees to help out with that.

Patrick: Yeah, I think it’s very true. I think with book publishers, the main two things they have right now are access and talent, talent being editors, people who can spend time doing these things you talked about. You can hire talent but the access to bookstores, for example, is a little more difficult. So just an interest that I have personally as an author and in this industry.

Hal: And I even think if you look at Amazon as maybe one of your primary distribution points, still you have to get found. This is one of those long tail effects. It’s nice that there can be 3 millions titles on Amazon but you know what, you’d rather be number 3,000 than number 3 million and I think a lot of the difference there, if you’re self publish your going to be number 3 million and a lot of people are okay with that. They have a couple of copies, they do them and give them to their family and friends and give them out at Thanksgiving dinner and that’s fine. But if you really want to get into the thousands, tens of thousands of copies, I think that’s where the publishers, again, they’ve been around for a long time. They tend to do this. So again, you look at the Wrox, Wiley bought Wrox because it did have a long list of titles but it also had, I would say, they saw it was a chance to go add to the breadth of their influence. There’s a company that already owns the Dummies series – talk about brand name recognition – and they’re taking it in a different direction and they’re going to use the brand and use their marketing channels to go create a sense of what they want the Wrox titles to be like and again, as David talked, how they want the Programmer to Programmer facet of their technical books.

Patrick: Well, right now you’re number 10,679 so our name is on sales rank as we speak, so very far off of 3 million so congratulations on that.

David: That number changes every day. Mine says 9,000 right now.

Patrick: It does. Every hour it changes. There’s actually scripts out there that can monitor and email you. I have one that emails me my rank every hour on the hour. So yeah, it fluctuates.

Hal: What it doesn’t tell you is how many others are tied with you and isn’t just that we’re the ones who sold 10 copies or 12 copies today.

Patrick: Yeah, it can fluctuate very easily. Literally, 5 to 10 copies can send you up into the 50,000. It’s funny to watch sometimes. So I think that brings our show to a close. Before we leave though I’d like to go around the table and just find out where everyone can find you guys online, Twitter, social networking profile, personal homepage, whatever. So if you guys could let our listeners know, Brad, then David, and Hal.

Brad: Sure. Most people know I’m on Twitter @williamsba. I’ll also be in a lot of WordCamps coming up. So if anyone is in the area, I’ll be at WordCamp—

Patrick: Raleigh! (cough)

Brad: Yeah, WordCamp San Francisco, I’ll be with Patrick and possibly Stephan at WordCamp Raleigh and then all three of us authors, David, Hal and myself will be at WordCamp Chicago at the beginning of June. So if you can make out to anyone of those, definitely grab me. I’ll probably hopefully be presenting most of them if not all of them. So yeah, Twitter and my blog is at Strangework.com.

David: This is David. You can find me on Twitter @mirmillo and then Mirmillo.com is my personal blog and my work site is ws.cuanswers.com.

Hal: And this is Hal. I’m on Twitter @freeholdhal and Snowmanonfire.com is where you find everything else from technology to cool t-shirts.

Patrick: And as usual you could find me, Patrick O’Keefe, on Twitter @ifroggy and iFroggy.com.

Stephan: And I’m Stephan Segraves. You can find me on Twitter @ssegraves and Badice.com is the blog.

Patrick: You can also follow our usual co-host Kevin Yank on Twitter @sentience and SitePoint at @sitepointdotcom. Visit us at sitepoint.com/podcast to leave comments on this show and to subscribe to receive every show automatically. Email podcast@sitepoint.com with your questions; we’d love to read them out on the show and give you our advice.

This episode of the SitePoint Podcast was produced by Karn Broad. Thank you for listening, and we’ll see you next week!

Theme music by Mike Mella.

Thanks for listening! Feel free to let us know how we’re doing, or to continue the discussion, using the comments field below.

Free book: Jump Start HTML5 Basics

Grab a free copy of one our latest ebooks! Packed with hints and tips on HTML5's most powerful new features.

  • powerpotatoe

    As usually, you guys provide a helpful and insightful show. I am interested to read the new book. It will be added to my list.

  • http://www.ifroggy.com iFroggy

    Thanks powerpotatoe! Nice of you to say.

    Patrick

  • Greg

    My copy is due to ship from Amazon today, can’t wait to readit

  • RockBotom

    Thanks guys for another great podcast. I often think that you are getting together and doing this just for me. I have been itching to use a CMS to put a few sites together and had questions as to which one to choose. After hearing this discussion I’m full speed ahead on WordPress.

    I enjoyed listening to the authors descriptions of the books features and how it is focused towards developers.

    One section that caught my attention was where David mentioned how WP made several trips to the database during page loads and how caching can improve performance. I am familiar with caching in the PC where data is stored in RAM as opposed to the HD for system performance.

    In the case of WP caching, is the performance improvement achieved by storing data on the server as a text file and eliminating a often repeated DB query? IF so, is the cached query retrieved by every client making that same query or only the ones that have previously requested that data?

    Also, as a relatively ( no.. make that completely) new developer, is site performance an issue that I should be overly concerned with given that anything that I’m working on will certainly receive comparatively few visits.

    Thanks for the insight into your creative process.

  • http://www.ifroggy.com iFroggy

    Hey Matt,

    Thanks for the kind words and you’re continued support. :) I’ll make sure that David seems your comment.

    Thanks,

    Patrick

  • mirmillo

    @rockbottom, Thanks for your question. There are actually several levels of caching that we cover in the book. Each level addresses a specific bottleneck in your server and software stack. So how you use them, and tweak your own settings will depend on your set up.

    To answer your questions…if you are using the MySQL caching capabilities, MySQL will cache in memory the results of frequently used queries. This same cache object will be used anytime the same query is run for any request because it is cached at the database level.

    In the book we talk about caching at the web server and WordPress levels also.

    In general, if your site is low traffic you will not have to worry too much about caching. Like I said in the podcast, if you are watching your own site, and you notice the performance is starting to slow down, then its probably time to start looking into caching. But, when you are starting out, and definitely when you are developing, you don’t need to worry about it.

  • http://www.ifroggy.com iFroggy

    Thanks for jumping in, David.