如何从“规则”模块操作中重写drupal页面元标记?

时间:2019-01-02 23:30:22

标签: drupal-7 meta-tags

我正在尝试检测内容类型节点是何时第一次更新或保存并附加了音频。

如果是这种情况,我想重写Twitter Card meta标签,以将图像卡转换为媒体卡,然后包括指向相关音频字段的链接,以完成媒体卡和播放器选项。

我有一个规则集,用于检测节点的创建/更新;我可以筛选出正确“类型”的节点,并且规则会正确触发,但是规则操作无法重写元标记。

规则告诉我$ node对我可用,所以我一直在尝试:

$node->metatags[LANGUAGE_NONE]['description']['value'] = 'Some description.';
$node->metatags[LANGUAGE_NONE]['title']['value'] = 'Some title | ZZZ';

此后,我执行了一个“保存实体”操作。我的基本原理是在递归锁启动并停止执行规则之前编写更改。

为了解决这个问题,我整天在房子里转了一圈。有人可以指出正确的方向吗?

非常感谢。

1 个答案:

答案 0 :(得分:0)

没有完全了解您的要求。但是,在将节点保存到数据库之前,可以使用hook_node_presave(https://api.drupal.org/api/drupal/modules%21node%21node.api.php/function/hook_node_presave/7.x)轻松更新节点数据。

如果在将节点保存到数据库后需要执行相同的操作,请使用hook_node_insert(https://api.drupal.org/api/drupal/modules%21node%21node.api.php/function/hook_node_insert/7.x)和hook_node_update(https://api.drupal.org/api/drupal/modules%21node%21node.api.php/function/hook_node_update/7.x