不可点击的菜单项


21

在Drupal 8站点中,我想添加带有“无链接”的菜单项,我当时想允许无链接,但是当我输入此链接时,出现错误

手动输入的路径应以/,?开头。要么 #。

有没有一种方法可以添加不单击“#”的菜单项,因为“#”添加属性[data-drupal-link-system-path =“”]和[class =“ is-active”]

Answers:


44

您需要使用route:<nolink>以实现此目的。然后它将在没有链接的情况下进行验证和呈现。


非常感谢,我尝试了一下,它工作正常,但是仍然添加了[data-drupal-link-system-path =“ <front>”]和[class =“ is-active”]的
属性

1
这与您要实现的目标是一个单独的问题,或者是核心错误或主题问题,但这route:<nolink>绝对是答案。它甚至可以与Pathauto一起使用。
凯文(Kevin)

此处已报告“活跃”类错误:drupal.org/project/drupal/issues/2838351
FiNeX

它为我工作。感谢您提供的此类知识渊博的解决方案。
学生

2

要在自定义模块中创建没有链接的菜单项,请添加到[module_name] .links.menu.yml:

url: 'internal:##'

您需要添加第二个#字符(或任何其他字母或单词url: 'internal:#nolink'),以使href属性不会显示为空,如果用户单击链接,则会导致页面重新加载。


这也是一个很好的解决方案。对我而言,比删除链接更好,它删除了<a>标记,然后此菜单项失去了相应的CSS样式。
胡安米


0

对于Drupal 8,您可以使用Link :: fromTextAndUrl以编程方式创建一个不可链接的链接,如下所示:

$my_link = Link::fromTextAndUrl(t('This is my link text'), Url::fromUri('route:<nolink>'));

您可以选择使用以下方法将其转换为数组: $my_link = $my_link->toRenderable();

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.