Recursos de postagem personalizados para function de usuário personalizada

Olá a todos, eu segui muitos guias ao redor, mas meu usuário de function personalizado ainda não conseguiu gerenciar meu tipo de postagem personalizado … Agradecemos antecipadamente.

Eu criei um tipo de postagem personalizado e uma function de usuário personalizada, e eu queria adicionar a capacidade de gerenciar o tipo de publicação custum para esta nova function personalizada. Eu coloquei todos dentro dos arquivos do modelo do plug-in WP.

Código de plugin de postagem personalizado aqui:


 / * Criando uma function para criar o nosso CPT * /

 function custom_post_type () {

 // Definir etiquetas UI para tipo de postagem personalizado
     $ labels = array (
         'name' => _x ('Riparazioni', 'Post Type General Name', 'porto-child'),
         'singular_name' => _x ('Riparazione', 'Post Type Singular Name', 'porto-child'),
         'menu_name' => __ ('Riparazioni', 'porto-filho'),
         'parent_item_colon' => __ ('Riparazione parente', 'porto-child'),
         'all_items' => __ ('Tutte le Riparazioni', 'porto-child'),
         'view_item' => __ ('Visiona Riparazione', 'porto-child'),
         'add_new_item' => __ ('Aggiungi nuova riparazione', 'porto-child'),
         'add_new' => __ ('Aggiungi nuova', 'porto-child'),
         'edit_item' => __ ('Modifica riparazione', 'porto-child'),
         'update_item' => __ ('Aggiorna riparazione', 'porto-child'),
         'search_items' => __ ('Cerca riparazione', 'porto-child'),
         'not_found' => __ ('Non trovato', 'porto-child'),
         'not_found_in_trash' => __ ('Nessuna riparazione trovata nel cestino', 'porto-child'),
     );

     $ capabilities = array (
         'publish_posts' => 'publish_riparazioni',
         'edit_posts' => 'edit_riparazioni',
         'edit_others_posts' => 'edit_others_riparazioni',
         'delete_posts' => 'delete_riparazioni',
         'delete_others_posts' => 'delete_others_riparazioni',
         'read_private_posts' => 'read_private_riparazioni',
         'edit_post' => 'edit_riparazione',
         'delete_post' => 'delete_priparazione',
         'read_post' => 'read_riparazione',
     );   


 // Defina outras opções para o tipo de postagem personalizado

     $ args = array (
         'label' => __ ('riparazioni', 'porto-child'),
         'descrição' => __ ('Gestione riparazioni', 'porto-filho'),
         'labels' => $ labels,
         // Possui suporte de CPT no editor de postagem
         'suporta' => matriz ('título', 'editor', 'excerto', 'autor', 'miniatura', 'comentários', 'revisões', 'campos personalizados'),
         // Você pode associar este CPT a uma taxonomia ou taxonomia personalizada. 
         'taxonomias' => matriz ('gêneros'),
         / * Um CPT hierárquico é como páginas e pode ter itens pai e filho.  Um CPT não hierárquico é como Posts.  * / 
         'hierárquico' => falso,
         'público' => verdadeiro,
         'show_ui' => true,
         'show_in_menu' => true,
         'show_in_nav_menus' => true,
         'show_in_admin_bar' => true,
         'menu_position' => 5,
         'can_export' => true,
         'has_archive' => true,
         'exclude_from_search' => false,
         'publicly_queryable' => true,
         'capacidade_type' => 'página',
         'capacidades' => $ capacidades,
         'map_meta_cap' => true,
     );

     // Registar seu tipo de postagem personalizado
     register_post_type ('riparazioni', $ args);

 }

 / * Acelhe a ação 'init' para que a function * Contando nosso registro de postagem não seja * executada desnecessariamente.  * /

 add_action ('init', 'custom_post_type', 0);

 // ADICIONAR métricas de meta personalizadas --- Dario

 add_filter ('map_meta_cap', 'my_map_meta_cap', 10, 2);

 function my_map_meta_cap ($ caps, $ cap, $ user_id, $ args) {

     / * Se editar, excluir ou ler um riparazioni, obtenha o object de postagem e postagem.  * /
     se ('edit_riparazioni' == $ cap || 'delete_riparazioni' == $ cap || 'read_riparazioni' == $ cap) {
         $ post = get_post ($ args [0]);
         $ post_type = get_post_type_object ($ post-> post_type);

         / * Defina uma matriz vazia para os limites.  * /
         $ caps = array ();
     }

     / * Se editar um riparazioni, atribua a capacidade necessária.  * /
     se ('edit_riparazioni' == $ cap) {
         se ($ user_id == $ post-> post_author)
             $ caps [] = $ post_type-> cap-> edit_posts;
         outro
             $ caps [] = $ post_type-> cap-> edit_others_posts;
     }

     / * Se apagar um riparazioni, atribua a capacidade necessária.  * /
     elseif ('delete_riparazione' == $ cap) {
         se ($ user_id == $ post-> post_author)
             $ caps [] = $ post_type-> cap-> delete_posts;
         outro
             $ caps [] = $ post_type-> cap-> delete_others_posts;
     }

     / * Se estiver lendo um riparazioni privado, atribua a capacidade necessária.  * /
     elseif ('read_riparazioni' == $ cap) {

         se ('privado'! = $ post-> post_status)
             $ caps [] = 'read';
         elseif ($ user_id == $ post-> post_author)
             $ caps [] = 'read';
         outro
             $ caps [] = $ post_type-> cap-> read_private_posts;
     }

     / * Devolver os resources exigidos pelo usuário.  * /
     retornar $ caps;
 }


 // Rendo il post type Riparazioni privato === Dario
 // rendo il post type privato di default
 function force_type_private ($ post)
 {
 se ($ post ['post_type']! = 'riparazioni' || $ post ['post_status'] == 'lixo')
 retornar $ post;
 $ post ['post_status'] = 'private';
 retornar $ post;
 }
 add_filter ('wp_insert_post_data', 'force_type_private');

 function add_theme_caps () {
     // Obtém o papel de administrador
     $ admins = get_role ('administrador');

     $ admins-> add_cap ('edit_riparazione'); 
     $ admins-> add_cap ('edit_riparazioni'); 
     $ admins-> add_cap ('edit_other_riparazioni'); 
     $ admins-> add_cap ('publish_riparazioni'); 
     $ admins-> add_cap ('read_riparazione'); 
     $ admins-> add_cap ('read_private_riparazioni'); 
     $ admins-> add_cap ('delete_riparazione');

     $ super_editor = get_role ('super_editor');

     $ super_editor-> add_cap ('edit_riparazione'); 
     $ super_editor-> add_cap ('edit_riparazioni'); 
     $ super_editor-> add_cap ('edit_other_riparazioni'); 
     $ super_editor-> add_cap ('publish_riparazioni'); 
     $ super_editor-> add_cap ('read_riparazione'); 
     $ super_editor-> add_cap ('read_private_riparazioni'); 
     $ super_editor-> add_cap ('delete_riparazione'); 
 }
 add_action ('admin_init', 'register_activation_hook');

 ?>

