gpt4 book ai didi

php - wp_list_categories() - 在子类别页面中显示第一级类别和仅当前术语的子项

转载 作者:行者123 更新时间:2023-12-04 16:08:35 24 4
gpt4 key购买 nike

我正在使用 WordPress。

有多个类别及其子类别。在一般页面中,我显示所有一级类别。这是我的代码:

$args = array(
'type' => 'product-items',
'child_of' => 0,
'parent' => '',
'order' => 'DESC',
'hide_empty' => 0,
'hierarchical' => 1,
'exclude' => '',
'include' => '',
'number' => '',
'taxonomy' => 'product-category',
'pad_counts' => false,
'depth' => 1,
'title_li' => ''
);
wp_list_categories($args);

单击并进入第一级类别后,您只需在此处查看其子类别。当我删除 'depth' => 1, 选项时,所有子项都出现在它们的父类别下,但为了页面速度/加载,在子页面中我需要显示所有一级类别,但只当前类别的 child 。

例如,我有以下 3 个类别:

  • 第 1 类
  • 第 2 类
  • 第 3 类

假设我点击“类别 1”。现在是这样的:

  • 第 1 类
    • 1 的第一个子类别
    • 1 的第 2 个子类别
    • 第 1 个子类别
  • 第 2 类
    • 第 2 个子类别
      • 第二类子的第一个子
      • 第二类子的第二子
      • 第二类子的第三子
    • 2 的第 2 个子类别
    • 第 2 个子类别
  • 第 3 类
    • 第 3 个子类别
    • 3 的第 2 个子类别
    • 3 的第 3 个子类别

但我需要它在子页面中是这样的:

  • 第 1 类
    • 1 的第一个子类别
    • 1 的第 2 个子类别
    • 第 1 个子类别
  • 第 2 类
  • 第 3 类

不确定如何使用 wp_list_categories() 函数实现此目的。有什么想法吗?

最佳答案

如果使用 2 个 get_terms() 而不是 wp_list_categories 会更好。它会更快和可定制。一个用于父类别,另一个用于当前类别的子类别。这是工作示例:

   function display_cats($cats,$current=0,$current_children=array()){
$ret= '<ul>';
foreach ($cats as $cs){
$children=($current!=$cs->term_id)?'':display_cats($current_children);
$ret.= '<li> <a href="'.get_term_link($cs->term_id).'"> '.$cs->name.'</a> '.$children.' </li>
';
}
$ret.= '</ul>';
return $ret;
}


$current_cat=9;//for example
$parents=get_terms('product_cat',array('taxonomy'=>'product_cat','echo'=>false,'depth'=>0));
$current_children=get_terms('product_cat',array('taxonomy'=>'product_cat','child_of'=> $current_cat ,'echo'=>false));
echo display_cats($parents,$current_cat,$current_children);

关于php - wp_list_categories() - 在子类别页面中显示第一级类别和仅当前术语的子项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47097940/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com