在POST被插入到数据库之前,我如何创建一个新的POST并执行wp_die()?

时间:2013-01-20 作者:user1666774

codex提供的关于wp\\U die的信息:终止WordPress执行并显示带有错误消息的HTML消息。对该函数的调用是对die()PHP函数的补充。区别在于HTML将显示给用户。建议仅在不应继续执行时使用此功能。

我有代码:

function myHook( $post_ID, $post )
{
     wp_die(\'Error\', \'Error\',  array( \'response\' => 500, \'back_link\' => true ));
}
add_action( \'save_post\', \'myHook\', 0, 2 );
问题是出现了错误页面,但仍插入了帖子。储蓄不应该被这个钩子打断吗?若我误解了描述,我如何中断执行,使帖子不会被保存?

编辑:我刚刚发现save\\u post是在insert之后而不是之前调用到数据库的。是否存在在插入之前调用的任何函数,我可以挂接到其中?

提前感谢

1 个回复
SO网友:akTed

尝试使用筛选wp_insert_post_data 相反它来自wp-includes/post.php, 第2864行。

add_filter( \'wp_insert_post_data\', \'post_publish_filter_wpse_82356\' );
function post_publish_filter_wpse_82356( $data ) {
    // view/manipulate $data
    if (\'publish\' == $data[\'post_status\']) {
        $msg = \'<pre>\' . var_export($data, true) . \'</pre>\';
        wp_die($msg);
    }
    return $data;
}
publishpost_status 单击“发布”或“更新”按钮时。我发现的四种状态是:

  • auto-draft - 不言自明(此外,单击“添加新”时,状态设置为该状态)
  • draft - 单击“保存草稿”按钮时inherit - 单击预览按钮时publish - 单击“发布”或“更新”按钮时

结束

相关推荐

“MANAGE_POSTS_CUSTOM_COLUMN”操作挂钩与“MANAGE_${POST_TYPE}_COLUMNS”筛选器挂钩有何关系?

怎样add_action(\"manage_posts_custom_column\", \"custom_callback_fun01\"); 与…有关add_filter(\"manage_{xxxx-xxx}_columns\", \"cusotm_callback_fun02\" );?它们是如何一起工作的?通过使用这两者,我们可以将自定义列添加到自定义帖子类型和显示日期,例如,在特色列中显示特色图像这是我的代码示例,它工作得很好,但我对过滤器如何与动作挂钩一起工作有点困惑?//slides&#x