如何检查 WordPress 中菜单是否已分配且不为空?

How to check if menu is assigned and not empty in WordPress?

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

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

它正在工作,但我还想检查它是否已分配且不为空, 因为如果我在管理面板中选择没有任何项目的菜单,我将在我的条件下得到 assigned

有人可以帮帮我吗?我发现了一些关于这个的问题,但是没有答案。

您可以使用 wp_nav_menu 并将 echo 参数设置为 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';
}