我有一个具有以下功能的自定义帖子类型:
$capabilities = array(
\'read_post\' => \'administrator\',
\'read_private_posts\' => \'administrator\',
\'publish_posts\' => \'administrator\',
\'edit_post\' => \'administrator\',
\'edit_posts\' => \'administrator\',
\'edit_published_posts\' => \'administrator\',
\'edit_others_posts\' => \'administrator\',
\'edit_private_posts\' => \'administrator\',
\'delete_post\' => \'administrator\',
\'delete_posts\' => \'administrator\',
\'delete_published_posts\' => \'administrator\',
\'delete_others_posts\' => \'administrator\',
\'delete_private_posts\' => \'administrator\'
);
我还需要使用类似
current_user_can()
保存时(通过
save_post
), 验证该用户是否具有添加或编辑帖子的权限,或者设置这些功能是否可以做到这一点?
由于这不是Wordpress中的自定义页面,而是自定义帖子类型,我需要验证nonce还是在使用自定义帖子类型时内置的?我应该注意到,我没有在该帖子类型中使用任何Wordpress字段(如标题、正文等)。使用添加了一对字段add_meta_box()
.
最合适的回答,由SO网友:Stephen Harris 整理而成
使用时save_post
您通常会将用户输入的数据从metabox添加/更新到数据库中。什么时候做这个你应该检查一下your metabox的nonce有效。
您还应检查权限,如下所示save_post
在内部触发wp_insert_post()
, 而不仅仅是在您创建/编辑post admin端时。