Der benutzerdefinierte Beitragstyp kann nicht veröffentlicht werden – “Sie dürfen diesen Beitrag nicht bearbeiten.”

Hey Leute, ich habe diesen Beitragstyp erstellt, aber wenn ich auf die Schaltfläche zum Veröffentlichen klicke, erhalte ich die Nachricht:

Sie dürfen diesen Beitrag nicht bearbeiten.

Habe ich in meinem Code etwas falsch gemacht, um zu verhindern, dass jemand einen Beitrag dieses benutzerdefinierten Typs veröffentlicht? Hier ist der Code:

 '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; } ?> 

Danke im Voraus

Solutions Collecting From Web of "Der benutzerdefinierte Beitragstyp kann nicht veröffentlicht werden – “Sie dürfen diesen Beitrag nicht bearbeiten.”"

Der Standardwert für map_meta_cap ist eigentlich nicht false, wenn Sie auch einen capability_type von post oder page .

Der folgende Code befindet sich in der post.php von 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; 

Indem Sie es explizit auf false gesetzt haben , haben Sie ihm gesagt, dass es die Möglichkeiten eines post oder einer page nicht nutzen soll.

Indem Sie es überhaupt nicht gesetzt haben, haben Sie dem obigen Code erlaubt, es auf wahr zu setzen .

Code get_post_type_capabilities verwendet dieses Flag, um anzugeben, ob die standardmäßigen Posts-functionen verwendet werden sollen, die Ihnen die gewünschten Berechtigungen bieten.

Der CPT funktioniert jetzt. Ich bin mir nicht sicher, warum es funktioniert, aber es ist und hier ist, was passiert ist, damit es funktioniert. Nun, ich sah @ Hawkidokis “Antwort” und wie er keine Variablen verwendete, also formatierte ich meine, um gleich (unten) auszusehen und lief es und es funktionierte nicht, bis ich map_meta_cap auskommentierte :

 < ?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; } ?> 

Als ich dies sah, kehrte ich wieder zu meinem alten Code und unkommentiertem map_meta_cap zurück, um dieselbe “Du bist nicht erlaubt” -Nachricht zu erhalten. Nachdem ich es wieder kommentiert habe, funktioniert es gut und mein endgültiger Arbeitscode ist:

 < ?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; } ?> 

Warum allerdings? Wie könnte map_meta_cap dieses Problem verursachen, wenn es auf false gesetzt ist? False ist der Standardwert.

Danke für all eure Hilfe, besonders euch @vancoder!

Hier ist eine funktionierende custom_post_type-Deklaration. Versuchen Sie, es an Ihre Bedürfnisse anzupassen 🙂

 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'); 

Viel Glück, Sir!

Bearbeiten: Weitere Informationen hier – http://codex.wordpress.org/Function_Reference/register_post_type