web-dev-qa-db-ja.com

作成者ロールを持つユーザーにカスタム投稿タイプの編集を許可する

私はこのコード化されたプロジェクトに特定の振る舞いを持つカスタム投稿タイプがあります。それは単一の投稿のみであり、admins/editors/authorsはそのコンテンツを編集することしかできません。内容はカスタムデータテーブルです。管理者と編集者は問題なく編集できます。私は著者にもこの単一の投稿を編集できるようにしてほしいのですが、どうやって見つけることができないようです。コードはこれです:

add_action('init', 'register_post_types');
    function register_post_types(){

    register_post_type('post_type_uo', array(
            'labels' => array(
            'name'               => 'uo Articles', 
            'singular_name'      => 'uo', 
            'add_new'            => 'Add uo', 
            'edit_item'          => 'Edit Post', 
            'view_item'          => 'View Post', 
            'search_items'       => 'Find Post', 
            'not_found'          => 'Not Found', 
            'not_found_in_trash' => 'Not Found', 
            'parent_item_colon'  => '', 
            'menu_name'          => 'uo', 
        ),
    'public' => true, 
    'menu_position' => 4, 
    'exclude_from_search' => true,  
    'has_archive' => false,  
    'rewrite' => array('slug' => 'daily-uo'), 
    'taxonomies'    => array( 'dailies' , 'category'),
    'menu_icon'     => 'dashicons-chart-line', // custom icon
    'capabilities' => array('create_posts'  => false,),
    'map_meta_cap' => true,
    'supports'      => array('title')
    ));
    }

私は機能配列を追加しようとした後、「メンバー」プラグインをインストールしました。

'capabilities' => array(
        'create_posts' => 'do_not_allow', // false < WP 4.5, credit @Ewout
        'read_posts' => 'read_uos',
        'edit_post' => 'edit_uo',
        'edit_posts' => 'edit_uos',
        'published_posts' => 'publish_uo',
        'edit_published_posts' => 'edit_uo_p',
        'edit_others_posts ' => 'edit_uo_others'
      ),

プラグインのロールページで機能を確認して選択できますが、それでもAthorロールを持つユーザーの編集アクセスはできません。

最後に私は正しい(??)パーミッションを与えるプラグインを通して新しい役割-uo_Author-を作りましたが、それでも運はありません

何か案は?

1
JoePanpi

分類として「dailies」を登録します。

register post type 」のコーデックスには「投稿タイプの作成中に分類法を登録しても、register_taxonomy()を使用して分類法を明示的に登録および定義する必要があります。

PS:私ができたら、これをあなたの質問へのコメントとして追加したでしょう。

更新:2018年8月22日
OK。もう一度この議論を始めましょう。 do分類法を追加する必要がありますが、それが著者が投稿を表示/編集できない理由ではありません。

Register_post_typeの関数では、「機能」に構文エラーがあり、uo投稿を見ている著者を止めるのに十分でした。したがって、次のように「機能」を編集します。

'capabilities' => array( 'create_posts' => 'do_not_allow', // false < WP 4.5, credit @Ewout 'read_posts' => 'read_uos', 'edit_post' => 'edit_uo', 'edit_posts' => 'edit_uos', 'publish_posts' => 'publish_uos', 'edit_published_posts' => 'edit_published_uos', 'edit_others_posts' => 'edit_others_uos' ),

Membersプラグインを使用して、「uo Articles」のすべての機能を割り当てますが、さまざまな「delete」および「private」機能を付与したくない場合があります。

追加の作成者ロールを追加する必要はありません。実際、それが価値があることはもっと混乱するかもしれません。

0
Tedinoz