• Resolved niska

    (@niska)


    I need to make a child class of Walker_CategoryDropdown to make it support <optgroup>. But I have no clue of how to achieve this. Any ideas?

    My goal is to get a result that looks like this:

    <select>
                   <optgroup label="Alaskan/Hawaiian Time Zone">
                       <option value="AK">Alaska</option>
                       <option value="HI">Hawaii</option>
                   </optgroup>
                   <optgroup label="Pacific Time Zone">
                       <option value="CA">California</option>
                       <option value="NV">Nevada</option>
                       <option value="OR">Oregon</option>
                       <option value="WA">Washington</option>
                   </optgroup>
                   <optgroup label="Mountain Time Zone">
                       <option value="AZ">Arizona</option>
                       <option value="CO">Colorado</option>
                       <option value="ID">Idaho</option>
                       <option value="MT">Montana</option><option value="NE">Nebraska</option>
                       <option value="NM">New Mexico</option>
                       <option value="ND">North Dakota</option>
                       <option value="UT">Utah</option>
                       <option value="WY">Wyoming</option>
                   </optgroup>
    </select>
Viewing 1 replies (of 1 total)
  • Thread Starter niska

    (@niska)

    Solved:

    class Walker_CategoryDropdownCustom extends Walker_CategoryDropdown {
    	function start_el(&$output, $category, $depth, $args) {
    		global $wp_query;
    		$cat_name = apply_filters('list_cats', $category->name, $category);
    
    		if ($depth == 0) {
    			$output .= "\t<optgroup class=\"level-$depth\" value=\"".$category->term_id."\"";
    			$output .= ' label="'.$cat_name.'">';
    		} else {
    			$output .= "\t<option class=\"level-$depth\" value=\"".$category->term_id."\"";
    			$output .= '>';
    			$output .= $cat_name;
    			$output .= "</option>\n";
    		}
    	}
    	function end_lvl(&$output, $depth, $args) {
    		$output .= "</optgroup>\n";
    	}
    }
Viewing 1 replies (of 1 total)
  • The topic ‘Walker_CategoryDropdown with optgroup’ is closed to new replies.