0

标题说的很实在。在 Drupal 中创建的基本页面似乎不使用该page.tpl.php文件作为模板。

如果我编辑html.tpl.php文件,这些更改将应用​​于每个页面,并且在我加载基本页面时会导致错误。

我也试图复制page.tpl.php文件并命名它page—basic-page.tpl.php无济于事。

知道发生了什么吗?

另外,如何更改 page_top 变量以包含更多内容?最后,默认page.tpl.php文件有$page变量和类似$page_top的东西。

我如何仅从页面调用标题,仅从页面调用正文?

我正在使用 Drupal 7 和自定义子主题。

上述文件位于主题的模板文件夹中,我在添加它们时确实清除了缓存。

4

4 回答 4

3

添加 $conf['theme_debug'] = TRUE; 在 settings.php 并清除缓存,重新加载页面并检查查看源代码。它将显示模板文件建议。

于 2018-10-31T05:25:56.293 回答
1

page.tpl.php 文件对所有页面通用。只需将任何内容打印到 tpl 并运行基本页面的任何节点以及其他内容类型页面并检查其是否正常工作。如果 page.tpl.php 仅适用于基本页面,请检查您的 template.php 文件。

打印页面标题只需要使用以下代码:

    <?php print $title; ?>

对于打印正文,您需要使用以下内容:

    <?php print render($page['content']); ?>
于 2018-10-31T07:50:00.397 回答
0

用于检查模板源的活动主题调试,您会得到不同的建议来使用它(只是避免使用节点/nid)。

推荐 drush 启用主题调试drush vset theme_debug 1

于 2018-11-04T12:12:42.610 回答
0

这可能取决于您使用的主题。但我猜你的意思是page--page.tpl.php(双破折号)。在您将以下代码段添加到主题的template.php. 替换MYTHEME为您的主题的机器名称。

function MYTHEME_preprocess_page(&$variables) {
  if (isset($variables['node']->type)) {
   // If the content type's machine name is "my_machine_name" the file
   // name will be "page--my-machine-name.tpl.php".
   $variables['theme_hook_suggestions'][] = 'page__' . $variables['node']->type; // (double underscores)
   }
}

请参阅模板(主题挂钩)建议,我也从中获得了上面的片段。

于 2018-11-02T13:51:32.763 回答