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.

Found this helpful? You'll find us helpful!

WPShout is published by a full-service WordPress-loving constultancy, Press Up. Get in touch with us about your project or business idea, we're knowledgable and friendly.

About the author

Hello, I'm Alex! I started WPShout in 2009, just before my 16th birthday. Get in touch with me, I'd love to chat. You should also follow me on Twitter :)


  • 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

      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 :)

  • 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 =-.

  • 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

      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 :).

  • 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

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

  • 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

      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.

      • 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

    Really interesting tutorial. I’ve got it saved.

    Thanks also to @davin for the link ;)

    Cheers mate.

  • Hello,
    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

    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!