【问题标题】:Preprocess Node: Function that calls on all node types预处理节点:调用所有节点类型的函数
【发布时间】:2023-04-08 07:51:01
【问题描述】:
在preprocess.node.inc 文件中,每个节点类型调用其对应的预处理函数。 mytheme_preprocess_node__article 用于文章,mytheme_preprocess_node__bio 用于生物等。是否有在所有这些节点类型上运行的功能?我试图避免使用需要在每个特定预处理函数上调用的函数。提前致谢!
【问题讨论】:
标签:
php
drupal
drupal-theming
drupal-nodes
drupal-preprocess
【解决方案1】:
只是hook_preprocess_node(&$variables)。如MYTHEME_preprocess_node(&$variables)。这几乎适用于所有元素。
hook_preprocess_page
hook_preprocess_html
hook_preprocess_field
- 等
它们都是 hook_preprocess_HOOK(&$variables) 的变体,其中 HOOK 被替换为您想要的任何元素。
对于某些元素,您还可以将实例的机器名称附加到函数的名称中,以便在您需要仅针对某些类型进行预处理时保持代码结构良好。
hook_preprocess_field__FIELD_NAME
hook_preprocess_paragraph__PARAGRAPH_TYPE
- 等
对于节点,您还可以定位视图模式,也许这也适用于字段。
hook_preprocess_node__NODE_TYPE__VIEW_MODE