register(); function link_checkup_build_plugin(): LinkCheckup\Plugin\Plugin { global $wpdb; if ( ! $wpdb instanceof wpdb ) { throw new RuntimeException( 'The WordPress database is missing.' ); } return LinkCheckup\Plugin\PluginBuilder::build( $wpdb, home_url(), new LinkCheckup\Plugin\PluginLocation( LINK_CHECKUP_DIR, LINK_CHECKUP_FILE, LINK_CHECKUP_VERSION ) ); } function link_checkup_activate(): void { $plugin = link_checkup_build_plugin(); $plugin->register(); $plugin->activate(); } register_activation_hook( __FILE__, 'link_checkup_activate' ); register_deactivation_hook( __FILE__, static fn() => link_checkup_build_plugin()->deactivate() ); add_action( 'plugins_loaded', static fn() => link_checkup_build_plugin()->register() );