register(); ( new Admin\Taxonomy() )->register(); // Frontend output layer. ( new Frontend\Assets() )->register(); ( new Frontend\Form() )->register(); ( new Shortcode\Shortcode() )->register(); ( new Blocks\Block() )->register(); // Elementor widget (registers only when Elementor is active). ( new Elementor() )->register(); // Invalidate cached queries whenever testimonials change. add_action( 'save_post_' . Admin\CPT::POST_TYPE, array( Frontend\Query::class, 'bust_cache' ) ); add_action( 'deleted_post', array( Frontend\Query::class, 'bust_cache' ) ); // Admin-only modules. if ( is_admin() ) { ( new Admin\MetaBoxes() )->register(); ( new Admin\Columns() )->register(); ( new Admin\Assets() )->register(); ( new Admin\Settings() )->register(); ( new Admin\Tools() )->register(); ( new Admin\Notices() )->register(); ( new Admin\ShortcodeHelper() )->register(); ( new Admin\DemoLibrary() )->register(); } } }