drupal - 如何以编程方式将分类术语添加到 hook_nodeapi() 中的节点?

标签 drupal taxonomy

我正在创建一个模块,该模块需要在节点创建时使用分类术语对其进行标记。我已经实现了 hook_nodeapi() 来执行此操作,并且正在尝试像这样在其中添加术语:

function hook_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
  switch ($op) {
    case 'insert':
      $node->taxonomy = array(1 => taxonomy_get_term(1));
      node_save($node);
    break;
  }
}

当我调用 node_save() 时,代码进入循环,因为 node_save 调用 hook_nodeapi()。当我不调用 node_save 时,不会保存任何内容。如果我这样做,我会感到厌烦,如果我不这样做,我会感到厌烦。关于正确的方法有什么想法吗?

最佳答案

您可以使用 $op="presave" 以您想要的方式更改分类,然后让分类模块为您保存术语。之后无需使用 node_save。事实上,出于您陈述的原因,在 nodeapi 实现中应避免节点保存。

关于drupal - 如何以编程方式将分类术语添加到 hook_nodeapi() 中的节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3285863/

相关文章:

Drupal 7 : Adding a 'Add New Listing' (Create Content) Link on Local Tasks Menu

php - 在分类归档页面上显示自定义帖子类型中的所有帖子

wordpress - Woocommerce:按自定义分类排序

css - 当 float 图像超过特定宽度时,如何使用 CSS 向下移动文本?

jquery - 侧边栏 block 随机改变宽度

drupal - 如何在 drupal 8.5.0 中启用干净的 url

sharepoint - 如何将术语添加到 TermCollection(分类字段)

taxonomy - 什么是学习曲线?为什么陡峭不难?

php - WooCommerce 在产品标题中显示产品类别

php - Drupal 7 错误导致 php 最大超时