File tree Expand file tree Collapse file tree
src/wp-includes/abilities Expand file tree Collapse file tree Original file line number Diff line number Diff 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 [].
You can’t perform that action at this time.
0 commit comments