WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I used to use the following code to make the list of all categories:

foreach($categories as $cat) {
    print '<label>'.$cat->name.'</label>';
    print '<input type="text" title="Add value" name="'.$themename.'_value_'.$cat->slug.'" id="'.$themename.'_color_'.$cat->slug.'" value="'.get_option($themename.'_value_'.$cat->slug).'" />';

It generates the list and unique input box for each category.

But I have rewritten the structure using arrays:


$categories = get_categories('hide_empty=0&orderby=name');  
$tz_wp_cats = array();  
foreach ($categories as $category_list ) {  
    $tz_wp_cats[$category_list->cat_ID] = $category_list->cat_name;  
array_unshift($tz_wp_cats, "Choose a category");

// ==========================//
//             Start the theme options!                  //
// ==========================//

    $themename = "Name";
    $shortname = "tz";

    $options = array (

    array(  "name" => __("selected", 'framework'),
    "id" => $shortname."_selectedtab",
    "std" => "",
    "type" => "hidden"),

    array(  "type" => "opentab"),

    array(  "type" => "open"),

    array(  "name" => __("Banner Settings", 'framework'),
    "id" => $shortname."_banner_settings",
    "type" => "title"),

    array(  "name" => __("Show Header Advert", 'framework'),
    "desc" => __("Check this to show a banner in the header of your site (468px x 60px)", 'framework'),
    "id" => $shortname."_banner_header",
    "std" => "false",
    "type" => "checkbox"),

    array(  "name" => __("Banner Image URL", 'framework'),
    "desc" => __("Enter the full image URL of your banner (468px x 60px) e.g. http://www.example.com/banner.gif", 'framework'),
    "id" => $shortname."_banner_img_url",
    "std" => get_bloginfo('template_directory')."/images/header_advert.jpg",
    "type" => "text"),

It is the same structure as suggested on http://blog.themeforest.net/wordpress/create-an-options-page-for-your-wordpress-theme/

What would be the solution to rewrite the original way? Any suggestions?

(I have just a checkbox, text, textarea and file types)

share|improve this question
The tutorial you linked to is quite outdated. You shouldn’t write code like that nowadays. Could you add a visual sketch of what you want to build? Oh, and welcome to WordPress Stack Exchange! – toscho Feb 21 '12 at 2:52

To get a list of selectable categories use wp_dropdown_categories().

    array (
        'orderby' => 'name',
        // ID of the already selected category:
        'selected' => 4,
        // If no category is selected:
        'show_option_none' => 'Choose one'

HTML output:

<select name='cat' id='cat' class='postform' >
    <option value='-1'>Choose one</option>
    <option class="level-0" value="4" selected="selected">Animals</option>
    <option class="level-0" value="6">Hyperbolica</option>
    <option class="level-0" value="5">Nonsense</option>
    <option class="level-0" value="1">Uncategorized</option>

Visual output:

enter image description here

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.