我想进行批量操作并将节点从草稿状态更改为已发布状态.我从之前的更改中创建了一个新版本,但所有修订都默认为草稿.现在我想基本上只发布新版本.(我正在使用Workbench模块.)
我尝试过像下面这样的事情,但是它们似乎都不起作用:
$node->workbench_moderation['current']->published = "1";
Run Code Online (Sandbox Code Playgroud)
要么
$node->workbench_moderation['current']->from_state = "draft";
$node->workbench_moderation['current']->state = "published";
$node->workbench_moderation['current']->published = "1";
$node->workbench_moderation['published']->from_state = "draft";
$node->workbench_moderation['published']->state = "published";
$node->workbench_moderation['published']->published = "1";
$node->workbench_moderation['my_revision']->from_state = "draft";
$node->workbench_moderation['my_revision']->state = "published";
$node->workbench_moderation['my_revision']->published = "1";
$node->workbench_moderation['my_revision']->current = TRUE;
Run Code Online (Sandbox Code Playgroud)
要么
workbench_moderation_moderate($node, 'published');
Run Code Online (Sandbox Code Playgroud)
我尝试使用下面而不是保存node_save,想想可能node_save触发了一个新的草案.
workbench_moderation_node_update($node);
Run Code Online (Sandbox Code Playgroud)
我只想简单地加载节点,发布草稿,然后再次保存.
知道我做错了什么吗?
workbench_moderation_moderate是正确的,我会这样做批量发布一些节点:
$nodes = node_load_multiple($nodes);
foreach ($nodes as $node) {
$node->status = 1;
node_save($node);
workbench_moderation_moderate($node, 'published');
}
Run Code Online (Sandbox Code Playgroud)