根据内容类型格式化日期字段输出

Format date field output based on content type

我喜欢为特定节点类型(在 template.php 文件中)以不同方式输出的日期字段设置主题。

但问题是我无法找出当前函数调用发生在哪个节点类型中。

在挂钩 THEME_preprocess_node(array &$vars) 中,我可以使用 $vars['node']->type 获取节点类型并与该值进行比较。

但是我在函数 THEME_date_display_range(array &$vars) 中并且没有我可以从中访问的节点对象 function/hook。

如何I/or 我什至可以在这个 function/hook 中获得节点类型以及如何?

如果你想在节点视图上这样做,你可以使用 menu_get_object 函数 (https://api.drupal.org/api/drupal/includes%21menu.inc/function/menu_get_object/7) 来知道路由器加载了哪个对象

您可以为您的字段创建一个新的模板文件。

  • modules/field/theme 中的 field.tpl.php 文件复制到您的主题文件夹。
  • 重命名文件如下:field--your-field-name--content-type.tpl.php.
  • 清除缓存,一切顺利。

参考:Drupal 7 template suggestions.