自定义帖子类型:检查权限并验证随机数

时间:2012-05-07 作者:NightHawk

我有一个具有以下功能的自定义帖子类型:

$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().

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

使用时save_post 您通常会将用户输入的数据从metabox添加/更新到数据库中。什么时候做这个你应该检查一下your metabox的nonce有效。

您还应检查权限,如下所示save_post 在内部触发wp_insert_post(), 而不仅仅是在您创建/编辑post admin端时。

结束

相关推荐

Multiple ajax nonce requests

我当前的项目中有一个特性,它将允许多个ajax请求-我已经完成了一个nonce请求(通过this tute), 但我有点不确定如何处理多个nonce请求。功能。php:本地化,创建单个nonce wp_localize_script( \'B99-Portfolio\', \'B99ajax\', array( \'ajaxurl\' => admin_url( \'admin-ajax.