我在 Drupal 7 中实现了“form_alter”钩子。我想在删除任何“文章”类型的节点后将网络重定向到特定节点。似乎这样做的正确方法是:
function mymodule_form_alter(&$form, &$form_state, $form_id){
switch ($form_id){
case 'node_delete_confirm':
if($form['#node']->type == 'article'){
$form['actions']['submit']['#submit'][] = '_mymodule_redirect';
}
break;
}
}
function _mymodule_redirect($form, &$form_state){
$form_state['redirect'] = 'node/60';
}
当我将此代码放入我的模块中时,它会在确认节点删除后重定向,但实际上并未删除该节点,如果我转到主页它仍然存在!
如果我删除代码,则节点会按预期删除,并且网页会像往常一样重定向到首页。
我究竟做错了什么?
更新:在添加重定向处理程序之前,我在重定向操作之前强制写入以下行之前的“node_delete_confirm_submit”:
$form['actions']['submit']['#submit'][] = 'node_delete_confirm_submit';
这解决了问题。