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之后而不是之前调用到数据库的。是否存在在插入之前调用的任何函数,我可以挂接到其中?
提前感谢
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;
}
publish
是
post_status
单击“发布”或“更新”按钮时。我发现的四种状态是:
- auto-draft - 不言自明(此外,单击“添加新”时,状态设置为该状态)
- draft - 单击“保存草稿”按钮时inherit - 单击预览按钮时publish - 单击“发布”或“更新”按钮时