亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 163 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號