Skip to content

Commit 0d1caaa

Browse files
respect is single on meta
1 parent fc29602 commit 0d1caaa

1 file changed

Lines changed: 8 additions & 2 deletions

File tree

src/wp-includes/abilities/class-wp-post-type-abilities.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1219,17 +1219,23 @@ static function ( $term ): array {
12191219
$meta = get_post_meta( $post->ID );
12201220
$public_meta = array();
12211221
$allowed_meta_keys = self::get_allowed_meta_keys( $slug );
1222+
$registered_meta = array_merge(
1223+
get_registered_meta_keys( 'post' ),
1224+
get_registered_meta_keys( 'post', $slug )
1225+
);
12221226

12231227
foreach ( $meta as $key => $values ) {
12241228
// Skip protected meta keys.
12251229
if ( is_protected_meta( $key, 'post' ) ) {
12261230
continue;
12271231
}
1228-
// Only include meta keys that are registered with show_in_abilities enabled.
1232+
// Only include meta keys that are explicitly allowed.
12291233
if ( ! in_array( $key, $allowed_meta_keys, true ) ) {
12301234
continue;
12311235
}
1232-
$public_meta[ $key ] = count( $values ) === 1 ? $values[0] : $values;
1236+
// Respect the registered 'single' property for consistent behavior with get_post_meta().
1237+
$is_single = ! empty( $registered_meta[ $key ]['single'] );
1238+
$public_meta[ $key ] = $is_single ? ( $values[0] ?? null ) : $values;
12331239
}
12341240

12351241
// Use stdClass for empty value to ensure JSON encodes as {} not [].

0 commit comments

Comments
 (0)