Thematic Options Panel


Updated: 3/19/12

The latest version of this Thematic Options theme has been completely rebuilt to use the Options Framework Plugin. It’s rather basic and has just a couple settings- but if there’s something else you’d like to see in it please file a ticket or send over a pull request on GitHub.

If you’re interested in building options for a theme other than Thematic, please check out the Options Framework Plugin or the Options Theme.

You can download the latest version of the Thematic Options on GitHub.

About Devin

I'm a WordPress developer based in Austin, Texas. I run a little theme shop called DevPress. Find me on twitter @devinsays.

134 Responses

  1. pixi

    This is really great. Exactly what I was looking for. I’m having trouble drawing the elements from the panel though. For example when I want to echo the logo in the header.php what code do I have to write? I tried this: <img src="” /> But no luck. Would appreciate if you could help. Thank you in advance.

  2. pixi

    Sorry to bother you again but I’m a newbie and now I got stuck on this:


    This supposed to draw featured category name from the panel but I think I’m missing something because it doesn’t.

  3. superflywebdesigns

    Thanks for this code. This is awesome. I seem to be missing something though. I can’t get the js scripts to run and I am certain that I have the correct paths. Am I supposed to do something else to make them work? They are loaded in the js folder with the same folder structure as you provided. Any suggestions?

  4. Devin,

    could I use this to have a “slideshow images” section, where the user could upload several images to use in a slideshow.
    so I would need to generate upload boxes dynamically with a “add” button or somethin similar

  5. superfly

    Thanks. It works beautifully now. Another question, how can I make the uploader go to a specific file and overwrite it? It is using the wp_upload_dir() function, but I don’t want the logo to go to an upload file subdirectory. Rather, I want the uploaded logo to overwrite the logo in the images folder. Any suggestions?

  6. Gene

    Hey man, I just wanted to say THANK YOU!!!!!!!!

    I really needed this, as I have been trying to add an options page to the thematic theme for a while now. This has truly sped up the process for me, as I know nothing about PHP. I’m more of a designer (html, css, photoshop).

    I was thinking of adding a slideshow to the thematic theme, but I want to do it in a way were customers/clients can upload images and text through the options panel. I think that once I have this figured out I will be done, and I can finally sell my theme. What are your recommendations?

  7. Gene

    I like that idea much better. I added a plugin to do this, and I placed it in my theme instead of the plugins folder. Some parts work, but the css and javascripts aren’t being called, and I think its because it shows WP_PLUGIN_URL which, from my understanding links to the plugins folder looking for the necessary files. What would I replace WP_PLUGIN_URL with in order for it to look in my theme. I googled and googled and I even looked at another post that you had that was similar to this topic, but I just haven’t found the solution yet.


  8. Alp

    I’m not sure if this is the right place to ask but I’m searching for this everywhere and can’t decide which way is right. For example how can I write a condition like “if the users enter custom css in the options panel display it in the theme but if they don’t, don’t do anything”?

  9. Gene

    I know they are both great themes, but if you had to absolutely choose one, would you prefer thematic or canvas? Or something else?

  10. Robin

    Is it possible to make the file uploader launch the default wordpress media uploader? Like the canvas theme does?

    Great system btw!


  11. Robin

    Is it really just a case of putting…

    I’m not getting any output. The other options to change the CSS and add custom favicons are working though. But include that in my template has no output.


  12. Gloria

    Hi Devin, I did download the thematic-option zip.
    I am not sure where these files should go into my thematic child theme folder.

    Would you be so kind to outline the steps to get the option page working.
    If the instructions where here I missed them.
    Thank you!

  13. Gloria

    Thanks! I was thinking I had to merge it with a child theme I already created. It is an unique child theme already. Now that makes perfect sense.

  14. Really cool. I’m just wondering how to separate this theme option as an alone package that we can integrate with other themes. I read your reply to paul, but the work is really complicated for a newbie like me. If you can release non-thematic version, that would be great.

  15. Gloria

    Hi Devin, I think I found a code error in the functions.php file.

    /* Options Framework Functions
    Second comment line is missing the closing.
    The file works if you don’t add anymore code to functions.
    I found that same omission in the options-framework.

    When I added chunks of code to the function file I would get errors.
    I added the closing and so far all is well.

    Let me know if I am wrong as I am just learning the ins and out of Thematic.
    Gloria Antonelli

  16. Max

    Excellent! Better impossible! I just have two question … ¹Can I change the panel to use for my needs? ²Can I sell / resell a theme using pieces or all of code in the panel?

  17. Jesper Andersson

    This is really awesome, i was 70% done with my own options panel but i am thinking of scraping my option panel for a couple of month until i get more time to work on my own but i have 2 questions about using this option panel:

    1) Sure it is licensed under GPL, does that mean that i am allowed to sell themes with this options panel, for instance on themeforest?

    2) In theme-options.php you have a couple of functions under “Moar options”, for instance “body_repeat” but have i missed something or is the “body_repeat” not acceptabel through the options array? IE not used?

    Thanks and happy new year ;)

  18. Jesper Andersson

    Sorry, forgot:

    3) When i try to echo an typhography type from the array like this:echo get_option(‘of_typography’); the output is not the typography css style, instead it outputs the word: “array” :S

  19. For some reason, for me, the `update_option()` is not working for me. Both on MAMP as online database the value sent to the database is not being updated. The initial default value IS stored in the database however.

    Other than that I love ur work here. Exactly what I was looking for.

  20. Annie

    First I’d like to thank you for sharing this, it’s really awesome!

    I’m also having problems using the Typography type, the changes are not appearing on the theme once it’s updated. Is there a different coding that should be used with this opition? Could anyone tell me which code I should use with Typography?

  21. Great! I took a commit 1 earlier than the latest (2010/12/20) and now it seems to be working again. Thanks for that tip! I hope the latest version will be working soon again too, though, so I can just update the whole options thru svn.

    I love it even more now :D

  22. Sean

    Hi There,

    Is it possible to create a textarea in the options panel that is able to execute shortcodes? I greatly appreciate any info on this.


  23. Sean

    Thanks Devin. Which footer option are you referring to? I only see regular textarea’s in the “Footer Options” from the demo.

    I was able to figure out a workaround that somewhat works, by displaying the textarea value within the do_shortcode() function. The issue I’ve run into is that I am trying to use a shortcode which is part of a 3rd party plugin, and when I try to execute that shortcode, nothing happens. If you have any advice for me I’d greatly appreciate it.

    Here’s the code that works for the shortcodes built into the theme:

  24. Cristian


    First of all many-many-many thanks for sharing this with us!

    Is anybody else experiencing file (image) upload problems while using Chrome with this theme options?


  25. tripdragon

    Devin there is no replacement for the tinymce or wysiwyg or ckedit type of richtext editors as a field. The only other replacement is the future PodsCMS ver 2.0, the current V for incorporating in a page is irksome.

    Having multiple TinyMCE areas is like a non thought when it comes to pushing WordPress into the true CMS grounds. It befuddles me that it was not built for this use from the onset with just a little bit of foresight.

    The second a client wants a break or some bold text in a paragraph in the textarea of one of the option boxes is the second this entire Options Page feature breaks down into a non-feature for the client.

  26. tripdragon

    Devin: Follow up. I sent the same message now to the email list. Maybe theres some light there? I’m sure someone will figure out this issue someday and document it, surprised it’s even an issue.

  27. tripdragon

    Devin: Aside from the issues of teaching a client html bits. If a working solution were to crop up for this feature set the 4 extra hours would become a non-issue for code reuse.

    I would rather have the power to design a custom page to mirror the layout of a custom homepage with many option content area boxes. Instead of having stacks of textarea boxes. Or sending the editing into a whole different page for editing say a custom post type that only has a single instance much like a page. It obscures the access to the content if its not on this custom built admin page.

    I’m going too deep into controlling the admin area I will admit. Which is an area for Rails or other CMS tools. So I get that I am trying to monkey patch WP. But it seems to be the trend in any event.

  28. tripdragon

    Devin: just checked out the Justin link. I feel this type of thing obfuscates the content. It’s a great developer idea that makes sense to Devs and the organization methodology. But when it comes to actually KISS for a content producer, the content is not in the let’s call it Command Control Screen.

    A real CCS will have the front page in a sort of mirror of the front page or even be the front page with overlays of edit options. Still all databased and loop connectable.

    Shoot. I’ll have to make a mockup at this point. As I don’t want this to be read as “ugly” or complicated. I am trying to make this an inviting tool for the client and even me to want to keep the areas uptodate and not a chore to edit in.

    I’ll checkout Headway before I post my mockup if you’re hankering to check it out.

    Good conversation.

  29. Pete

    That is great to hear and I can confirm as well it is Safari/Chrome and not FireFox. Thanks for taking at look I really appreciate it.

  30. Hi there, thanks for the great plugin! I ran into issues with the checkbox field behaving very inconsistently, sometimes saving values and sometimes not at all. I wanted to use it as a toggle to check whether or not I should display another field (on the front end). I tested in Chrome and Firefox and checked the database while testing and played with resetting all values, etc. and eventually just gave up and used a radio toggle for my application. Have other experienced problems with this too or is just me?

  31. FYI, for anyone having trouble getting html to work in the textarea, just use this to spit out your field:

    global $data;
    if ( $data “” ) {
    if ($data[‘my_textarea’]) { echo stripslashes($data[‘my_textarea’]); }
    } ?>

  32. @tripdragon – check this out: i have used it to add tinyMCE to textareas in metaboxes

    @Jonah – i believe i fixed the checkbox issue in my fork today. if you find the of_ajax_callback() function in admin-interface.php and change the whole elseif section

    elseif ($save_type == 'save') {


    elseif ($save_type == 'save') {

    parse_str($_POST['data'], $data);

    update_option(OPTIONS, $data);


    that has solved checkbox wonkiness for me atleast.

    finally, @Pete – does the upload issue happen all the time in Chrome? I can’t test Safari

  33. Pete

    @kathy the issue is in both Safari and Chrome on Mac, possible not a Windows Chrome issue (at least from what I remember it worked). In both Chrome and Safari the issue is the same, when you click to browse you get the finder view, select a file, press ok, and nothing happens. What I have noticed is often on the second try without reloading the page it would work. However even that has been inconsistent, some times 3,4,5 tries and nothing happens after selecting a file.

  34. @Pete – tricky. i can’t think of what that could be except what Devin has mentioned. I don’t have a Mac so this would be impossible for me to debug- so I hope Devin can figure it out.

  35. @Pete – tricky. i can’t think of what that could be except what Devin has mentioned. I don’t have a Mac so this would be impossible for me to debug- so I hope Devin can figure it out.

    PS- there IS a new version of ajaxuploader.js out, but I lost a day (or more) of my life trying to make it work in this framework. i was led to believe the big enhancement was enabling multiple uploads and maybe drap-n-drop uploading. It also uses XHR, which I am not familiar with yet… which explains why I couldn’t implement it.

Leave a Reply