código de plugin de function personalizado aqui:

 // aggiungo un nuovo ruolo personalizzato agli utenti --- Dario

 // Adicionar uma function de usuário personalizada

 $ result = add_role ('super_editor', __ ('Super Editore'),

     matriz (

     'read' => true, // true permite essa capacidade
     'edit_posts' => true, // Permite ao usuário editar suas próprias postagens
     'edit_pages' => false,
     'edit_others_posts' => true, // Permite ao usuário editar outras postagens não apenas as suas próprias
     'create_posts' => true, // Permite que o usuário crie novas postagens
     'manage_categories' => true, // Permite que o usuário gerencie categorias de postagem
     'publish_posts' => true, // Permite que o usuário publique, caso contrário as postagens permanecem no modo rascunho

     'public_riparazioni' => true,
     'edit_riparazioni' => true,
     'edit_others_riparazioni' => true,
     'delete_riparazioni' => true,
     'delete_others_riparazioni' => true,
     'read_private_riparazioni' => true,
     'edit_riparazione' => true,
     'delete_riparazione' => true,
     'read_riparazione' => true,
     )
 );

 function add_super_editor_caps () {
     // Obtém o papel super do editor --- aggangia il ruolo di super editore --- Dario
     $ super_editor = get_role ('super_editor');


     $ super_editor-> add_cap ('moderate_comments');
     $ super_editor-> add_cap ('manage_categories');
     $ super_editor-> add_cap ('manage_links');
     $ super_editor-> add_cap ('upload_files');

     // tente administrar o usuário (excluir, adicionar, editar) ad admin role --- Vorrei far gestien gli utenti come fosse un admin --- Dario

     $ super_editor-> add_cap ('create_users');
     $ super_editor-> add_cap ('edit_users');
     // $ super_editor-> add_cap ('delete_users');
     $ super_editor-> add_cap ('list_users');
     // $ super_editor-> add_cap ('remove_users');
     $ super_editor-> add_cap ('promote_users');

     $ super_editor-> add_cap ('edit_riparazione'); 
     $ super_editor-> add_cap ('edit_riparazioni'); 
     $ super_editor-> add_cap ('edit_other_riparazioni'); 
     $ super_editor-> add_cap ('publish_riparazioni'); 
     $ super_editor-> add_cap ('read_riparazioni'); 
     $ super_editor-> add_cap ('read_private_riparazioni'); 
     $ super_editor-> add_cap ('delete_riparazioni'); 
 }
 add_action ('admin_init', 'add_super_editor_caps');



 // function a prova de falhas para remover o papel e liberar o database WP --- funzione per pulire il db dal ruolo creato --- Dario
 // remove_role ('super_editor'); 
 ?>

Solutions Collecting From Web of "Recursos de postagem personalizados para function de usuário personalizada"