File: /home/dtptviut/domains/udstyrtilhund.dk/private_html/wp-content/plugins/imagify/inc/main.php
<?php
use Imagify\Dependencies\League\Container\Container;
use Imagify\Plugin;
defined( 'ABSPATH' ) || exit;
if ( file_exists( IMAGIFY_PATH . 'vendor/autoload.php' ) ) {
require_once IMAGIFY_PATH . 'vendor/autoload.php';
}
require_once IMAGIFY_PATH . 'inc/Dependencies/ActionScheduler/action-scheduler.php';
/**
* Plugin init.
*
* @since 1.0
*/
function imagify_init() {
// Nothing to do during autosave.
if ( defined( 'DOING_AUTOSAVE' ) ) {
return;
}
$providers = require_once IMAGIFY_PATH . 'config/providers.php';
$plugin = new Plugin(
new Container(),
[
'plugin_path' => IMAGIFY_PATH,
]
);
$plugin->init( $providers );
// Boot the MCP adapter after providers/subscribers are wired so that
// ConfigSubscriber and AbilitiesSubscriber are already listening before
// the adapter fires `mcp_adapter_init` / `wp_abilities_api_*` actions
// (those fire from `rest_api_init` priority 15, well after `plugins_loaded`).
$can_boot_mcp_adapter =
class_exists( \WP\MCP\Core\McpAdapter::class )
&& function_exists( 'wp_register_ability' )
&& function_exists( 'wp_get_ability' )
&& function_exists( 'wp_get_abilities' )
&& function_exists( 'wp_register_ability_category' );
if ( $can_boot_mcp_adapter ) {
\WP\MCP\Core\McpAdapter::instance();
// Boot the shared MCP OAuth library (wp-media/mcp-oauth) so Claude Desktop
// (and any other MCP client) can authenticate against the isolated
// `mcp-oauth-server` it registers. The library self-wires its own
// WordPress hooks and is enabled by default; Imagify has no custom OAuth
// code. It relies on the MCP adapter, so it only boots when the adapter can.
if ( class_exists( \WPMedia\MCP\OAuth\Bootstrap::class ) ) {
\WPMedia\MCP\OAuth\Bootstrap::instance();
}
}
}
add_action( 'plugins_loaded', 'imagify_init' );