在wordpress中的下拉框选择后获取子类别

时间:2011-07-04 13:46:24

标签: php javascript jquery wordpress

我目前有一个下拉框,其中包含我网站上所有不同类别的列表,我需要在其下面添加一个子类别框。到目前为止,我有这段代码:

    wp_dropdown_categories('show_option_none='.__('Select one','appthemes').'&class=dropdownlist&orderby=name&order=ASC&hide_empty=0&hierarchical=1&taxonomy=ad_cat&depth=1&name=preselect');

   wp_dropdown_categories('show_option_none='.__('Select one','appthemes').'&class=dropdownlist&orderby=name&order=ASC&hide_empty=0&hierarchical=1&taxonomy=ad_cat&child_of=6');

第二行代码查找属于ID为no的主类别的所有子类别。 6.当第一个下拉框改变时,如何自动更改no.6?例如。如果我从下拉框中选择ID 7,我需要显示ID 7的子类别而不是ID 6。

感谢您的帮助

编辑:我试图在选择其中一个下拉选项后运行一个函数,有人可以告诉我我做错了吗?

$('#cat').click(function() {

alert("test");

});

4 个答案:

答案 0 :(得分:1)

你可以用Javascript做到这一点。在第一个下拉列表中添加onchange属性,并通过Ajax加载第二个下拉列表的内容。

答案 1 :(得分:0)

如果你没有太多的项目,你可能想要过滤客户端而不是让wordpress每次都运行一个新的查询。

您还可以通过将第一个下拉列的'id'属性设置为您想要的数字来触发第二个下拉菜单,点击/悬停时您可以通过ID进行过滤。

答案 2 :(得分:0)

Daniel,您可以使用本教程开始:

http://www.1stwebdesigner.com/css/implement-ajax-wordpress-themes/

答案 3 :(得分:0)

<?php
                $orderby = 'name';
                            $show_count = 0; // 1 for yes, 0 for no
                            $pad_counts = 0; // 1 for yes, 0 for no
                            $hierarchical = 1; // 1 for yes, 0 for no
                            $taxonomy = 'portfolio_category';
                            $title = '';


                    if( $terms = get_terms( array( 'child_of' => 39,
                                              'orderby' => $orderby,
                                              'show_count' => $show_count,
                                              'pad_counts' => $pad_counts,
                                              'hierarchical' => $hierarchical,
                                              'taxonomy' => $taxonomy,
                                              'depth'    => 2,
                                              'hide_empty' => 0 ) ) ) : 

                        echo '<select class="techno-portfolio" name="categoryfilter"><option value="">Select technology</option>';
                        foreach ( $terms as $term ) :
                            echo '<option value="' . $term->term_id . '">' . $term->name . '</option>'; // ID of the category as the value of an option
                        ;
                        endforeach;
                        echo '</select>';
                    endif;
                ?>

使用上面的代码在下拉列表中显示主要类别的子类别。39是类别ID,您需要在下拉列表中显示该子类别。