[ 'group' => 'content', 'label' => __( 'WordPress Core', 'aicom' ), 'description' => __( 'Posts, pages, custom post types, taxonomies, meta, options.', 'aicom' ), 'required' => null, 'icon' => 'dashicons-wordpress' ], 'yoast' => [ 'group' => 'content', 'label' => __( 'Yoast SEO', 'aicom' ), 'description' => __( 'SEO meta, Open Graph, Twitter Card, sitemap, breadcrumbs per post and term.', 'aicom' ), 'required' => __( 'Yoast SEO plugin', 'aicom' ), 'icon' => 'dashicons-chart-bar' ], 'seopress' => [ 'group' => 'content', 'label' => __( 'SEOPress', 'aicom' ), 'description' => __( 'SEO title/description, robots directives, canonical, Open Graph and Twitter Card meta per post and term.', 'aicom' ), 'required' => __( 'SEOPress plugin', 'aicom' ), 'icon' => 'dashicons-chart-bar' ], 'wpml' => [ 'group' => 'layout', 'label' => __( 'WPML', 'aicom' ), 'description' => __( 'Translation assignment and translation linking for posts and taxonomy terms.', 'aicom' ), 'required' => __( 'WPML plugin', 'aicom' ), 'icon' => 'dashicons-translation' ], 'media' => [ 'group' => 'media', 'label' => __( 'Media & Files', 'aicom' ), 'description' => __( 'WordPress media library, file upload/list/delete (with allowlist).', 'aicom' ), 'required' => null, 'icon' => 'dashicons-format-image' ], 'elementor' => [ 'group' => 'layout', 'label' => __( 'Elementor', 'aicom' ), 'description' => __( 'Programmatic widget editing via _elementor_data. Batch text update, backup/restore.', 'aicom' ), 'required' => __( 'Elementor plugin', 'aicom' ), 'icon' => 'dashicons-layout' ], 'ecs' => [ 'group' => 'layout', 'label' => __( 'ECS', 'aicom' ), 'description' => __( 'Ele Custom Skin — loop skins, color schemes, container layouts for Elementor.', 'aicom' ), 'required' => __( 'ECS plugin', 'aicom' ), 'icon' => 'dashicons-admin-customizer' ], 'polylang' => [ 'group' => 'layout', 'label' => __( 'Polylang', 'aicom' ), 'description' => __( 'Language assignment, translation linking for posts and terms.', 'aicom' ), 'required' => __( 'Polylang plugin', 'aicom' ), 'icon' => 'dashicons-translation' ], 'woocommerce' => [ 'group' => 'shop', 'label' => __( 'WooCommerce', 'aicom' ), 'description' => __( 'Products, categories, attributes, stock, price, settings.', 'aicom' ), 'required' => __( 'WooCommerce plugin', 'aicom' ), 'icon' => 'dashicons-cart' ], 'users' => [ 'group' => 'maintenance','label' => __( 'Users & Roles', 'aicom' ), 'description' => __( 'User management, role assignment, capabilities. Anti-lockout guards included.', 'aicom' ), 'required' => null, 'icon' => 'dashicons-admin-users' ], 'backup' => [ 'group' => 'maintenance','label' => __( 'Backup & Restore', 'aicom' ), 'description' => __( 'Post/term/Elementor backups stored in database. Per-request restore.', 'aicom' ), 'required' => null, 'icon' => 'dashicons-backup' ], 'clautron' => [ 'group' => 'agent', 'label' => __( 'Clautron', 'aicom' ), 'description' => __( 'Blueprint and capability management — catalog, primitives, compile, smoke test.', 'aicom' ), 'required' => __( 'Clautron plugin', 'aicom' ), 'icon' => 'dashicons-superhero' ], ]; $group_meta = [ 'content' => [ 'label' => __( 'Writing & Content', 'aicom' ), 'lede' => __( 'Drafting posts, editing pages, managing categories, polishing SEO metadata.', 'aicom' ) ], 'media' => [ 'label' => __( 'Media & Files', 'aicom' ), 'lede' => __( 'Image library, accessibility (alt text), and selective file system access.', 'aicom' ) ], 'layout' => [ 'label' => __( 'Pages & Layout', 'aicom' ), 'lede' => __( 'Page builders, design systems and translation tooling for layout-heavy work.', 'aicom' ) ], 'shop' => [ 'label' => __( 'Shop & Commerce', 'aicom' ), 'lede' => __( 'WooCommerce store: products, prices, stock, taxonomies.', 'aicom' ) ], 'maintenance' => [ 'label' => __( 'Site Maintenance', 'aicom' ), 'lede' => __( 'User accounts, snapshots, restore. The plumbing.', 'aicom' ) ], 'agent' => [ 'label' => __( 'AI Agent Tooling', 'aicom' ), 'lede' => __( 'Capabilities your agents create and discover — blueprints, primitives, smoke tests.', 'aicom' ) ], ]; // Pre-bucket modules by group for the rendering loop below. $by_group = []; foreach ( $module_info as $slug => $info ) { $by_group[ $info['group'] ][ $slug ] = $info; } ?>
|
'' . esc_html( $f ) . '', $flags ) ), [ 'code' => [ 'style' => [] ] ] ); ?> |