Drupal 7 如何使用Zen子主题将自定义字段添加到template.php中

Drupal 7 如何使用Zen子主题将自定义字段添加到template.php中,drupal-7,drupal-theming,Drupal 7,Drupal Theming,第一次在这里发帖,我是一个对php一窍不通的设计师,我有一个小问题似乎无法解决。我正在Drupal7中创建一个站点,使用禅宗的子主题。 顺便说一句,这是一个伟大的CMS,尽管人们说它更像是一个开发者的CMS。使用视图、规则、显示套件等,我可以毫不费力地完成我所需要的工作。因此,非常感谢所有开发人员,让这个CMS成为如此优秀的CMS。但对于这个看似简单的问题。。。(我想)没有模块能帮我,我有点困了 这就是:我想在我所有页面的标题旁边添加一个副标题 所以我所做的就是在内容类型基本页面(机器名:fie

第一次在这里发帖,我是一个对php一窍不通的设计师,我有一个小问题似乎无法解决。我正在Drupal7中创建一个站点,使用禅宗的子主题。 顺便说一句,这是一个伟大的CMS,尽管人们说它更像是一个开发者的CMS。使用视图、规则、显示套件等,我可以毫不费力地完成我所需要的工作。因此,非常感谢所有开发人员,让这个CMS成为如此优秀的CMS。但对于这个看似简单的问题。。。(我想)没有模块能帮我,我有点困了

这就是:我想在我所有页面的标题旁边添加一个副标题

所以我所做的就是在内容类型基本页面(机器名:field\u sub\u title)中添加一个自定义字段,这是一个简单的文本字段

我在我的template.php中取消了以下行的注释

函数mytheme_预处理_页面(&$variables,$hook){
$variables['sub_title']=t('field_sub_title');
}

现在我的问题是如何将自定义字段的内容加载到该变量中? 我知道我需要改变第二部分,但我不知道我需要改变什么

在page.tpl.php中显示变量是我所知道的,所以我只需要第一部分的帮助

{编辑} 好的,我找到了方法:)

我在错误的地方寻找解决方案。我不需要更改template.php文件中的任何内容

只需将这段代码添加到my page.tpl.php中:

<?php
print $node->field_sub_title['und'][0]['value'];
?>


因此,我在这里为其他Drupal新手发布这篇文章……

您的解决方案目前可能有效,但可能有一种更适合Drupal的方法来处理这样的问题。如果您尚未注意到任何问题,您可能会发现以下一个或多个问题:

  • 不懂php或Drupal主题的人可能需要改变这种工作方式
  • 如果你像我一样,你可能会忘记这是在代码中实现的
  • 您可能会在没有此子标题字段的节点(内容)上看到多余的标记和/或错误(即事件内容没有子标题字段,而基本页面和新闻文章有子标题字段)
向内容类型添加字段时,只要显示该内容类型中的内容,该字段就会自动显示。您应该能够为页面、事件或任何其他需要的内容添加子标题字段,并使其自动显示在标记中

您可以“管理”内容类型的显示,以拖放字段的显示顺序。您可以进一步使用一个模块,如为每种内容类型添加格式或布局


如果您觉得这还不够好,并且副标题的标记必须与页面标题处于同一级别(这很少见),那么至少添加一个If语句,以便在尝试打印之前检查代码是否存在变量。为了提高代码的可读性,我还添加了一个新变量和注释

<?php
  $subtitle = $node->field_sub_title['und'][0]['value'];
  if($subtitle){
     print $subtitle;
  }
?>

考虑使用field\u get\u items或field\u view\u value,或者至少使用LANGUAGE\u NONE常量而不是“und” 看到和

这还可以减少您创建的潜在安全漏洞的数量