Php 从WooCommerce中的父类别中获取与当前产品关联的相关子类别
这并不是一个重复的问题,然而,wordpress.stackexchange论坛似乎对此保持沉默。。。我希望有人能帮忙 我的以下链接是指: 我正忙于一个音乐网站。情况如下:Php 从WooCommerce中的父类别中获取与当前产品关联的相关子类别,php,wordpress,woocommerce,product,taxonomy-terms,Php,Wordpress,Woocommerce,Product,Taxonomy Terms,这并不是一个重复的问题,然而,wordpress.stackexchange论坛似乎对此保持沉默。。。我希望有人能帮忙 我的以下链接是指: 我正忙于一个音乐网站。情况如下: 一首歌(WooCommerce产品),有一个“摇滚”类别,摇滚是“流派”的一个子类别 流派类别有许多不同的子类别(摇滚、流行、古典等) 这些类别是在将产品导入WooCommerce时设置的,初始导入CSV中的类别字符串如下所示(我使用虚拟数据进行开发): 体裁,体裁>摇滚,艺术家,艺术家>阿比盖尔·杰伊>绿巨人依靠体重,专辑
体裁,体裁>摇滚,艺术家,艺术家>阿比盖尔·杰伊>绿巨人依靠体重,专辑>绿巨人依靠体重,年份,年份>2014
在上面的例子中,摇滚是流派的一个子类别
通过以下代码,我得到了“流派”下列出的所有子类别:
global$产品;
$terms=get_the_terms($product->get_id(),'product_cat');
foreach($terms作为$term)
{
如果($term->slug==“流派”)
{
$\u id=$term->term\u id;
$\u s=$term->slug;
$\u ar=array('parent'=>$\u id);
$assoc\u categories=获取术语('product\u cat',$\u ar);
}
}
然而,这是不正确的。我试图做的(而不是赢得)是通过php获得与当前产品相关联的相关子类别(例如Rock)。换句话说,我需要看看哪一个子类别的流派与产品相关
我可能错过了一些小东西,但是这让我忙了好一阵子。。。任何帮助都将不胜感激
编辑:
好的,我想出了一个大概的方法来获得我需要的东西,并更新了我的代码,如下所示:
global$产品;
$terms=get_the_terms($product->get_id(),'product_cat');
$_x=array();
foreach($terms作为$term)
{
如果($term->slug==“流派”)
{
$\u id=$term->term\u id;
$\u s=$term->slug;
$\u ar=array('parent'=>$\u id);
$assoc\u categories=获取术语('product\u cat',$\u ar);
foreach(以$的形式获取术语('产品类别',$))
{
$genre\u dict[]=$\u gt->name;
}
}
if(在数组中($term->name,$genre\u dict))
{
echo($term->name);
}
}
对上述内容的简要说明:
$genre\u dict
的数组,其中包含类别genre中包含的所有子类别$term->name
与$genre\u dict
中的每个条目进行比较,如果找到匹配项,我将输出$term->name
有没有更好的方法来达到同样的效果?好的,我想出了一个大概的方法来获得我需要的东西,并更新了我的代码,如下所示:
global$产品;
$terms=get_the_terms($product->get_id(),'product_cat');
$_x=array();
foreach($terms作为$term)
{
如果($term->slug==“流派”)
{
$\u id=$term->term\u id;
$\u s=$term->slug;
$\u ar=array('parent'=>$\u id);
$assoc\u categories=获取术语('product\u cat',$\u ar);
foreach(以$的形式获取术语('产品类别',$))
{
$genre\u dict[]=$\u gt->name;
}
}
if(在数组中($term->name,$genre\u dict))
{
echo($term->name);
}
}
对上述内容的简要说明:
$genre\u dict
的数组,其中包含类别genre中包含的所有子类别$term->name
与$genre\u dict
中的每个条目进行比较,如果找到匹配项,我将输出$term->name
- 艺人姓名、ID、Slug>
- 每张专辑名称、ID、Slug、年份、流派>
- 每首歌曲的名称、ID、Slug、SKU和指向曲目预览的链接
- 每张专辑名称、ID、Slug、年份、流派>
if((!empty($\u SERVER['HTTPS'])和&$\u SERVER['HTTPS']!='off')|$\u SERVER['SERVER\u PORT']==443)
{
$GLOBALS['base_href']='https://'。$\u SERVER['SERVER_NAME'].//';
}
其他的
{
$GLOBALS['base_href']='http://'。$\u SERVER['SERVER_NAME'].//';
}//结束:如果(!empty($\u服务器['HTTPS'。。。
$main_category=get_queryed_object();
$main\u category\u id=$main\u category->term\u id;
$main\u category\u name=$main\u category->name;
$main\u category\u slug=$main\u category->slug;
foreach(获取术语('product_cat',$main_category_id)作为$term)
{
如果($term->slug==“流派”)
{
foreach(以$的形式获取术语('product\u cat',['parent'=>$term->term\u id]))
{
$genre\u dict[]=$\u gt->name;
}
}//结束:if($term->slug==“流派”。。。
如果($term->slug==“年”)
{
foreach(以$的形式获取术语('product\u cat',['parent'=>$term->term\u id]))
{
$year\u dict[]=$\u gt->name;
}
}//结束日期:如果($term->slug==“年”。。。
}//结束:foreach(获取术语('product\u cat',$sub\u category\u id…)。。。
$\u艺术家\u对象=
[
“艺术家id”=>$main\u category->term\u id,
“艺术家名称”=>$main\u category->name,
“艺术家”slug=>$main\u类别->slug
];
foreach(获取术语('product_cat',['parent'=>$main_category_id])作为$sub_category)
{
$sub_category_id=$sub_category->term_id;
$sub_category_name=$sub_category->name;
$sub_category_slug=$sub_category->slug;
$\u艺人\u OBJ['艺人\u专辑][$sub\u分类->slug]=
[
'album_id'=>$sub_category->term_id,
“唱片集名称”=>$sub\u category->name,
'album_slug'=>$sub_category->slug,
“专辑年”=>“”,
“专辑类型”=>“”,
'album_artwork'=>$GLOBALS['base_href']。'wp-content/uploads/album_images/'。$sub_category->slug..jpg',
“唱片集曲目”=>[]
];
$produc