You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于ACF PRO为不同分类法页面加载对应导航菜单?

问题原因

in_category() 函数仅针对WordPress默认的「分类(category)」分类法生效,你使用的是自定义分类法taxcompany,所以这个判断逻辑完全不适用。

正确实现方法

既然已经通过ACF获取到分类字段并拿到了$terms分类对象,直接通过该对象的slug属性判断即可,替换后的完整代码如下:

<?php 
$company = get_field( 'company' );
$terms = get_term_by( 'id', $company, 'taxcompany' );
if ( $terms ) :
    // 根据分类slug匹配对应菜单
    if ( $terms->slug === 'company-1' ) {
        wp_nav_menu( array( 
            'theme_location' => 'menu-company-1', 
            'menu_class' => 'nav-menu'
        ) );
    } elseif ( $terms->slug === 'company-2' ) {
        wp_nav_menu( array( 
            'theme_location' => 'menu-company-2', 
            'menu_class' => 'nav-menu' 
        ) );
    } else {
        wp_nav_menu( array( 
            'theme_location' => 'menu-company-3', 
            'menu_class' => 'nav-menu' 
        ) );
    }
endif; 
?>
补充提示
  • 请确认自定义分类法taxcompany下的三个分类,其slug确实是company-1、company-2、company-3,如果slug有差异,需要同步修改判断条件里的字符串
  • 若想通过分类名称判断,可把$terms->slug替换为$terms->name,注意要和分类的显示名称完全匹配(区分大小写)

内容的提问来源于stack exchange,提问作者LSWEB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 23:25:26