Create An Advanced Theme Options Panel in WordPress

This is the start of [wp]’s second ‘themed week’, which run every first week of the month. Last month we got started with WordPress theme development and this month we’re going to be creating an advanced theme options page.

Creating a WordPress theme options page is something that we’ve touched on before on [wp], and this week we’ll be expanding on what we covered before to create not just a theme options page, but an advanced theme options page; we’ll be creating something that lets users change layouts, hide and display different elements dotted around the theme, enter ad codes, footer text, tracking codes, Feedburner URLs, anything really:


This is a screen of the options page we’ll be creating over the next couple of days – as you can see, pretty impressive! The plan for the week is as follows:

And that’s pretty much it. Unlike last time there won’t be a free eBook to download at the end of the week, but this is a shorter series at only four days. Throughout the week you’ll be most welcome to ask any questions etc etc through the comments, and I’d ask if you’re going to save the series to any social media site then please save this post. The code for the tutorial series comes from my WordPress theme framework, [b] (that in turn is based on Thematic’s options page).

That’s all the admin stuff out the way, so [s], save this post to Delicious and grab a cup of tea. It’s going to be an interesting week.

27 Responses


  • Cosmin says:

    Looking forward to the series Alex 🙂

    Just one small adivce: since the options page is quite complex, you should reconsider offering a pdf for download at the end of the week – I’m sure many will appreciate it 😉

    Thanks for your efforts in creating this series.
    .-= Cosmin´s last blog ..PSD to WordPress Theme Photoshop Plugin =-.

    • Alex Denning says:

      If my lovely readers want it, I’ll make it happen. It does take a fair amount of time to put something like that together, so it wouldn’t be available for a couple of weeks, but as I said – if there is a demand for it, I’ll make it 🙂

  • TechSlam says:

    As cosmin has said, I would also really appreciate if you create a wonderful pdf regarding the creation of options page. Looking forward for it.
    .-= TechSlam´s last blog ..Aslam’s BlogBuzz >>>>> Aslam’sBuzz =-.

  • Ben says:

    Now this is what I’m talking about 🙂

    BTW I like the new background you have on the site. Fits a lot better 🙂
    .-= Ben´s last blog ..Elemental WordPress theme released =-.

    • Alex Denning says:

      Cheers Ben :). The posts are all scheduled and I’m quite pleased with the outcome.

      Something I’ve been meaning to ask – your theme Elemental – it’s a “framework” but it’s not GPL so how can one use it as a framework?

      And ta for the background comment. I really like it as well – got it off GraphicRiver for a couple of pounds :).

  • Cosmin says:

    Alex, I haven’t noticed when I first commented, and I really feel the need to ask this.

    Regarding the “choose a layout for your blog” option.

    In the screenshot, I see you’re using checkboxes and you’re telling the user to only check one – which for us developers totally makes sense and we would never tick two of them.

    But for people with no tech skills, wouldn’t it be much accessible to turn those checkboxes into radio buttons (so they really can’t choose 2 options).

    What do you say?

    .-= Cosmin´s last blog ..Magazine Style Theme – Arthemia Premium =-.

    • Alex Denning says:

      Yeah. Definitely a better option to do that or even have a dropdown. If I ever update this tutorial that’s one to include.

  • Devin says:

    Nice tutorial here. I noticed in another post that you recommended using Thematic as a framework. If anyone is doing that and wants to save some development time, try checking out the tutorial and source files for creating a theme options panel with Thematic.. You could also look at how to code a logo upload box.
    .-= Devin´s last blog ..Using TimThumb with WordPress MU =-.

    • Alex Denning says:

      Blatant plug; wasn’t sure whether to accept your comment or not – this tutorial is also built on Thematic, but interesting to see what you’ve done.

      • Devin says:

        Hey Alex. Just seeing this comment back to me, almost a year later. I guess there’s always a fine line between plugging your own site and genuinely engaging in the conversation. Thanks for approving it at any rate- didn’t mean to be sleazy about it.

  • Comment Name Violation says:

    Really interesting tutorial. I’ve got it saved.

    Thanks also to @davin for the link 😉

    Cheers mate.

  • zek says:

    I’m using studiopress lifestyle classic theme. It have option page for the themes. How i can have textarea fill with color code in option page that will changed background color, wrap border color & wrap background color.


  • Daniel says:

    Hi and thanks for this tutorial! Everything works well for me… but when I turn WP_DEBUG on I get the following error message in wp-admin:

    Notice: Undefined index: page in C:\Documents and Settings\Daniel\My Documents\Programming\xampp\htdocs\wordpress\wp-content\themes\transparency1.1\library\functions-theme-options.php on line 29

    Line 29 in my code is:

    if($_GET[‘page’] == basename(__FILE__)) {

    Can you help me?

  • I would try to follow this series!