Look Before You Leap Into Thesis Theme

I was recently hired to make what I thought was going to be a simple change for a client. Modify the navigation on a WordPress blog to match their static site. The menu items were already listed but were in the wrong order.
So, knowing that the blog was running on WordPress I said sure!
My first thought was OK, I will just get in there rearrange the order of the pages by id, and be done. Easy enough right?
Look Before You Leap!
What I didn’t know from talking to the client, was that their blog was running a premium theme by the name of Thesis. I had never worked with Thesis before but I have read about it and heard about its SEO capabilities, easy to customize by anyone etc etc.
Having never worked with Thesis before, I had no idea that adding a page order plug-in wouldn’t work. I quoted a very small amount to make this 10 minute change and I am now at one hour into the job wondering why this simple fix didn’t work.
What I discovered during my research is that Thesis basically doesn’t do things like a normal template, due to the complexity of it’s admin pages. I did find some information on customizing the navigation menu for WordPress pages but it wasn’t what I needed. This site has no pages set up through WordPress. Just the blog itself.
Adding a Custom Menu
So 3.5 hours of research later, I decided to just start hacking away. I downloaded my clients template to my local server, and through some trial and error came up with the information below.
First, Thesis uses it’s own custom options panel. Once Thesis is installed and activated, you will see a new menu item in the admin panel called Thesis Options. So, instead of going to Appearance and using the file editor in WordPress, you want to go to Thesis Options>Custom File Editor to edit the custom_functions.php. You can also use your favorite text editor and then upload the file if you prefer.
First, I created the new function which is the custom nav menu:
function custom_nav_menu() { ?>
What we did was define our new function, custom_nav_menu, and the curly bracket opens the function. We close out the PHP to allow for the HTML in the next section. Since this is the first function in our custom_functions.php file, we don’t need to open PHP. It is already the first line in the custom_functions.php file. We will only close it and reopen it as needed.
Next we insert our HTML for the menu (You can add anything here, such as a div, some more php or even a new page).
<ul> <li><a href="http://reallycoollink.here">One</a></li> <li><a href="http://reallycoollink.here">Two</a></li> <li><a href="http://reallycoollink.here">Three</a></li> <li><a href="http://reallycoollink.here">Four</a></li> <li><a href="http://reallycoollink.here">Five</a></li> <li><a href="http://reallycoollink.here">Six</a></li> </ul> }
What we did was add our HTML for the custom navigation, re-opened PHP and closed out the function with the curly bracket.
And that is it for the custom nav function! You can do more like drop downs etc but I am just giving the basics.
Removing The Old Menu
Next, we need to get rid of the old menu. We do this by editing the custom_functions.php file like so:
remove_action('thesis_hook_before_header', 'thesis_nav_menu');
Thesis uses it’s own hooks. They are basically similar to modules and where they are positioned. By default, the nav menu is above the header, so the remove_action is telling thesis to take out the hook above the header which removes the thesis nav menu function.
Next we want to insert our custom nav menu in its place:
add_action('thesis_hook_before_header', 'custom_nav_menu');
Now your completed code should look like this:
//Add custom Menu function custom_nav_menu() { ?> <ul> <li><a href="http://reallycoollink.here">One</a></li> <li><a href="http://reallycoollink.here">Two</a></li> <li><a href="http://reallycoollink.here">Three</a></li> <li><a href="http://reallycoollink.here">Four</a></li> <li><a href="http://reallycoollink.here">Five</a></li> <li><a href="http://reallycoollink.here">Six</a></li> </ul>
Styling The Custom Navigation
Now, if we want to add some styling you can edit the custom.css file. Just make sure to add .custom to your classes like this:
.custom .menu {background:none; margin-top:-42px; float:right; width:55em;height:20px;z-index:1000;}
And to your id’s like this:
#menu .custom {more:really; cool:css;}
(.custom tells Thesis to use this style)
Of course you will want to add your own CSS to style it.
Now you are rocking thesis with a brand new nav menu!
Closing Thoughts
After spending a day figuring out and working with Thesis, I don’t see what all the hype is about. Any WP template that is properly coded will have the same SEO capabilities as Thesis.
You can add on the All in One SEO Pack and Google XML Sitemaps plug-in and be well on your way. There are also numerous blog postings on how to further increase the SEO capabilities of WordPress.
I hope this helps someone out there and for all of you freelancers, look before you leap! Make sure to ask those probing questions and check out what they have going on behind the scenes before you give a price. At a minimum view the source and check out the CSS file for the template name
.
Your Thoughts
Have any of you worked with Thesis? What are your thoughts on it?

