簡體   English   中英

如何通過預處理主題限制放置在 twig 文件中的塊 function 僅限於內容類型中的某些頁面?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM