我正在尝试在下拉列表中显示我的类别和子类别。 我尝试进行车辆选择,客户必须先选择他的车辆,然后再选择类型,然后再选择发动机等。
直到主类别成为第一个子类别,我才能够做到。 但是,不会显示第二和第三子类别。
我自己没有用Javascript编写该部分,因为很不幸,我仍然是Javascript的初学者。
有人可以帮助我,告诉我我做错了什么吗?
这是我的代码:
<?php
if ( ! class_exists( 'frontendAjaxDropdown' ) ):
class frontendAjaxDropdown
{
function __construct()
{
add_shortcode( 'car_conf', array($this, 'init_shortocde') );
add_action( 'wp_ajax_get_subcat', array($this, 'getSubCat') );
add_action( 'wp_ajax_get_subsubcat', array($this, 'getSubSubCat') );
add_action('wp_ajax_nopriv_get_subcat', array($this, 'getSubCat') );
add_action('wp_ajax_nopriv_get_subsubcat', array($this, 'getSubSubCat') );
}
function init_shortocde()
{
wp_dropdown_categories(
'taxonomy=product_cat&name=main_cat&selected=-1&hierarchical=1&depth=1&hide_empty=0&show_option_none=All Categories'
);
?>
<script type="text/javascript">
(function($){
$("#main_cat").change(function(){
$("#sub_cat").empty();
$.ajax({
type: "post",
url: "<?php echo admin_url( 'admin-ajax.php' ); ?>",
data: { action: 'get_subcat', cat_id: $("#main_cat option:selected").val() },
success: function(data) {
$("#sub_cat").append(data);
}
});
});
})(jQuery);
(function($){
$("#sub_cat").change(function(){
$("#subsub_cat").empty();
$.ajax({
type: "post",
url: "<?php echo admin_url( 'admin-ajax.php' ); ?>",
data: { action: 'get_subsubcat', cat_id: $("#sub_cat option:selected").val() },
success: function(data) {
$("#subsub_cat").append(data);
}
});
});
})(jQuery);
</script>
<div id="sub_cat"></div>
<div id="subsub_cat"></div>
<?php
}
function getSubCat()
{
wp_dropdown_categories(
"taxonomy=product_cat&name=sub_cat&selected=-1&hierarchical=1&depth=1&hide_empty=0&child_of={$_POST['cat_id']}"
);
die();
}
function getSubSubCat()
{
wp_dropdown_categories(
"taxonomy=product_cat&name=subsub_cat&selected=-1&hierarchical=1&depth=1&hide_empty=0&child_of={$_POST['cat_id']}"
);
die();
}
}
endif;
new frontendAjaxDropdown();
?>
答案 0 :(得分:0)
您是否已完成调试的所有步骤?
您是否尝试过检查文档并查看子类别是否全部显示?
我刚刚做了一个google,我相信WP将此功能包装在一个函数中:
https://developer.wordpress.org/reference/functions/wp_list_categories/
这可能就是您想要的
以下两个其他链接可能会有所帮助
https://www.sitepoint.com/mastering-wordpress-categories-api/ https://www.youtube.com/watch?v=n1ZhJ_rIHjQ
这是一个与您提出的问题类似的stackoverflow问题
在您的特定情况下,您似乎正在获取类别ID,但似乎并没有在获取类别名称
taxonomy=product_cat&name=subsub_cat
我不确定这是否是您要的。也许您想添加
cat_name: $("#main_cat option:selected").val()
到您的帖子?