diff --git a/src/wp-includes/capabilities.php b/src/wp-includes/capabilities.php index 42e07a471deca..d6c340c95eef0 100644 --- a/src/wp-includes/capabilities.php +++ b/src/wp-includes/capabilities.php @@ -825,8 +825,13 @@ function map_meta_cap( $cap, $user_id, ...$args ) { $caps[] = 'do_not_allow'; break; } - - $caps = map_meta_cap( "edit_{$object_subtype}", $user_id, $object_id ); + $post_type_object = get_post_type_object( $object_subtype ); + // Initialize empty array if it doesn't exist. + if ( ! isset( $post_type_object->capabilities ) ) { + $post_type_object->capabilities = array(); + } + $post_type_capabilities = get_post_type_capabilities( $post_type_object ); + $caps = map_meta_cap( $post_type_capabilities->edit_post, $user_id, $object_id ); break; default: // Handle meta capabilities for custom post types.