我创建了3种不同的自定义帖子类型,我需要在后端,这只能由管理员用户角色和我的自定义用户角色(mmv\\u multi\\u vendor)进行编辑。
我设置了代码的功能,但我有一个问题。所有角色为“mmv\\u multi\\u vendor”的用户都可以从后端查看3个CPT,但具有“administrator”角色的用户只能在后端查看CPT名称“Resi”。
这是我的代码:
/*CPT*/
/* Condizioni di Vendita */
add_action(\'init\', \'crea_condizioni\'); #[1]
function crea_condizioni() {
$labels = array(
\'name\' => __(\'Archivio Condizioni\'),
\'singular_name\' => __(\'Condizioni di Vendita\'),
\'add_new\' => __(\'Aggiungi Condizioni di Vendita\'),
\'add_new_item\' => __(\'Nuova Condizione di Vendita\'),
\'edit_item\' => __(\'Modifica Condizione di Vendita\'),
\'new_item\' => __(\'Nuova Codizione di Vendita\'),
\'all_items\' => __(\'Elenco Condizioni di Vendita\'),
\'view_item\' => __(\'Visualizza Condizione di Vendita\'),
\'search_items\' => __(\'Cerca Condizione di Vendita\'),
\'not_found\' => __(\'Condizione di Vendita non tovata\'),
\'not_found_in_trash\' => __(\'Condizione di Vendita non trovata nel cestino\'),
);
$args = array(
\'labels\' => $labels, # [2]
\'public\' => true, # [3]
\'publicly_queryable\' => true,
\'show_ui\' => true,
\'query_var\' => true,
\'capability_type\' => \'post\',
\'rewrite\' => array(\'slug\' => \'condizioni\'), # [4]
\'has_archive\' => \'salmi\', # [5]
\'hierarchical\' => false, # [6]
\'menu_position\' => 5, # [7]
\'menu_icon\' => \'\',
\'supports\' => array( \'title\', \'editor\' ),
\'map_meta_cap\' => true,
\'capability_type\' => array(\'crea_condizioni\',\'crea_condizionis\'),
);
register_post_type(\'condizioni\', $args); #[9]
}
/* Condizioni Spedizione */
add_action(\'init\', \'crea_spedizioni\'); #[1]
function crea_spedizioni() {
$labels = array(
\'name\' => __(\'Condizioni di Spedizione\'),
\'singular_name\' => __(\'Condizioni di Spedizione\'),
\'add_new\' => __(\'Aggiungi Condizione di Spedizione\'),
\'add_new_item\' => __(\'Nuova Condizione di Spedizione\'),
\'edit_item\' => __(\'Modifica Condizione di Spedizione\'),
\'new_item\' => __(\'Nuova Condizione di Spedizione\'),
\'all_items\' => __(\'Elenco Condizioni di Spedizione\'),
\'view_item\' => __(\'Visualizza Condizione di Spedizione\'),
\'search_items\' => __(\'Cerca Condizione di Spedizione\'),
\'not_found\' => __(\'Condizione di Spedizione non trovata\'),
\'not_found_in_trash\' => __(\'Condizione di Spedizione non trovata nel cestino\'),
);
$args = array(
\'labels\' => $labels, # [2]
\'public\' => true, # [3]
\'rewrite\' => array(\'slug\' => \'spedizioni\'), # [4]
\'has_archive\' => true, # [5]
\'hierarchical\' => false, # [6]
\'menu_position\' => 6, # [7]
\'menu_icon\' => \'\',
\'supports\' => array( \'title\', \'editor\' ),
\'map_meta_cap\' => true,
\'capability_type\' => array(\'crea_spedizioni\',\'crea_spedizionis\'),
);
register_post_type(\'spedizioni\', $args); #[9]
}
/* Resi e Rimborsi */
add_action(\'init\', \'crea_resi\'); #[1]
function crea_resi() {
$labels = array(
\'name\' => __(\'Resi e Rimborsi\'),
\'singular_name\' => __(\'Resi e Rimborsi\'),
\'add_new\' => __(\'Aggiungi Condizoni Resi e Rimborsi\'),
\'add_new_item\' => __(\'Nuova Condizione Resi e Rimborsi\'),
\'edit_item\' => __(\'Modifica Condizione Resi e Rimborsi\'),
\'new_item\' => __(\'Nuova Condizione Resi e Rimborsi\'),
\'all_items\' => __(\'Elenco Condizioni Resi e Rimborsi\'),
\'view_item\' => __(\'Visualizza Condizioni Resi e Rimborsi\'),
\'search_items\' => __(\'Cerca Condizioni Resi e Rimborsi\'),
\'not_found\' => __(\'Nessuna Condizione Resi e Rimborsi trovata\'),
\'not_found_in_trash\' => __(\'Nessuna Resi e Rimborsi trovata nel cestino\'),
);
$args = array(
\'labels\' => $labels, # [2]
\'public\' => true, # [3]
\'rewrite\' => array(\'slug\' => \'resi\'), # [4]
\'has_archive\' => true, # [5]
\'hierarchical\' => false, # [6]
\'menu_position\' => 7, # [7]
\'menu_icon\' => \'\',
\'supports\' => array( \'title\', \'editor\' ),
\'map_meta_cap\' => true,
\'capability_type\' => array(\'crea_resi\',\'crea_resis\'),
);
register_post_type(\'resi\', $args); #[9]
}
// Caopibility Role
add_action( \'init\', \'add_bounty_product_caps\');
function add_bounty_product_caps() {
global $wp_roles;
if ( isset($wp_roles) ) {
$wp_roles->add_cap( \'administrator\', \'edit_crea_resi\' );
$wp_roles->add_cap( \'administrator\', \'edit_crea_resis\' );
$wp_roles->add_cap( \'administrator\', \'edit_others_crea_resis\' );
$wp_roles->add_cap( \'administrator\', \'publish_crea_resis\' );
$wp_roles->add_cap( \'administrator\', \'read_crea_resi\' );
$wp_roles->add_cap( \'administrator\', \'read_private_crea_resis\' );
$wp_roles->add_cap( \'administrator\', \'delete_crea_resi\' );
$wp_roles->add_cap( \'administrator\', \'edit_published_crea_resis\' );
$wp_roles->add_cap( \'administrator\', \'delete_published_crea_resis\' );
$wp_roles->add_cap( \'administrator\', \'edit_crea_spedizioni\' );
$wp_roles->add_cap( \'administrator\', \'edit_crea_spedizionis\' );
$wp_roles->add_cap( \'administrator\', \'edit_others_crea_spedizionis\' );
$wp_roles->add_cap( \'administrator\', \'publish_crea_spedizionis\' );
$wp_roles->add_cap( \'administrator\', \'read_crea_spedizioni\' );
$wp_roles->add_cap( \'administrator\', \'read_private_crea_spedizionis\' );
$wp_roles->add_cap( \'administrator\', \'delete_crea_spedizioni\' );
$wp_roles->add_cap( \'administrator\', \'edit_published_crea_spedizionis\' );
$wp_roles->add_cap( \'administrator\', \'delete_published_crea_spedizionis\' );
$wp_roles->add_cap( \'administrator\', \'edit_crea_condizioni\' );
$wp_roles->add_cap( \'administrator\', \'edit_crea_condizionis\' );
$wp_roles->add_cap( \'administrator\', \'edit_others_crea_condizionis\' );
$wp_roles->add_cap( \'administrator\', \'publish_crea_condizionis\' );
$wp_roles->add_cap( \'administrator\', \'read_crea_condizioni\' );
$wp_roles->add_cap( \'administrator\', \'read_private_crea_condizionis\' );
$wp_roles->add_cap( \'administrator\', \'delete_crea_condizioni\' );
$wp_roles->add_cap( \'administrator\', \'edit_published_crea_condizionis\' );
$wp_roles->add_cap( \'administrator\', \'delete_published_crea_condizionis\' );
$wp_roles->add_cap( \'mmv_multi_vendor\', \'edit_crea_resi\' );
$wp_roles->add_cap( \'mmv_multi_vendor\', \'edit_crea_resis\' );
$wp_roles->add_cap( \'mmv_multi_vendor\', \'edit_others_crea_resis\' );
$wp_roles->add_cap( \'mmv_multi_vendor\', \'publish_crea_resis\' );
$wp_roles->add_cap( \'mmv_multi_vendor\', \'read_crea_resi\' );
$wp_roles->add_cap( \'mmv_multi_vendor\', \'read_private_crea_resis\' );
$wp_roles->add_cap( \'mmv_multi_vendor\', \'delete_crea_resi\' );
$wp_roles->add_cap( \'mmv_multi_vendor\', \'edit_published_crea_resis\' );
$wp_roles->add_cap( \'mmv_multi_vendor\', \'delete_published_crea_resis\' );
$wp_roles->add_cap( \'mmv_multi_vendor\', \'edit_crea_spedizioni\' );
$wp_roles->add_cap( \'mmv_multi_vendor\', \'edit_crea_spedizionis\' );
$wp_roles->add_cap( \'mmv_multi_vendor\', \'edit_others_crea_spedizionis\' );
$wp_roles->add_cap( \'mmv_multi_vendor\', \'publish_crea_spedizionis\' );
$wp_roles->add_cap( \'mmv_multi_vendor\', \'read_crea_spedizioni\' );
$wp_roles->add_cap( \'mmv_multi_vendor\', \'read_private_crea_spedizionis\' );
$wp_roles->add_cap( \'mmv_multi_vendor\', \'delete_crea_spedizioni\' );
$wp_roles->add_cap( \'mmv_multi_vendor\', \'edit_published_crea_spedizionis\' );
$wp_roles->add_cap( \'mmv_multi_vendor\', \'delete_published_crea_spedizionis\' );
$wp_roles->add_cap( \'mmv_multi_vendor\', \'edit_crea_condizioni\' );
$wp_roles->add_cap( \'mmv_multi_vendor\', \'edit_crea_condizionis\' );
$wp_roles->add_cap( \'mmv_multi_vendor\', \'edit_others_crea_condizionis\' );
$wp_roles->add_cap( \'mmv_multi_vendor\', \'publish_crea_condizionis\' );
$wp_roles->add_cap( \'mmv_multi_vendor\', \'read_crea_condizioni\' );
$wp_roles->add_cap( \'mmv_multi_vendor\', \'read_private_crea_condizionis\' );
$wp_roles->add_cap( \'mmv_multi_vendor\', \'delete_crea_condizioni\' );
$wp_roles->add_cap( \'mmv_multi_vendor\', \'edit_published_crea_condizionis\' );
$wp_roles->add_cap( \'mmv_multi_vendor\', \'delete_published_crea_condizionis\' );
}
}
我也尝试只使用
add_action( \'init\', \'add_bounty_product_caps\');
function add_bounty_product_caps() {
global $wp_roles;
if ( isset($wp_roles) ) {
$role = get_role( \'mmv_multi_vendor\' );
$role->add_cap( \'edit_crea_resi\' );
$role->add_cap( \'edit_crea_resis\' );
$role->add_cap( \'edit_others_crea_resis\' );
$role->add_cap( \'publish_crea_resis\' );
$role->add_cap( \'read_crea_resi\' );
$role->add_cap( \'read_private_crea_resis\' );
$role->add_cap( \'delete_crea_resi\' );
$role->add_cap( \'edit_published_crea_resis\' );
$role->add_cap( \'delete_published_crea_resis\' );
$role->add_cap( \'edit_crea_spedizioni\' );
$role->add_cap( \'edit_crea_spedizionis\' );
$role->add_cap( \'edit_others_crea_spedizionis\' );
$role->add_cap( \'publish_crea_spedizionis\' );
$role->add_cap( \'read_crea_spedizioni\' );
$role->add_cap( \'read_private_crea_spedizionis\' );
$role->add_cap( \'delete_crea_spedizioni\' );
$role->add_cap( \'edit_published_crea_spedizionis\' );
$role->add_cap( \'delete_published_crea_spedizionis\' );
$role->add_cap( \'edit_crea_condizioni\' );
$role->add_cap( \'edit_crea_condizionis\' );
$role->add_cap( \'edit_others_crea_condizionis\' );
$role->add_cap( \'publish_crea_condizionis\' );
$role->add_cap( \'read_crea_condizioni\' );
$role->add_cap( \'read_private_crea_condizionis\' );
$role->add_cap( \'delete_crea_condizioni\' );
$role->add_cap( \'edit_published_crea_condizionis\' );
$role->add_cap( \'delete_published_crea_condizionis\' );
}
但一切都没有改变。
感谢所有人