On: 2005/09/03
Shorter URL for this page: http://ozh.in/ko

Suggestions

If you have ever installed and modified a theme to suit your likes, think of everything that could have been possible from within a simple admin menu, rather than having to edit template files.

Here are a few examples and ideas of additionnal features, which are easy to implement if you have some PHP knowledge.
I will detail the array part you have to edit in functions.php, as well as the PHP function you would add at the end of this file.

Set Layout Width
Giving the end user the possibility of setting his own layout width is piece of cake.

  • Admin menu :
    1. array(
    2.     'width' => 'Overall Width ## Set layout width'
    3. );
  • Function :
    1. function mytheme_width() {
    2.     global $mytheme;
    3.     if ( $mytheme->option['width'] ) {
    4.         print '#wrap { width:';
    5.         print $mytheme->option['width'];
    6.         print " ;}\n";
    7.     }
    8. }
  • Usage :
    Assuming you have a div named 'wrap' wrapping your layout, put the following in the <head> section of header.php :

    1. <style type="text/css">
    2. <?php mytheme_width() ?>
    3. </style>

Similarly and as easily, you could create options and functions to set anything regarding CSS and style : font color, sidebar floating left or right, location of a header background image …

Optional Asides
Having to edit a theme's index.php to implement "Asides" is something that belongs to the past. Instead, you will just have the end user input the name of his Asides category in your admin menu :

  • Admin menu :
    1. array(
    2.     'asides' => 'Asides ## Name of your "Asides" category (leave empty to use none)'
    3. );
  • Function :
    1. function mytheme_is_asides() {
    2.     global $mytheme;
    3.     $categories = array ();
    4.     foreach((get_the_category()) as $cat) {
    5.         $categories[] = $cat->cat_name;
    6.     }
    7.     if (in_array($mytheme->option['asides'],$categories)) {
    8.         return true;
    9.     } else {
    10.         return false;
    11.     }
    12. }
  • Usage :
    You would now modify "The Loop" in your theme's index.php like this :

    1. <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    2.  
    3. <?php if ( mytheme_is_asides() and !is_single() ) { ?>
    4.  
    5.     <!-- This post is an aside -->
    6.     <div class="asides">
    7.     <?php echo wptexturize($post->post_content); ?>
    8.     <a href="<?php the_permalink() ?>" rel="bookmark">&laquo;</a>
    9.     </div>
    10.  
    11. <?php } else { ?>
    12.  
    13.     <!-- This post is not an asides: do things normally -->
    14.     <!-- Here goes your code to display posts -->
    15.  
    16. <?php } ?> <!-- end of aside or not -->
    17.  
    18. <?php endwhile; else: ?>
    19. <p>Sorry, no post found.</p>
    20. <?php endif; ?>

