'Advanced Cache', 'icon' => 'Layers', 'description' => 'Cache 404s, search, feeds, and the REST API, plus custom rules and maintenance bypass.', 'custom_panel' => 'CacheCoveragePanel', ); } /** Container owns no settings; each tab persists through its own module. */ public function settings_schema(): array { return array(); } public function cli_commands(): array { return array( array( 'name' => 'xspeed cache-coverage', 'callback' => array( $this, 'cli_handler' ), 'shortdesc' => 'Show which cache-coverage features are available (404 / search / feed / REST / rules / maintenance).', 'ai_hint' => 'Which page types beyond normal posts/pages can be cached here (404s, search, feeds, REST, maintenance)? Use when asked why a particular kind of URL is never cached.', 'synopsis' => array(), ), ); } public function cli_handler( array $args, array $assoc ): void { $features = array( 'cache-404' => '404 Caching', 'search-cache' => 'Search Caching', 'feed-cache' => 'Feed Caching', 'rest-cache' => 'REST API Cache', 'custom-rules' => 'Custom Cache Rules', 'maintenance-cache' => 'Maintenance Mode', ); foreach ( $features as $slug => $label ) { $present = \XSpeed\Module_Registry::has( $slug ) ? 'available' : 'locked'; \WP_CLI::log( sprintf( '%-20s %-14s %s', $slug, $present, $label ) ); } } }