我在管理区域中使用以下代码theme options    
$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 = "Hype";
    $shortname = "tz";
    $options = array (
    array(  "name" => __("selected", \'framework\'),
    "id" => $shortname."_selectedtab",
    "std" => "",
    "type" => "hidden"),
    array(  "type" => "opentab"),
    array(  "type" => "open"),
    array(  "name" => __(\'Logo and Favicon Settings\', \'framework\'),
    "id" => $shortname."_logo_settings",
    "type" => "title"),
    array(  "name" => __("Upload Logo", \'framework\'),
    "desc" => __("Enter the full URL of an image you would like to use as a logo e.g http://www.example.com/logo.png", \'framework\'),
    "id" => $shortname."_logo_url",
    "std" => "",
    "type" => "file"),
    array(  "name" => __("Enable plain text logo",\'framework\'),
    "desc" => __("Check this box to use a plain text logo rather than an image. Info will be taken from your WordPress settings.", \'framework\'),
    "id" => $shortname."_plain_logo",
    "std" => "false",
    "type" => "checkbox"),
    array(  "name" => __("Favicon URL", \'framework\'),
    "desc" => __("Enter the full URL of your favicon e.g. http://www.example.com/favicon.ico", \'framework\'),
    "id" => $shortname."_favicon_url",
    "std" => get_bloginfo(\'template_directory\')."/favicon.ico",
    "type" => "file"),
    array(  "type" => "close"),
    array(  "type" => "closetab")
    );
    /*Add The Theme Options Page*/
    function mytheme_add_admin() {
    global $themename, $shortname, $options;
    if ( $_GET[\'page\'] == basename(__FILE__) ) {
        if ( \'save\' == $_REQUEST[\'action\'] ) {
                $url = $_REQUEST[\'tz_selectedtab\'];
                if ($url == \'\'){
                    $url = \'themes.php?page=theme-options.php&saved=true&tab=1\';
                } else {
                    $t = substr($url, -1);
                    $url = \'themes.php?page=theme-options.php&saved=true&tab=\'.$t;
                }
                foreach ($options as $value) {
                    if ( ($value[\'id\'] != \'tz_logo_url\') && ($value[\'id\'] != \'tz_favicon_url\') ){
                        update_option( $value[\'id\'], $_REQUEST[ $value[\'id\'] ] ); 
                    }   
                }
                foreach ($options as $value) {
                    if ( ($value[\'id\'] != \'tz_logo_url\') && ($value[\'id\'] != \'tz_favicon_url\') ){
                        if( isset( $_REQUEST[ $value[\'id\'] ] ) ) { update_option( $value[\'id\'], $_REQUEST[ $value[\'id\'] ]  ); } else { delete_option( $value[\'id\'] ); } 
                    }
                }
            // If files has been uploaded, move them to the /uploads dir and update the option value
            if (  (isset($_FILES[\'tz_logo_url\'])) && ($_FILES[\'tz_logo_url\'][\'error\'] == UPLOAD_ERR_OK)  ) {
                $overrides = array(\'test_form\' => false); 
                $file = wp_handle_upload($_FILES[\'tz_logo_url\'], $overrides);
                $urlimage = $file[\'url\'];
                update_option(\'tz_logo_url\', $urlimage);
            }
            if (  (isset($_FILES[\'tz_favicon_url\'])) && ($_FILES[\'tz_favicon_url\'][\'error\'] == UPLOAD_ERR_OK)  ) {
                $overrides = array(\'test_form\' => false); 
                $file = wp_handle_upload($_FILES[\'tz_favicon_url\'], $overrides);
                $urlimage = $file[\'url\'];
                update_option(\'tz_favicon_url\', $urlimage);
            }
                header("Location: ".$url);
                die;
        } else if( \'reset\' == $_REQUEST[\'action\'] ) {
            foreach ($options as $value) {
                delete_option( $value[\'id\'] ); }
            header("Location: themes.php?page=theme-options.php&reset=true");
            die;
        }
    }
    add_theme_page($themename." Options", "Options", \'edit_themes\', basename(__FILE__), \'mytheme_admin\');
    }
    function mytheme_admin() {
    global $themename, $shortname, $options;
    if ( $_REQUEST[\'saved\'] ) echo \'<div id="message" class="updated fade"><p><strong>\'.$themename.\' settings saved.</strong></p></div>\';
    if ( $_REQUEST[\'reset\'] ) echo \'<div id="message" class="updated fade"><p><strong>\'.$themename.\' settings reset.</strong></p></div>\';
?>
        <?php // now style the actual theme options page ?>
        <div class="wrap">
            <div id="icon-themes" class="icon32"><br /></div>
            <h2><?php _e(\'Theme Options\', \'framework\') ?></h2>
            <form method="post" action="" enctype="multipart/form-data" style="overflow:hidden;">
            <input type="hidden" name="selectedtab" id="selectedtab" value="0"/>    
            <div id="tabs" class="metabox-holder clearfix">
                <ul id="tab-items">
                <li><a href="#tabs-1"><?php _e(\'General\', \'framework\') ?></a></li>
                <li><a href="#tabs-2"><?php _e(\'Navigation\', \'framework\') ?></a></li>
                <li><a href="#tabs-3"><?php _e(\'Homepage\', \'framework\') ?></a></li>
                <li><a href="#tabs-4"><?php _e(\'Post Settings\', \'framework\') ?></a></li>
                </ul>
                <div class="clear"></div>
                <div class="postbox-container">
                <?php 
                $tab = 1;
                foreach ($options as $value) { 
                switch ( $value[\'type\'] ) {
                case "opentab": ?>
                <div id="tabs-<?php echo $tab;?>">
                <?php 
                $tab++;
                break;
                case "closetab": ?>
                </div><!-- #tabs- -->
                <?php
                break;
                case "open": // style the opening
                ?>
                <!-- div id="tabs-<?php echo $tab;?>" -->
                <div class="postbox">
                <?php 
                break;
                case "note": // style the notes
                ?>
                <div class="notes"><p><?php echo $value[\'desc\']; ?></p></div>
                <?php 
                break;
                case "title": // style the titles
                ?>
                <h3 class="hndle"><span><?php echo $value[\'name\']; ?></span></h3>
                <div class="inside">        
                <?php break;
                case "hidden": ?>
                <input name="<?php echo $value[\'id\']; ?>" id="<?php echo $value[\'id\']; ?>" type="hidden" value="<?php if ( get_settings( $value[\'id\'] ) != "") { echo stripslashes(htmlspecialchars(get_settings( $value[\'id\'] ), ENT_QUOTES)); } else { echo $value[\'std\']; } ?>" />
                <?php break;
                case "text": // style the text boxes
                ?>
                <div class="textcont">
                    <div class="value">
                        <?php echo $value[\'name\']; ?>:
                    </div>
                    <div class="input">
                        <input name="<?php echo $value[\'id\']; ?>" id="<?php echo $value[\'id\']; ?>" type="<?php echo $value[\'type\']; ?>" value="<?php if ( get_settings( $value[\'id\'] ) != "") { echo stripslashes(htmlspecialchars(get_settings( $value[\'id\'] ), ENT_QUOTES)); } else { echo $value[\'std\']; } ?>" />
                        <p><?php echo stripslashes(htmlspecialchars($value[\'desc\'])); ?></p>
                    </div>
                    <div class="clear"></div>
                </div>
                <?php break;
                case "colour": // style the text boxes
                ?>
                <script type="text/javascript">
                jQuery(function() {
                    jQuery(\'#colourpicker-<?php echo $value[\'id\']; ?>\').farbtastic(\'#<?php echo $value[\'id\']; ?>\');
                });
                </script>
                <div class="textcont">
                    <div class="value">
                        <?php echo $value[\'name\']; ?>:
                    </div>
                    <div id="colourpicker-<?php echo $value[\'id\']; ?>"></div>
                    <div class="input">
                        <input name="<?php echo $value[\'id\']; ?>" id="<?php echo $value[\'id\']; ?>" type="<?php echo $value[\'type\']; ?>" value="<?php if ( get_settings( $value[\'id\'] ) != "") { echo stripslashes(htmlspecialchars(get_settings( $value[\'id\'] ), ENT_QUOTES)); } else { echo $value[\'std\']; } ?>" />
                        <p><?php echo stripslashes(htmlspecialchars($value[\'desc\'])); ?></p>
                    </div>
                    <div class="clear"></div>
                </div>
                <?php break;
                case "file": // style the upload boxes
                ?>
                <div class="textcont">
                    <div class="value">
                        <?php echo $value[\'name\']; ?>:
                    </div>
                    <div class="input">
                        <table class="form-table">
                            <tr valign="top">
                                <th scope="row">File:</th>
                                <td><input type="file" name="<?php echo $value[\'id\']; ?>" class="tz-upload" size="40" border="0" /></td>
                            </tr>
                        </table>
                            <p><?php _e(\'Current file:\', \'framework\') ?> <?php echo get_option($value[\'id\']); ?></p>
                    </div>
                    <div class="clear"></div>
                </div>
                <?php break;
                case "textarea": // style the textareas
                ?>
                <div class="textcont">
                <div class="value"><?php echo $value[\'name\']; ?>:</div>
                <div class="input">
                <textarea name="<?php echo $value[\'id\']; ?>" id="<?php echo $value[\'id\']; ?>" type="<?php echo $value[\'type\']; ?>"><?php if ( get_settings( $value[\'id\'] ) != "") { echo stripslashes(htmlspecialchars(get_settings( $value[\'id\'] ), ENT_QUOTES)); } else { echo $value[\'std\']; } ?></textarea>
                <p><?php echo stripslashes(htmlspecialchars($value[\'desc\'])); ?></p>
                </div>
                <div class="clear"></div>
                </div>
                <?php break;
                case "checkbox": // style the checkboxes
                ?>
                <div class="textcont">
                <div class="value check-value"><?php echo $value[\'name\']; ?>:</div>
                <div class="input">
                <?php if(get_option($value[\'id\'])){ $checked = "checked=\\"checked\\""; }else{ $checked = "";} ?>
                <p><input type="checkbox" name="<?php echo $value[\'id\']; ?>" id="<?php echo $value[\'id\']; ?>" value="true" <?php echo $checked; ?> />
                <?php echo stripslashes(htmlspecialchars($value[\'desc\'])); ?></p>
                </div>
                <div class="clear"></div>
                </div>
                <?php break;
                case "select": // style the select
                ?>
                <div class="textcont">
                <div class="value"><?php echo $value[\'name\']; ?>:</div>
                <div class="input">
                <select name="<?php echo $value[\'id\']; ?>" id="<?php echo $value[\'id\']; ?>"><?php foreach ($value[\'options\'] as $option) { ?><option<?php if ( get_settings( $value[\'id\'] ) == $option) { echo \' selected="selected"\'; } elseif ($option == $value[\'std\']) { echo \' selected="selected"\'; } ?>><?php echo $option; ?></option><?php } ?></select>
                <p><?php echo stripslashes(htmlspecialchars($value[\'desc\'])); ?></p>
                </div>
                <div class="clear"></div>
                </div>
                <?php break;
                case "close": // style the closing
                ?>
                    </div><!-- inside -->
                </div><!-- post box -->
                <p class="submit">
                        <input name="save" type="submit" class="button" value="Save Settings" />    
                        <input type="hidden" name="action" value="save" />
                    </p>
                <?php break;
                } 
            }
            ?>
            </div><!-- postbox container -->
            </div><!-- metabox holder -->
            </form>
            <form method="post" action="">
                <p class="submit">
                    <input name="reset" type="submit" class="button" value="Reset" />
                    <input type="hidden" name="action" value="reset" />
                    <span><?php _e(\'Caution: will restore theme defaults\', \'framework\') ?></span>
                </p>
            </form>
    </div>
    <?php
    }
add_action(\'admin_menu\', \'mytheme_add_admin\');
// ==========================//
//             END the theme options!                   //
// ==========================//
?>
 所以看起来
this example我想列出所有类别并自动生成唯一ID。我只能选择下拉菜单,但我需要to list all categories; i.e.类似于
array(  "name" => __("Categories", \'framework\'),
"desc" => __("Category color #1", \'framework\'),
"id" => $shortname."_cat_color#1",
"std" => "#",
"type" => "text"
"desc" => __("Category color #2", \'framework\'),
"id" => $shortname."_cat_color#2",
"std" => "#",
"type" => "text"
"desc" => __("Category color #3", \'framework\'),
"id" => $shortname."_cat_color#3",
"std" => "#",
"type" => "text"),
 有什么建议吗?