سلام .
من داخل ووکامرس ، دسته ها ، یکسری دسته هایی رو ایجاد کردم و میشه گفت parent child های زیادی داره .
به فرض مثال زیر :
car
pride
house
cat۱
big
small
red
green
blue
little
cat۲
tiny
cat۳
animal
cat
bird
الان کدی رو نیاز دارم ک به فرض آیدی دسته cat۱ رو بهش دادم ، کامل با استایل li و ul بیاد کل منو زیرش رو چاپ کنه :
cat۱
big
small
red
green
blue
little
کدهای متفاوتی رو پیدا کردم ولی مشکلات زیادی داشت و child هارو زیر هرکدوم چاپ نمیکرد یا استایل li و ul نمیداد و ....
ممنون میشم کمکم کنید .
تشکر
من با ووکامرس کار نکردم شاید این کدها به دردت بخوره
ارایه دسته بندی شامل id , parent_id , name
ساخت درخت
می تونی تابع ها رو در یک کلاس بنویسی و بعد فراخونی کنی.
public function buildsTree( $data, $parent_id = 0)
{
$tree = array();
foreach ($data as $d) {
if ($d['parent_id'] == $parent_id) {
$children = $this->buildTree($data, $d['id']);
if (!empty($children)) {
$d['_children'] = $children;
}
$tree[] = $d;
}
}
return $tree;
}
نمایش درخت
public function printTree($tree)
{
echo '<ul>';
foreach ($tree as $i => $t) {
echo '<li>' .$t['name'].'</li>';
if (isset($t['_children'])) {
$this->printTree($t['_children']);
}
}
echo '</ul>';
}
فراخوانی
$cat = new Cat();//ساخت شی از کلاس مورد نظر برای دسترسی یه متدها
$allCat = 'آرایه دسته یندی ها که می تونی از دیتابیس بگیری';
$parent_id = 'آی دی مورد نظر که می خواهی فرزندانش رو نمایش بدی';
$tree = $cat->buildsTree($allCat,$parent_id);
نمایش به صورت ul , li :
<ul>
<li>دسته بندی مورد نظر</li>
<?php $cat->printTree($tree)?>
</ul>
استایل ها
ul , li { list-style-type: none; margin-left: -25px; }
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