检查帖子是手动添加的还是通过wp_sert_post()添加的

时间:2019-01-29 作者:Pipo

我可能没有这样想,但我的情况是:

我有一个自定义的帖子类型,叫做events.wp_insert_post() (在插件中),一些是在管理编辑屏幕中手动添加的post_meta 但是only if the post is added manually (through the admin edit screen).save_post_events 执行一些安全检查,但我不知道如何检查请求是否只来自管理编辑页面,因为现在save_post 如果帖子中添加了wp_insert_post 作用

有什么想法吗?

谢谢

1 个回复
最合适的回答,由SO网友:Pipo 整理而成

我找到了一个不添加任何其他元盒的解决方案。我还没有想过,但我的插件中的导入功能使用了nonce 所以我只是检查我的nonce是否设置了。

这是我的save_post_events 功能:

add_action( \'save_post_events\', \'wse_327066_example\', 10, 3);
function wse_327066_example( $post_id, $post, $update ) {
  if ( defined( \'DOING_AUTOSAVE\' ) && DOING_AUTOSAVE || $post->post_status == \'trash\' || !current_user_can( \'edit_posts\' ) || isset( $_POST[\'_import_nonce\'] ) ) 
    return;

  # Now I can do whatever I want with posts saved from the admin edit screen... 
}

相关推荐