在我正在创建的主题中,我想将块放置在与默认位置不同的位置。例如,将搜索块放在标题中。
有没有办法从一个主题做到这一点:能够要求一个块并将其放置在某个地方?
在我正在创建的主题中,我想将块放置在与默认位置不同的位置。例如,将搜索块放在标题中。
有没有办法从一个主题做到这一点:能够要求一个块并将其放置在某个地方?
Drupal 的主题系统足够灵活,可以将页面的那部分准确地转换为您希望块出现的区域。为此,您需要将区域添加到主题.info
文件中,如将内容分配给区域中所述,例如regions[foobar] = Foobar
. 这将为$page['foobar']
您的page.tpl.php提供一个新变量。然后,您可以像使用 Drupal 的内置区域一样将内容分配给区域。
如果您想绕过此系统并临时显示块,请查看_block_render_blocks如何渲染块。
在 D7 中,您可以在主题 .info 文件中添加一个占位符区域,清除缓存并将您的块放在那里,然后您可以输出该区域的内容。
print render(block_get_blocks_by_region('region_name'));
它破坏了可配置块的想法,但它仍然是可能的:您必须为除允许区域之外的所有区域创建空块模板。或者您为此块提供/覆盖主题功能,并且对禁止区域不返回任何内容。