首页 > 解决方案 > 预处理节点:调用所有节点类型的函数

问题描述

preprocess.node.inc文件中,每个节点类型调用其对应的预处理函数。mytheme_preprocess_node__article对于文章,mytheme_preprocess_node__bio对于生物等。是否有在所有这些节点类型上运行的功能?我试图避免使用需要在每个特定预处理函数上调用的函数。提前致谢!

标签: phpdrupaldrupal-themingdrupal-nodesdrupal-preprocess

解决方案


简直了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

推荐阅读