/** * Create menu entries associate with the vocabulary of this term. * * @param \Drupal\taxonomy\TermInterface $term */ public function generateTaxonomyMenuEntries(TermInterface $term, $rebuild_all = TRUE) { // Load relevant taxonomy menus. $tax_menus = $this->getTermMenusByVocabulary($term->getVocabularyId()); foreach ($tax_menus as $menu) { foreach ($menu->getLinks([], TRUE) as $plugin_id => $plugin_def) { if (!$rebuild_all) { $plugin_id_parts = explode('.', $plugin_id); $term_id = array_pop($plugin_id_parts); if ($term->id() != $term_id) { continue; } } if ($this->manager->hasDefinition($plugin_id)) { $this->manager->updateDefinition($plugin_id, $plugin_def); } else { $this->manager->addDefinition($plugin_id, $plugin_def); } } } }