-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathaspire-cloud.php
More file actions
100 lines (86 loc) · 2.55 KB
/
aspire-cloud.php
File metadata and controls
100 lines (86 loc) · 2.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<?php
/**
* AspireCloud - WordPress Core Services API.
*
* @package aspire-cloud
* @author AspireCloud
* @copyright AspireCloud
* @license GPLv2
*
* Plugin Name: AspireCloud
* Plugin URI: https://aspirepress.org/
* Description: WordPress Core Services API.
* Version: 0.0.1
* Author: AspirePress
* Author URI: https://docs.aspirepress.org/aspirecloud/
* Requires at least: 5.3
* Requires PHP: 7.4
* Tested up to: 6.8.1
* License: GPLv2
* License URI: https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
* Text Domain: aspirecloud
* Domain Path: /languages
* Update URI: https://aspirepress.org
*/
// Prevent direct access
if ( ! defined( 'ABSPATH' ) ) {
die;
}
if ( ! defined( 'AC_VERSION' ) ) {
define( 'AC_VERSION', '0.0.1' );
}
if ( ! defined( 'AC_SOURCE_API_ENDPOINT' ) ) {
define( 'AC_SOURCE_API_ENDPOINT', 'https://api.wordpress.org' );
}
add_action(
'plugins_loaded',
function () {
if ( ! defined( 'AC_PATH' ) ) {
define( 'AC_PATH', __DIR__ );
}
if ( ! defined( 'AC_URL' ) ) {
define( 'AC_URL', plugin_dir_url( __FILE__ ) );
}
}
);
// Load the autoloader
require_once __DIR__ . '/includes/autoload.php';
// Initialize the plugin functionality earlier to ensure custom post types register properly
add_action( 'plugins_loaded', 'aspire_cloud_init' );
// Plugin activation and deactivation hooks// Plugin activation and deactivation hooks
register_activation_hook( __FILE__, 'aspire_cloud_activate' );
register_deactivation_hook( __FILE__, 'aspire_cloud_deactivate' );
/**
* Plugin activation callback.
*/
function aspire_cloud_activate() {
// Initialize the controllers to register rewrite rules
aspire_cloud_init();
// Flush rewrite rules on activation to ensure custom post types work
flush_rewrite_rules();
}
/**
* Plugin deactivation callback.
*/
function aspire_cloud_deactivate() {
// Flush rewrite rules on deactivation to clean up
flush_rewrite_rules();
}
/**
* Initialize AspireCloud plugin.
*/
function aspire_cloud_init() {
// Initialize the Passthrough API controller
new \AspireCloud\Controller\Passthrough();
// Initialize the Headless WordPress controller
new \AspireCloud\Controller\Headless();
// Initialize custom post types
new \AspireCloud\Model\Plugins();
new \AspireCloud\Model\Themes();
// Initialize import controllers (admin only)
if ( is_admin() ) {
new \AspireCloud\Controller\PluginImport();
new \AspireCloud\Controller\ThemeImport();
new \AspireCloud\Controller\AssetResync();
}
}