I understand your stress! Recently I set up this very same theme for my brother. Fortunately, I wasn’t under any real pressure to get anything customised, and since it was my brother I was doing it for… it was a free job.
That Thesis theme is like a self-contained CMS inside WordPress – really good, but really complex to modify.
When you buy it, you get free version updates upon release. So the way they have is structured is so that the core of it can be updated without touching your custom modifications.
Yeah It wasn’t fun but I learned a lot! Once you learn it isn’t so bad.
Hi Bill,
Now tell me how to order category pages and I’ll give you my first-born.
I know exactly where to go in the core, but that’s scary, since it would have to be done on every version update. Not sure how to do it in a custom function.
Or are you saying I should create a hard-coded custom menu that links directly to each category page?
Thanks for this article, and I’m surely not going to use Thesis on my next project. It is too limiting. I liked my old process of using the Sandbox theme and going from there.
Well the problem I had, was the blog needed a menu to match the rest of the site. I could have done it with the links section in WP but it didn’t work out too well with Thesis. You can basically rewrite anything in a function in Thesis. Give me a few and I will get some information to you that might help.
Ok, Hopefully this will help you, You can add the Category order plugin and it will work with Thesis. http://wordpress.org/extend/plugins/order-categories/ If you need to reorder your thesis nav, you can go to Thesis options, Navigation, Choose what you want in there and drag to order them how you want.
Thanks a lot for that. Works perfectly!
I tried My Category Order which didn’t work with Thesis. I’ve used all the other related plugin: My Link Order and such. They all work fine.
No problem! That’s funny, I tried My Link Order and it didn’t work for me!
I recently setup a site using a paid, pre-made WP theme for someone. They were on a very limited budget and needed the site very quickly. I figured using such an all-in-one theme that encompassed so much would kill 20 birds with one stone. Well, one full day of work turned into almost three. Working the theme’s custom backend was all new, and getting an independent blog section working adjacent to video/photo galleries was fun. I ended up installing some plug-ins and editing some of the core PHP (not to mention gobs and gobs of CSS). But, in the end it worked out. I just grossly underestimated how long it would take me to breeze through the theme.
My site is currently under “maintenance mode” for Thesis & I are having a love/hate relationship at the moment. I recommend the plug-in thesis open hooks, it helps a great deal when working with thesis. I was able to insert my html for navigation in the “hook after header” and was done.
Working with Thesis Theme was akin to pulling teeth. The reason I love WordPress so much, is that it’s extremely fast, easy to work with and easy to customize. Using Thesis took away all 3 of those.
All I have to say is : Ouch !…I don’t quite know which is more painful : Pulling Teeth- or customizing Thesis !?! ..hmmm..well, I believe Thesis is definitely more painful ( since they give you a local/general anesthetic for extractions ! ) . I had been asked to fully customize a Thesis theme a few months ago – and I would have done it ( if I werent swamped with performing other theme customizations & the like at the time for several other people ); However, out of curiosity I looked into another friends theme which was also a Thesis theme , and need I say at this point that after delving into the theme I high-tailed it out of there , changed my identity and am now living under the Federal Eye Witness Protection Program ? ummmm..ya ! I dont even want to know anyone who uses a Thesis theme – and if I am ever asked to customize a Thesis theme again , I will definitely opt for a molar extraction WITHOUT the anesthetic – Thank You , but : No Thank YOU. I extend my sympathies to you Bill ( and Congrats on coming out of it alive !
) .
M.
WOW! I 100% understand how much you suffered working with Thesis Mia!
Thank you for referring me to this post, it’s awesome!
*almost forgot : This was very generous of you to explain in simple terms of how can go about customizing the nav for Thesis – now I know where to refer potential Thesis users who want to implement such a feature . Great tut !
No problem! It frustrated me so bad that I was compelled to write about it!
I have huge respect for Chris Pearson (that guy is a genius imo) and there is obviously a market out there for a theme like Thesis. Though on the other hand I find that all the sites running Thesis look very similar.
After spending about 4-5 hours customizing a Thesis theme for a client a couple weeks ago I thought ‘hey I should’ve just built the whole thing from scratch‘, and that’s what I ended up doing actually. From now on, no more Thesis customization gigs for me, not worth it
Hey Jon! I have to agree with you about Chris Pearson.
Yeah by the time I finished my little project I could have redesigned and coded the whole thing from scratch. I don’t think I will be doing anymore either. One was enough!
I’m currently wrapping up a custom themed site using Thesis. Once the client gives me all the content and a couple other things I’ll be able to wrap it up and make it public.
Basically he bought a template from Template Monster and I applied it to Thesis. Not ‘that’ diffucult, but I would have preferred Sandbox.
Tell me does my site look like every thesis them out there? I don’t think so…
One of my designers keeps pushing to use Thesis for client sites, because “you can get 80% of the way there really quickly”. However, I keep trying to explain that last 20% (where I get an e-mail with a whole bunch of changes that weren’t easy to implement with the Thesis options settings) actually takes a ton of work on my part, and I’m grumbling about it the whole time. Unless the site is going to use Thesis pretty much out of the box, and accept the limitations, it’ll be just as much work to bend Thesis to your will as to hire a talented theme creator to build it from scratch — and in the latter scenario, the client will hopefully get something they’re much happier with long-term, and the theme creator (me) will be a lot happier working on it.
Agreed! Had a very similar experience. Although my client wanted a lot more changed then a nav record. With decent comparisons of the two you can push for creating a custom wp theme. Definitely agree with your closing thoughts!
This post just saved me $87 – thank you!
haha! You’re very welcome!
Hey Bill, I have been using Thesis on my blog for a few months, and I did so many tweaks and redesigned more than once till I reached what I think is a stable point!
The main problem of Thesis is it really takes some time to get used to it, so accepting a Thesis customization job before knowing what you are going to deal with can turn thing very bad!
I know lots of bloggers who are using Thesis on their blogs, but hey have no idea how to customize it for same reasons you mentioned on your nice post, and also most of the feedback says that they hate how it looks, and they actually don’t understand that Thesis is a platform.. so, for me I don’t think it’s a Theme by the meaning, which leads to (A lot of work needed before you can use Thesis)!!!
I am not a creative designer, but I have my own tries, and after hearing and knowing all this about Thesis, I had a nice idea, I am working on a new project at the mean time, thinking how to make Thesis Awesome for those who can not do it!
Thanks for the nice post, really.. it’s so important to look into the deep of a hole before humping into it!
Hi,this is Jeannine Eckenrode,just identified your Blog on google and i must say this blog is great.may I quote some of the information found in your post to my local mates?i’m not sure and what you think?anyway,Many thanks!
Hi Bill,
wow that sounds like the hardest way to sort out a menu I have ever heard.
I used to use Thesis as my starting point and know it quite well. These days I have evolved to other paid theme options, mostly GPL.
To Chris Pearson’s credit the forum has an answer to just about everything you could imagine.
Whenever I did a Thesis install the first thing I taught people was how to edit the menu order etc via the ‘thesis options’ interface then go to the top right hand side and the pages are listed and you literally drag and drop the menu order and tick a box if you want it displayed as by default all pages except home are turned off from memory. See example screenshot here http://bit.ly/9UOs89
Installing the Thesis Openhook plugin http://wordpress.org/extend/plugins/thesis-openhook/ is essential to mod the headers, footers, above and below posts etc.
Hope that helps.
I agree with Tony. Simply choose “Thesis Nav Menu” under “Select Menu Type”, and you can easily drag and drop the order of your menu, including which links to include in the menu.
And, as Tony mentioned, the openhook plugin is a nifty customization tool for the Thesis theme.
very useful for me.. i love this blog very much..
Two things needs to be said about Thesis:
1. While it’s a *good* WordPress theme framework Its popularity is mainly due to its successful affiliate program that makes a lot of people blog about it, praising it like the best thing ever invented.
2. Thesis is intended to be “an HTML framework frontend for WordPress” which is really quite a neat idea. Thesis is extremely light on the MySQL database, totally bypassing a lot of the stuff WordPress othwerwise does by default.
Thanks for this detailed post. I think I’ll probably leave the Thesis theme for now. It seems you’re really tied to it after you install it and any changes you might want to make don’t sound that simple. I’ll stick with the free wordpress themes for now and write some simple code if I need to change anything.
Hi Bill
Thanks for this. It’s given me more of an idea what to expect with Thesis. I bought it yesterday and have just stared playing around with it. I was hoping to avoid much coding as I don’t know PHP and my CSS is a bit rusty. The info I have found so far seems a bit disjointed but maybe thats because I don’t know where to look. I normally just get a book but haven’t seen one available yet.
great post, i surely adore this amazing site, keep it.