我正在尝试解决一些遗留代码中的问题,这些代码生成自定义内容类型“show”的节点,但前提是不存在相同类型和相同标题的节点。代码如下:
$program = node_load(array('title' => $xml_node->program_title, 'type' => 'show'));
if (!$program) {
$program = new stdClass();
$program->type = 'show';
...
node_submit($program);
node_save($program);
}
因此,脚本首先尝试加载具有特定标题的“显示”内容类型的节点,如果失败,它会创建一个。
问题是,当它在短时间内(在循环内)被多次调用时,它会创建双节点。就像在同一秒内创建了 2 个具有相同标题的节目?!?
那里可能有什么问题?
我正在寻找如何在 Drupal 6 中保存节点的示例。在某些情况下,他们甚至不调用 node_submit() 。需要那个电话吗?如果是这样,我可能必须将 node_submit() 返回的内容传递给 node_save() 吗?或者 node_load() 可能由于某种原因无法加载现有节点?也许必须清除一些缓存或其他什么?