Lösung
Ich habe es nun folgendermaßen gelößt:
In der Template-Datei, wo das Dropdown sein soll, nach
das folgende JavaScript einfügen
<script type="text/javascript">
$(function(){
$('#main_cat').change(function(){
var $mainCat=$('#main_cat').val();
// call ajax
$("#sub_cat").empty();
$.ajax({
url:"/wp-admin/admin-ajax.php",
type:'POST',
data:'action=my_special_action&main_catid=' + $mainCat,
success:function(results)
{
// alert(results);
$("#sub_cat").removeAttr("disabled");
$("#sub_cat").append(results);
}
});
}
);
});
</script>
Alles anzeigen
Dann die Dropdowns platzieren:
<label for="main_cat">test:</label><br />
<select class="main_cat" id="main_cat" name="main_cat">
<option value="beats" class="level-0">Beat</option>
<option value="tracks" class="level-0">Track</option>
</select>
<select name="sub_cat" id="sub_cat" disabled="disabled"></select>
In der functions.php dann folgenden code hinzufügen:
function implement_ajax() {
if(isset($_POST['main_catid']))
{
if ($_POST['main_catid'] == 'beats') { $termname = 'style'; } elseif ($_POST['main_catid'] == 'tracks') { $termname = 'trackstyle'; }
$categories = get_terms( $termname, 'orderby=count&hide_empty=0' );
foreach ($categories as $cat) {
$option .= '<option value="'.$cat->term_id.'">';
$option .= $cat->name;
//$option .= ' ('.$cat->category_count.')';
$option .= '</option>';
}
echo $option;
die();
} // end if
}
add_action('wp_ajax_my_special_action', 'implement_ajax');
add_action('wp_ajax_nopriv_my_special_action', 'implement_ajax');//for users that are not logged in.
Alles anzeigen
Der Code muss selbstverständlich an die eigene Bedürfnisse angepasst werden und beinhaltet hier meine Werte für die terms usw.