我想为类别创建动态加载,例如,有“国家”类别,然后是“美国”,“巴西”,“西班牙”在子类别和“纽约”,“里约热内卢”和“巴塞罗那”属于子类别。
喜欢这个 美国[美国(纽约),巴西(里约)];欧洲[西班牙(巴塞罗那)]
所以我有3个选择:第一个用户必须选择“America”或“Europe”,然后如果我选择“America”,第二个加载“Brazil”和“USA”供我选择,依此类推
我正在尝试的是使用wp_dropdown_categories
函数,并根据当前选择wp_dropdown_categories
属性动态填充下一个child_of
选项。
我尝试使用上面的javascript来为第一个选择选项并且它有效,但是我看不到动态填充其他选择的方法,比如制作wp_dropdown_categories
child_of,就像这个wp_dropdown_categories('child_of=the_category_i_have_chosen');
<script type="text/javascript">
var dropdown = document.getElementById("cat");
function onCatChange() {
var value = dropdown.options[dropdown.selectedIndex].value
}
}
dropdown.onchange = onCatChange;
</script>
答案 0 :(得分:2)
我用它来进行城市/州选择。 &#34; sehir&#34;是自定义分类名称。
的header.php
<script type="text/javascript">
$(function(){
$('#main_scat').change(function(){
var $mainsCat=$('#main_scat').val();
// call ajax
$("#sub_scat").empty();
$.ajax({
url:"<?php bloginfo('url'); ?>/wp-admin/admin-ajax.php",
type:'POST',
data:'action=my_special_ajax_calls&main_catids=' + $mainsCat,
success:function(results)
{
// alert(results);
$("#sub_scat").removeAttr("disabled");
$("#sub_scat").append(results);
}
});
});
});
</script>
的functions.php
function implement_ajax_sehir() {
if(isset($_POST['main_catids'])) {
if($_POST['main_catids'] != 0) {
$categories= get_categories('child_of='.$_POST['main_catids'].'&hide_empty=1&taxonomy=sehir');
foreach ($categories as $cat) {
$option .= '<option value="'.$cat->term_id.'">';
$option .= $cat->cat_name;
$option .= '</option>';
}
echo '<option value="0" selected="selected">İlçe Seçiniz</option>'.$option;
die();
} else {
echo '<option value="0" selected="selected">İlçe Seçiniz</option>';
}
}
}
add_action('wp_ajax_my_special_ajax_calls', 'implement_ajax_sehir');
add_action('wp_ajax_nopriv_my_special_ajax_calls', 'implement_ajax_sehir');
主要类别选择框代码:
<?php
$args = array(
'taxonomy' => 'sehir',
'name'=>'main_scat',
'hide_empty'=>1,
'depth'=>1,
'hierarchical'=> 1,
'show_count' => 0,
'show_option_all'=>'Şehir Seçiniz'
);
wp_dropdown_categories( $args );
?>
子类别选择框:
<select name="sub_scat" id="sub_scat" disabled="disabled"><option value="0" selected="selected">İlçe Seçiniz</option></select>
你可以通过这种方式改进。