首页 > 解决方案 > 如何检查 WordPress 中的菜单是否已分配且不为空?

问题描述

我对 WordPress 中的菜单有一个大问题,我正在尝试检查菜单是否由以下人员分配:

if(has_nav_menu('main-menu')) {
  echo 'assigned';
} else {
  echo 'no';
}

它正在工作,但我还想检查它是否已分配并且不为空,因为如果我在管理面板中选择菜单而没有任何项目,我将进入assigned我的状态。

有人能帮助我吗?我发现了一些关于此的问题,但没有答案。

标签: wordpresswordpress-theming

解决方案


您可以使用设置为wp_nav_menuecho参数false来检查菜单是否为空,如下所示:

// check if menu is empty or not
$has_menu_items = wp_nav_menu( array( 'theme_location' => 'main-menu', 'echo' => false )) !== false;

// check if menu location is assigned
$is_assigned = has_nav_menu('main-menu');

// check for both conditions
if($has_menu_items && $is_assigned) {
  echo 'assigned';
} else {
  echo 'no';
}

推荐阅读