我在wordpress工作。我显示了不同的子类别。现在点击它将在其下显示其产品的每个类别。
我的代码是这样的:
<?php
$query3 = "select t.* from wp_terms as t
join wp_term_taxonomy as tt on tt.term_id = t.term_id
where tt.parent = ".$res2->term_id;
$result3 = $wpdb->get_results($query3);
foreach($result3 as $res3)
{
?>
<li>
<a href="##" class="sub_cat_name" data-id = "<?php echo $res3->term_id; ?>"><strong><?php echo $res3->name; ?></strong></a>
<ul class="tmp">
<li class="tmp_li">
</li>
</ul>
</li>
<?php
}
?>
我的jquery代码是:
<script>
$(document).ready(function(){
$(".sub_cat_name").click(function(){
var cat_id = $(this).data("id");
//alert(cat_id);
$.ajax({
url : "<?php echo site_url()."/category-products/?cat_id=" ?>" + cat_id,
}).done(function(data){
$(".tmp_li").html(data);
});
});
});
</script>
我的ajax页面是:
<?php
/**
Template Name: Get Category Products
*/
$cat_id = $_GET['cat_id'];
//echo $cat_id;
$query = "select p.* from wp_terms as t
join wp_term_taxonomy as tt on tt.term_id = t.term_id
join wp_term_relationships as tr on tr.term_taxonomy_id = tt.term_taxonomy_id
join wp_posts as p on p.ID = tr.object_id
where t.term_id = ".$cat_id;
$result = $wpdb->get_results($query);
//print_r($result);
foreach($result as $res)
{
?>
<div class="pro_name">
<?php echo $res->post_title; ?>
</div>
<?php
}
?>
我的产品属于子类别。但问题是,当我点击链接然后它的产品显示在所有子类别中。而不是它我想要只显示其自己的类别下的产品。
例如
有两个子类别:
1)Apple
2)芒果
当我点击Apple时,它的产品显示在苹果下面而不是芒果中。 在这里,我在苹果以及芒果下获得了苹果产品。那么我应该编写什么代码来解决这个问题呢?
答案 0 :(得分:0)
试试这个....你必须找到附加数据的关系元素..否则它将附加到具有该类的每个元素......如果不工作,则需要进行微小的更改..
<script>
$(document).ready(function(){
$(".sub_cat_name").click(function(){
var subCategoru = $(this);
vat tmp_li = subCategoru.siblings('tmp').find('tmp_li');
var cat_id = $(this).data("id");
//alert(cat_id);
$.ajax({
url : "<?php echo site_url()."/category-products/?cat_id=" ?>" + cat_id,
}).done(function(data){
tmp_li.html(data);
});
});
});
</script>
答案 1 :(得分:0)
我已经改变了我的代码而且它正在运行。我的新代码是这样的。
<?php
$query3 = "select t.* from wp_terms as t
join wp_term_taxonomy as tt on tt.term_id = t.term_id
where tt.parent = ".$res2->term_id;
$result3 = $wpdb->get_results($query3);
foreach($result3 as $res3)
{
?>
<li>
<a href="##" class="sub_cat_name_<?php echo $res3->term_id; ?>" data-id = "<?php echo $res3->term_id; ?>"><strong><?php echo $res3->name; ?></strong></a>
<ul class="tmp_<?php echo $res3->term_id; ?>">
<li class="tmp_li_<?php echo $res3->term_id; ?>">
</li>
</ul>
</li>
<script>
$(document).ready(function(){
$(".sub_cat_name_<?php echo $res3->term_id; ?>").click(function(){
//var subCategoru = $(this);
//alert(subCategoru);
//var tmp_li = subCategoru.siblings('tmp').find('tmp_li');
//alert(tmp_li);
var cat_id = $(this).data("id");
//alert(cat_id);
$.ajax({
url : "<?php echo site_url()."/category-products/?cat_id=" ?>" + cat_id,
}).done(function(data){
//tmp_li.html(data);
$(".tmp_li_<?php echo $res3->term_id; ?>").html(data);
});
});
});
</script>
<?php
}
?></ul>