> $abilities * @var array $risk_counts * @var array|null $selected_item */ defined( 'ABSPATH' ) || exit; $ability_guard_format_json = static function ( $value ): string { if ( empty( $value ) ) { return ''; } $encoded = wp_json_encode( $value, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES ); return false === $encoded ? '' : $encoded; }; $ability_guard_annotation_text = static function ( $value ): string { if ( true === $value ) { return __( 'Yes', 'ability-guard' ); } if ( false === $value ) { return __( 'No', 'ability-guard' ); } return __( 'Unknown', 'ability-guard' ); }; $ability_guard_watchlist = get_option( 'ability_guard_watchlist', array() ); $ability_guard_watchlist = is_array( $ability_guard_watchlist ) ? $ability_guard_watchlist : array(); $ability_guard_render_ability_detail = static function ( array $ability_guard_item, bool $ability_guard_is_modal = false ) use ( $ability_guard_format_json, $ability_guard_annotation_text, $ability_guard_watchlist ): void { $ability_guard_is_watched = in_array( (string) $ability_guard_item['name'], $ability_guard_watchlist, true ); $ability_guard_watch_url = wp_nonce_url( add_query_arg( array( 'page' => 'ability-guard', 'ability_name' => rawurlencode( (string) $ability_guard_item['name'] ), 'ability_guard_watch_action' => $ability_guard_is_watched ? 'unwatch' : 'watch', ), admin_url( 'admin.php' ) ), 'ability_guard_watch_' . (string) $ability_guard_item['name'] ); ?>

search_box( esc_html__( 'Search abilities', 'ability-guard' ), 'ability-guard-ability-search' ); $ability_table->display(); ?>