php - 在文件类别页面和单个产品页面上显示类别菜单

标签 php wordpress woocommerce categories product

我的 WooCommerce 商店有两个主要类别:

cat1
- subcat1
- subcat2

cat2
- subcatA
- subcatB

我已经制作了这两个分支的菜单,它们显示在类别中 页。为了更轻松地导航,我还想在单个产品页面上显示它们。

我的代码(位于woocommerce.php)是:

<?php 
if ( is_tax( 'product_cat', array(14,18,19,20,21,22,23,24)) OR is_single() ) {
   wp_nav_menu( array( 'theme_location' => 'cat1' ) ); 
   }
   elseif ( is_tax( 'product_cat', array(15,16,17,20)) OR is_single() ) {
   wp_nav_menu( array( 'theme_location' => 'cat2' ) ); 
   }
?>

这适用于类别页面,但不适用于单个产品页面

如何分配cat1和cat2的所有单品并显示 指定的菜单?

谢谢

最佳答案

条件标签is_tax()检查是否正在显示自定义分类存档页面。因此,正如您所看到的,它不适合单个产品页面。

您应该使用has_term()条件函数,对于您的单个产品页面将以类似的方式工作。

所以你的代码将是:

<?php

$cats1 = array(14,18,19,20,21,22,23,24);
$cats2 = array(15,16,17,20);
$tax = 'product_cat';

if ( is_tax( $tax, $cats1 ) || has_term( $cats1, $tax ) )
   wp_nav_menu( array( 'theme_location' => 'cat1' ) ); 
elseif ( is_tax( $tax, $cats2 ) || has_term( $cats2, $tax ) )
   wp_nav_menu( array( 'theme_location' => 'cat2' ) ); 

?>

对于单个产品页面和文件页面,这应该按照您的预期工作。

关于php - 在文件类别页面和单个产品页面上显示类别菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41133168/

相关文章:

PHP mysql 查询使用类似时间戳花费的时间太长

wordpress - Woocommerce 自定义模板不适用于登录用户

javascript - 将数据插入两个表,结果为 "Array to string conversion"

css - 专门针对 wordpress 中的小部件的 Bootstrap

css - wordpress wp_nav_menu 不在 safari 中显示

php - 在 Woocommerce 产品标题中添加换行符

php - WordPress 插件 WooCommerce,自定义支付网关设置未保存

php - 在 Woocommerce 3 中将产品自定义字段显示为订单项目

php - 从 C++ 写入文件并从 PHP 读取同一文件

php - 我可以使用 ALTER DATABASE 重命名 mysql 数据库吗?