【问题标题】:Restrict block visibility by page and content type in Drupal 8在 Drupal 8 中按页面和内容类型限制块的可见性
【发布时间】:2018-03-29 10:44:10
【问题描述】:

我声明了一个块来显示最近发表的 3 篇文章,我想在特定页面上显示它,所以我添加了 /my-page/ 进入阻止页面列表,但它没有用。然后我将其更改为 /my-page* 并且它有效,但我最终在 /my-page/other-content 上获得了阻止,这不是我想要的。

此外,如果我声明一个页面列表和一个内容类型,我的内容类型不会被考虑在内。

我做错了吗?

【问题讨论】:

    标签: drupal drupal-8 drupal-blocks


    【解决方案1】:

    您能否首先简单地尝试/my-page 不带斜杠。

    除此之外,您还可以查看以下模块:

    Block Exclude pages

    那你会说Show for the listed pages

    /my-page*
    !/my-page/*
    

    关于内容类型,ctools 存在一个似乎仍未修复的错误。所以你可以看看:

    Block Visibility Groups

    您可以在此处配置隐藏特定内容类型的块的可见性组。

    可见性组也是可重复使用的,这意味着您可以在多个块上应用相同的设置。

    【讨论】:

    • 我试过 /my-page,我忘了提,但它不起作用(这让我很惊讶......)
    • @Tibo - 我明白了。然后尝试使用以下规则阻止排除页面:/my-page*!/my-page/*
    • 我会试试的。您知道通过在列表中添加页面是否是预期的行为,我选择的所有内容类型都不再显示该块吗?
    • @Tibo – 是的。您可能会发现与您的需求不同的规则。也许您使用出色的 Pathauto 模块并为每种内容类型提供默认的 URL 模式,例如 contenttypename/[node:title],然后在您的块设置中通过它们的 URL 别名一一添加或排除它们。您也可以以编程方式执行此操作,但这是完全不同的故事。
    猜你喜欢
    • 2015-07-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-18
    • 1970-01-01
    • 2016-12-15
    • 1970-01-01
    • 2016-06-25
    • 2014-08-08
    相关资源
    最近更新 更多