Setting default values
You can of course set default values so that when a user installs your theme, some values and options are already filled. To do so, add something like this at the end of your functions.php

  1. // default options :
  2. /* default values upon theme install */
  3. if (!$mytheme->is_installed()) {
  4.    $set_defaults['some_option] = 'true';
  5.    $set_defaults['other_option'] = 'hello option';
  6.    $result = $mytheme->store_options($set_defaults);
  7. }

Real Live Example

Why not install and try a real theme that uses WordPress Theme Toolkit ? Go get Minimalissimplistic !

Page: #1 #2 #3 #4 #5

Shorter URL

Want to share or tweet this page? Please use this short URL: http://ozh.in/ko

Metastuff

This page "WordPress Theme Toolkit" was posted on 03/09/2005 at 2:36 pm
Watch this discussion : Comments RSS 2.0.

196 Blablas

  1. Abhishek says:

    Thanks for the solution !!

  2. […] WordPress Theme Toolkit is a tool that allows theme authors add an admin menu as easily as editing 3 lines, and it powers […]

  3. Andrea says:

    Thanks man. Very useful to those of us who need to knock out lots of different blogs…

  4. […] disponibile anche la versione senza pannello di amministrazione. Nerino utilizza il noto toolkit open source per temi wordpress, tuttavia qualcuno ha segnalato problemi con l'editor di scrittura avanzato, per questo metto […]

  5. […] disponibile anche la versione senza pannello di amministrazione. Nerino utilizza il noto toolkit open source per temi wordpress, tuttavia qualcuno ha segnalato problemi con l’editor di scrittura avanzato, per questo metto a […]

  6. […] disponibile anche la versione senza pannello di amministrazione. Sportemplate utilizza il noto toolkit open source per temi wordpress, tuttavia qualcuno ha segnalato problemi con l’editor di scrittura avanzato, per questo metto a […]

  7. mike says:

    i messed up my blog big time and need your help…not sure what i did but its not working http://www.blackfitnessblog.com…i messed with the themetoolkit.php file help please

  8. Ozh says:

    mike » This is for theme author who know what to do with it (ie add an admin menu). Sorry I cant help with this.

  9. […] Theme toolkit :  Por algunos Scripts que me fusilé de ahi pero como son libres no es tanto fusil. […]

  10. […] once been known to cause major problems with WordPress MU, Ozh's WordPress Theme Development Toolkit, which allows designers to easily add theme options into the back end seems to be working […]

  11. […] and or a slightly better grasp of what's going-on within the back-end of themes, perhaps Ozh's Theme Toolkit is not enough. Fortunately, In The Woods added a detailed explanation of how to build […]

  12. Elbujero.com says:

    […] Theme ToolKit […]

  13. ReCharge says:

    […] Theme ToolKit […]

  14. Mint Tree says:

    Hi Ozh,

    Is there an example to get the specific values for the Multiple Checkbox?

    Thanks!

  15. Mint Tree says:

    Never mind, I got it through the DEBUG =P… was stuck on what the values got stored ;).

    Anyway, tips to all the future programmer: uncomment the debug (FYI: it's 1:05 am here, so I think that's why I hit a brick wall =).

  16. futuRich says:

    so what exactly does the end product look like? examples = thanx :o

  17. Ozh says:

    futuRich » I think you didn't understand what this is for. The end product is what the theme designer decides to make of it. This is just an internal tool.

  18. Jesh says:

    Hi Ozh. You'll have to excuse the question because I didn't look through all 171 comments on this post (who has the time?) to see if it's already been answered, but why haven't you supplied the download link as a zip or tar? It's pretty "wonky" for a user to grab your scripts as is. I can't really complain though. Thanks for the awesome Admin Menu.

  19. Anthony says:

    Pretty comprehensive guide..even though I do play a lot with html and scripts, having menu driven edits are far better than editing wordpress pages, digging through the code.

  20. […] Logo ('DizCow') from the awesome and free LogoInstant. – Theme Options made possible by Theme Toolkit, with some minor […]

  21. […] the wonderful planetOzh's Theme Toolkit, the pigtopus speech text at the top can be changed, as well as the top navigation bar links, the […]

  22. Hey there Ozh,

    I've been following this page for a bit. Good stuff. Any plans to bring the tool kit up to 2.7.1 compatibility?

  23. Ozh says:

    James: yeah, this has been on my todo list for ages

  24. Bedo says:

    Hi Ozh,
    I´ve dowloaded a theme which includes also your Theme Toolkit. http://wpjunction.com/themes/corporate/
    It´t cool, but I am struggling to find the bug which is causing that my custom Home page is not showing up.
    eg. I would like to have my custom home page and the blog section elsewhere. Some how when I change the wp option for the home page, it´s always calling the index file. However I could locate it to your toolkit. Can you help me?
    Wp 2.7.1, thank you!

  25. Steve says:

    Ozh
    Thanks so much for this tool! I have used is successfully for a friends website: twistedamerica.com. Please forgive me if you have answered this question before but is there anyway I can edit the code so that it doesn't mess up single quotes? Its fine when you first store the options, but when you come back the text is always broken, like it added a break after any single quotes. I'm kind of a newbie at code so please excuse me if I am asking a silly question.
    Thanks again
    Steve

  26. Anil says:

    It seems like this doesn't work with wordpress 2.8. It stopped functioning perfectly when i upgraded. I think problem is with get_Category

  27. Elpie says:

    @Anil, the Toolkit does not use get_category but a customised one might ;)

    You may be running into a WordPress problem here. 2.8 has a known issue with category functions and this has been fixed in 2.8.1, which is currently in beta testing.
    See here for more info: http://wordpress.org/support/topic/280256?replies=26#post-1104991

    I am running 2.8.1 Beta on some production sites now because of some of the issues in 2.8. You might like to consider doing the same (or waiting a bit for the final release). Try it on a test site first and see if the problem with your Toolkit goes away.

  28. Carlos says:

    Hey Ozh,
    I known your are a busy person, but if you can bring the tool kit up to 2.8.1 compatibility will be more than great, you will make more people happy ;)

    Theres a option to pay for this compatibility? Please let me know, write to my email.

    Regards.

  29. kymac says:

    This is an awesome tool for me! I have fixed a problem with checkboxes and now have it working under WP 2.8.6.

    Here is the modified read_options()

    1. /* Read theme options as defined by user and populate the array $this-&gt;option */
    2.         function read_options() {
    3.             $options = get_option('theme-'.$this-&gt;infos['theme_shortname'].'-options');
    4.             $options['_________junk-entry________'] = 'ozh is my god';
    5.             $this-&gt;option = array();
    6.             foreach ($options as $key=&gt;$val) {
    7.                 // is_array check needed for Multiple Choice
    8.                 if (is_array($val)) {
    9.                     foreach ($val as $key2=&gt;$val2) {
    10.                         $this-&gt;option["$key2"] = stripslashes($val2);
    11.                     }
    12.                 } else {
    13.                     $this-&gt;option["$key"] = stripslashes($val);
    14.                 }
    15.             }
    16.             array_pop($this-&gt;option);
    17.             return $this-&gt;option;
    18.             /* Curious about this "junk-entry" ? :) A few explanations then.
    19.              * The problem is that get_option always return an array, even if
    20.              * no settings has been previously saved in table wp_options. This
    21.              * junk entry is here to populate the array with at least one value,
    22.              * removed afterwards, so that the foreach loop doesn't go moo. */
    23.         }
  30. kymac says:

    I just realized that I am using a modified version of themetoolkit.php that was included with the Simplicity theme by Lai Zit Seng. Lai fixed a bug with an extraneous dollar sign, and corrected some HTML ending tags in version 1.12.

    If you will email me using the About->Contact Us form bluegrassmiataclub.com, I will send you this version.

  31. kymac says:

    Sorry, I forgot to include to select 'Mac McDonald' as the contact in the form mentioned in my previous post.

  32. Sherif says:

    im a new web designer not good with php and i look for tutorials or some help of how to use wp theme toolkit.

    i understand the basics and already have done some stuff with my new theme with it but i still need to do some more things but i cant

    so any help plz ?

    Thanks

  33. John says:

    Is the toolkit compatible with wp3. I see a lot of old stuff, is it up to date?

  34. Ozh says:

    John » Probably. Dunno. Test and report :)

  35. naomae says:

    thank you for the idea for making themes for blogs more beautiful. hope you can post more about this stuff. thanks!

  36. Tjobbe says:

    This looks like exactly what I need, but I have two questions!

    I have managed to edit the functions.php file and created custom fields which succesffully stores my custom data to the db.

    How do I:

    a) echo these custom fields, one-by-one, into my template?

    b) Can I use some tags to put these custom fields into my posts and pages?

  37. Jatin Soni says:

    I am creating new and very first theme for wordpress and even not familiar with php, thanks for this nice tool.

    Now I am very much confused how to create image uploade field into theme panel…

    I have used Image URL for header logo code as below

    Admin Panel code:
    $mytheme->option['site_logo'] = "myurl here"

    Theme I have added below code:

    <a href="/"><img src="option['welcome']; ?>" alt="logo" width="260″ height="125″ border="0″ title=""/>

    But still logo image doesn't appearing at all. It works with direct url.
    Please help me to solve this issue also with image upload option if possible.

    My theme will have lots of images so I required proper image URL and Upload option on admin panel.

    Thanks in advance…

  38. Jatin Soni says:

    I check the image coming other places but not at header logo.. :( what is the reason please help me to solve this.

  39. sugeng tigefa says:

    this themes comptability latest wordpress version? :)

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
Gravatars: Curious about the little images next to each commenter's name ? Go to Gravatar and sign for a free account
Spam: Various spam plugins may be activated. I'll put pins in a Voodoo doll if you spam me.