Não é possível publicar tipo de postagem personalizada – “Você não tem permissão para editar esta publicação”.

Ei, pessoal, criei esse tipo de publicação, mas quando eu clicar no botão de publicação, recebo a mensagem:

Você não tem permissão para editar esta publicação.

Eu fiz algo errado no meu código para impedir que alguém publique uma postagem deste tipo personalizado? Aqui está o código:

 'Images', 'singlular_name' => 'Image', 'add_new' => 'Add New', 'add_new_item' => 'Add New Image', 'edit_item' => 'Edit Image', 'new_item' => 'New Image', 'all_items' => 'All Images', 'view_item' => 'View Image', 'search_items' => 'Search Images', 'not_found' => 'No Images found', 'not_found_in_trash'=> 'No Images found in Trash', 'parent_item_colon' => '', 'menu_name' => 'Images' ); $args = array( 'labels' => $labels, 'public' => true, 'exclude_from_search' => false, 'publicly_queryable' => true, 'show_ui' => true, 'show_in_nav_menus' => true, 'show_in_menu' => true, 'menu_position' => 1, //'menu_icon' => 'icon32', 'capability_type' => 'post', 'map_meta_cap' => false, 'hierarchical' => false, 'supports' => array('title', 'editor', 'thumbnail', 'custom-fields'), 'register_meta_box_cb' => 'add_meta_box_callback', 'has_archive' => true, 'query_var' => true, 'can_export' => true ); register_post_type('image_post', $args); } add_action('init', 'image_post_type'); function add_meta_box_callback(){ add_meta_box('image_variations', 'Image Variations', 'image_variations_callback', 'image_post', 'side', 'low'); } function image_variations_callback(){ } function add_image_post_type_to_query($query){ if(is_home() && $query->is_main_query()){ $query->set( 'post_type', array('post', 'page', 'image_post') ); } return $query; } ?> 

desde já, obrigado

Solutions Collecting From Web of "Não é possível publicar tipo de postagem personalizada – “Você não tem permissão para editar esta publicação”."

O padrão para map_meta_cap na verdade não é falso se você também está passando em um tipo de capability_type de post ou page , que você é.

O código a seguir está no post.php do WordPress Core :

 // Back compat with quirky handling in version 3.0. #14122 if ( empty( $args->capabilities ) && null === $args->map_meta_cap && in_array( $args->capability_type, array( 'post', 'page' ) ) ) $args->map_meta_cap = true; 

Então, configurando-o explicitamente como falso , você estava dizendo para não usar os resources de uma post ou page .

Ao não configurá-lo, você permitiu que o código acima configurasse isso como verdadeiro .

Codifique apenas algumas linhas para baixo , get_post_type_capabilities usa esse sinalizador para usar ou não os resources de postagem padrão que lhe dá as permissions que você está procurando.

O CPT agora está funcionando. Não sei por que está funcionando, mas é e aqui está o que aconteceu comigo para que ele comece a funcionar. Bem, eu vi a “resposta” da @ hawkidoki e como ele não usou variables, então eu reformatou o meu para parecer o mesmo (abaixo) e correi e não funcionou até que eu comentei map_meta_cap :

 < ?php function image_post_type(){ register_post_type('image_post', array( 'labels' => array( 'name' => 'Images', 'singlular_name' => 'Image', 'add_new' => 'Add New', 'add_new_item' => 'Add New Image', 'edit_item' => 'Edit Image', 'new_item' => 'New Image', 'all_items' => 'All Images', 'view_item' => 'View Image', 'search_items' => 'Search Images', 'not_found' => 'No Images found', 'not_found_in_trash'=> 'No Images found in Trash', 'parent_item_colon' => '', 'menu_name' => 'Images' ), 'public' => true, 'exclude_from_search' => false, 'publicly_queryable' => true, 'show_ui' => true, 'show_in_nav_menus' => true, 'show_in_menu' => true, 'menu_position' => 1, //'menu_icon' => 'icon32', 'capability_type' => 'post', //'map_meta_cap' => false, 'hierarchical' => false, 'supports' => array('title', 'editor', 'thumbnail', 'custom-fields'), 'register_meta_box_cb' => 'add_meta_box_callback', 'has_archive' => true, 'query_var' => true, 'can_export' => true ) ); } add_action('init', 'image_post_type'); function add_meta_box_callback(){ add_meta_box('image_variations', 'Image Variations', 'image_variations_callback', 'image_post', 'side', 'low'); } function image_variations_callback(){ } function add_image_post_type_to_query($query){ if(is_home() && $query->is_main_query()){ $query->set( 'post_type', array('post', 'page', 'image_post') ); } return $query; } ?> 

Ao ver isso, voltei ao meu antigo código e mapa_meta_cap comcompanhado novamente para obter a mesma mensagem “Você não está permitido”. Ao comentar novamente, embora funcione bem e meu código de trabalho final é:

 < ?php function image_post_type(){ $labels = array( 'name' => 'Images', 'singlular_name' => 'Image', 'add_new' => 'Add New', 'add_new_item' => 'Add New Image', 'edit_item' => 'Edit Image', 'new_item' => 'New Image', 'all_items' => 'All Images', 'view_item' => 'View Image', 'search_items' => 'Search Images', 'not_found' => 'No Images found', 'not_found_in_trash'=> 'No Images found in Trash', 'parent_item_colon' => '', 'menu_name' => 'Images' ); $args = array( 'labels' => $labels, 'public' => true, 'exclude_from_search' => false, 'publicly_queryable' => true, 'show_ui' => true, 'show_in_nav_menus' => true, 'show_in_menu' => true, 'menu_position' => 1, //'menu_icon' => 'icon32', 'capability_type' => 'post', //'map_meta_cap' => false, 'hierarchical' => false, 'supports' => array('title', 'editor', 'thumbnail', 'custom-fields'), 'register_meta_box_cb' => 'add_meta_box_callback', 'has_archive' => true, 'query_var' => true, 'can_export' => true ); register_post_type('image_post', $args); } add_action('init', 'image_post_type'); function add_meta_box_callback(){ add_meta_box('image_variations', 'Image Variations', 'image_variations_callback', 'image_post', 'side', 'low'); } function image_variations_callback(){ } function add_image_post_type_to_query($query){ if(is_home() && $query->is_main_query()){ $query->set( 'post_type', array('post', 'page', 'image_post') ); } return $query; } ?> 

Porquê? Como Map_meta_cap pode estar causando esse problema quando está configurado como falso? Falso é suposto ser o valor padrão.

Obrigado por toda sua ajuda pessoal, especialmente você @vancoder!

Aqui está uma declaração working_post_type de trabalho. Tente modificá-lo para atender às suas necessidades 🙂

 function custom_post_example() { register_post_type( 'my_post_type', array('labels' => array( 'name' => 'my_post_type', 'singular_name' => 'my_post_type', 'all_items' => 'All my_post_type', 'add_new' => 'Add New my_post_type', 'add_new_item' => 'Add New my_post_type', 'edit' => 'Edit', 'edit_item' => 'Edit Task', 'new_item' => 'New Task', 'view_item' => 'View Task', 'search_items' => 'Search Task', 'not_found' => 'Nothing found in the Database.', 'not_found_in_trash' => 'Nothing found in Trash', 'parent_item_colon' => 'Parent Task Category' ), 'description' => 'This is the my_post_type description', 'public' => true, 'publicly_queryable' => true, 'exclude_from_search' => false, 'show_ui' => true, 'query_var' => true, 'menu_position' => 5, 'menu_icon' => get_stylesheet_directory_uri() . '......./.......png', 'rewrite' => array( 'slug' => 'my_post_type', 'with_front' => true ), 'has_archive' => true, 'capability_type' => 'page', 'hierarchical' => true, 'supports' => array( 'title', 'author', 'page-attributes') ) ); } add_action( 'init', 'custom_post_example'); 

Boa sorte, senhor!

Editar: Mais informações aqui – http://codex.wordpress.org/Function_Reference/register_post_type