Alc*_*hem 3 php categories woocommerce
我需要一些思考的食物,因为我在这里找不到合适的解决方案.
有一个woocommerce商店,左侧(侧边栏)和右侧产品类别.产品可以有多个类别; 例如,产品"Burger"属于"Food"和"Fastfood"类别.
现在在左侧我们有"食物"和"快餐"类别,其中包含"汉堡".我去"食物"类别.在侧边栏的左侧,我突出显示了类别食物:
(start loop going through categories)
if(get_query_var('product_cat') == $cat->slug) - echo <li class="active">
else - echo <li class="active">
(end loop)
Run Code Online (Sandbox Code Playgroud)
因此突出显示"食物"类别.然后我选择产品"汉堡".现在,因为产品"Burger"也属于"Fastfood"类别,所以"Fastfood"类别显示为活动状态.
活动类别应基于最初选择产品的类别("食品").如果你进入"快餐"类别并选择"汉堡",那么"快餐"应该是有效的.从"食物"打开"汉堡","食物"应该是活跃的类别.
我的尝试是(<?php the_permalink(); ?>)在显示所有产品时将永久链接中的类别更改为当前类别,但它感觉不是正确的方式.
也许某人有更好的解决方案.
祝你有个美好的一天!
编辑:
我已设法创建具有正确类别的永久链接:
$custom_permalink = get_settings('siteurl')."/".get_query_var('product_cat')."/".basename(get_permalink());
Run Code Online (Sandbox Code Playgroud)
可悲的是,这不起作用..(将我重定向到"错误的"类别)但我不喜欢这种黑客:)
我搞定了.这就是我做的:
在您的自定义模板文件/yourtheme/woocommerce/content-product.php中,您将更改a href.
生成新永久链接的代码(使用当前选定的类别):
// HOOK FOR CORRECT ACTIVE SIDEBAR ELEMENT WHEN PRODUCT HAS MULTIPLE CATEGORIES
if(get_query_var('product_cat') == ""){
$product_categries = get_the_terms( $post->ID, 'product_cat' );
foreach ($product_categries as $category) {
$cur_cat = $category->slug;
}
$custom_cat = $cur_cat;
}else{
$custom_cat = get_query_var('product_cat');
}
$custom_permalink = get_permalink(5).$custom_cat."/".basename(get_permalink());
Run Code Online (Sandbox Code Playgroud)
我还检查是否设置了一个类别(因为如果您正在查看"所有产品",则没有,在这种情况下,我遍历产品并获取其类别以在永久链接中使用它).
id为5的get_permalink基本上是我的商店页面,因此当您从商店更改固定链接时,它会保持动态.不喜欢硬编码的东西,因为它已经是一个丑陋的黑客.
将此代码放在包装产品的href之前,在我的情况下,这是在第42行(Woocommerce V2.0.10).然后改变这个href
<a href="<?php the_permalink(); ?>">
Run Code Online (Sandbox Code Playgroud)
至
<a href="<?php echo $custom_permalink; ?>">
Run Code Online (Sandbox Code Playgroud)
我希望当你遇到同样的问题时,这会对你有所帮助!
| 归档时间: |
|
| 查看次数: |
4313 次 |
| 最近记录: |