[英]How to restrict a block placed in a twig file through preprocess theme function be restricted to certain pages in a content type rather?
盡管 Drupal 管理員提到了頁面限制(僅在列出的頁面上顯示),但我已經創建了一個自定義塊,並以編程方式將此塊包含在節點 twig 文件中,但是,此塊顯示在所有節點頁面中,而不僅僅是提到的頁面。 如何通過編碼限制此塊僅在受限頁面上顯示?
我已經限制了塊中的頁面(通過管理界面創建),但是無論它在所有節點頁面上的頁面限制如何,都會顯示該塊。
// .theme 文件中的代碼,與“僅在列出的頁面上顯示”的配置設置中提到的頁面無關:
function my_sitedesigntheme_theme_preprocess_node(&$variables) {
$block = Drupal\block_content\Entity\BlockContent::load(31);
$variables['my_block_data'] = \Drupal::entityTypeManager()->getViewBuilder('block_content')->view($block);
}
// twig文件中的代碼:
{{ my_block_data }}
該塊應顯示(已顯示),但僅在自定義塊配置設置中列出的頁面上。
當您使用\Drupal::entityTypeManager()->getViewBuilder('block_content')->view($block)
構建塊時,它會忽略配置(例如,您希望阻止顯示的頁面) 。 所以,這種方式是不正確的。
您的解決方案是,使用主題塊管理器,並將塊放在您想要的區域中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.