*/ public static function summary( $ability ): array { $meta = self::meta( $ability ); return array( 'name' => (string) $ability->get_name(), 'label' => (string) $ability->get_label(), 'description' => (string) $ability->get_description(), 'category' => method_exists( $ability, 'get_category' ) ? (string) $ability->get_category() : '', 'annotations' => isset( $meta['annotations'] ) && is_array( $meta['annotations'] ) ? Redactor::redact( $meta['annotations'] ) : null, 'show_in_rest' => ! empty( $meta['show_in_rest'] ), ); } /** * The ability's meta as an array. * * @param object $ability WP_Ability. * @return array */ public static function meta( $ability ): array { $meta = $ability->get_meta(); return is_array( $meta ) ? $meta : array(); } /** * Output schema for one ability summary. * * @return array */ public static function summary_schema(): array { $string = array( 'type' => 'string' ); return array( 'name' => $string, 'label' => $string, 'description' => $string, 'category' => $string, 'annotations' => array( 'type' => array( 'object', 'null' ), 'description' => 'Hints such as readonly, destructive and idempotent, as the ability declares them.', ), 'show_in_rest' => array( 'type' => 'boolean' ), ); } }