Drupal 8-以编程方式禁用或启用主导航上的链接

这与Drupal8有关。 我正在尝试管理主导航上的链接项目。我想以编程方式启用/禁用项目。 我找过了,但找不到怎么做。我找到了MenuLinkManager和MenuLinkContent,但我无法做我想做的事情。 感谢大家的帮助。


解决方案

禁用/启用菜单项意味着显示/隐藏它。因此,我们可以通过主题文件中的以下代码来实现

/**
 * Implements hook_preprocess_menu().
 */
function theme_preprocess_menu(&$variables) {
  if (isset($variables['menu_name']) && $variables['menu_name'] === 'main') {
    foreach($variables['items'] as $key => $item) {
      $path = $item['url']->toString();
      switch($path) {
        case '/menupath':
          unset($variables['items'][$key]); //Remove menu item
        break;          
      }           
    }
  }
} 

相关文章