为了账号安全,请及时绑定邮箱和手机立即绑定

WordPress REST API 创建自定义帖子类型不起作用

WordPress REST API 创建自定义帖子类型不起作用

PHP
慕妹3146593 2022-01-02 17:26:12
我正在尝试使用 WordPress REST API 创建自定义帖子。问题是我可以在以管理员身份登录时创建自定义帖子。但是,当我在以自定义角色“new_role”身份登录时尝试创建帖子时,API 会给出以下错误响应。{    "code": "rest_cannot_update",    "message": "Sorry, you are not allowed to edit the letter_intro custom field.",    "data": {        "key": "letter_intro",        "status": 403    }}并且在没有post_meta值的情况下创建了帖子。我尝试通过在 function.php 中添加以下代码来添加功能add_action('rest_api_init', function () {$new_role = get_role('new_role');$new_role->add_cap('edit_post', true);$new_role->add_cap('edit_post_meta', true);......但它不起作用。
查看完整描述

1 回答

?
守着星空守着你

TA贡献1799条经验 获得超8个赞

我能够通过使用下面的代码来解决它。


$args = array(

            'labels' => $labels,

            'description' => 'Custom post',

            'public' => true,

            'menu_position' => 5,

            'supports' => array('title', 'editor', 'thumbnail', 'author', 'excerpt', 'comments', 'custom-fields'),

            'has_archive' => true,

            'show_in_rest' => true,

            'rest_base'    => 'letters',

            'capabilities' => array(

        'edit_post' => 'edit_letter',

        'edit_posts' => 'edit_letters',

        'publish_posts' => 'publish_letters',

        'read_post' => 'read_letter',

        'delete_post' => 'delete_letter'

    ),

        );

        register_post_type('letter', $args);

然后将这些功能添加到所需的角色。


function new_caps()

{

     $new_role = get_role('new_role');

     $new_role->add_cap('edit_letter', true);

     $new_role->add_cap('edit_letters', true);

     $new_role->add_cap('publish_letters', true);

     $new_role->add_cap('read_letter', true);

     $new_role->add_cap('delete_letter', true);


     $admins = get_role( 'administrator' );

     $admins->add_cap('edit_letter', true);

     $admins->add_cap('edit_letters', true);

     $admins->add_cap('publish_letters', true);

     $admins->add_cap('read_letter', true);

     $admins->add_cap('delete_letter', true);

}



add_action('init', 'new_caps', 11);


查看完整回答
反对 回复 2022-01-02
  • 1 回答
  • 0 关注
  • 175 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号