-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathclaude-code-wordpress-plugin.php
More file actions
93 lines (79 loc) · 2.45 KB
/
Copy pathclaude-code-wordpress-plugin.php
File metadata and controls
93 lines (79 loc) · 2.45 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
<?php
/**
* Plugin Name: Claude Code WordPress Plugin
* Plugin URI: https://github.com/vatupelage/Claude-Code-Wordpress-Plugin
* Description: Full AI-powered site management. Connect Claude to your WordPress dashboard and control everything with natural language.
* Version: 2.0.0
* Author: Vidura Atupelage
* Author URI: https://github.com/vatupelage
* License: GPLv2 or later
* License URI: https://www.gnu.org/licenses/gpl-2.0.html
* Text Domain: claude-code-wordpress-plugin
* Domain Path: /languages
* Requires at least: 6.0
* Requires PHP: 7.4
* Tested up to: 6.7
*
* @package ViduraAtupelage\ClaudeCodeWordPress
*/
namespace ViduraAtupelage\ClaudeCodeWordPress;
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
// Plugin constants.
define( 'CCB_VERSION', '2.0.0' );
define( 'CCB_PLUGIN_FILE', __FILE__ );
define( 'CCB_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
define( 'CCB_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
define( 'CCB_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
/**
* Autoloader for plugin classes.
*/
spl_autoload_register( function ( $class ) {
$prefix = 'ViduraAtupelage\\ClaudeCodeWordPress\\';
if ( strpos( $class, $prefix ) !== 0 ) {
return;
}
$relative_class = substr( $class, strlen( $prefix ) );
$parts = explode( '\\', $relative_class );
$class_name = array_pop( $parts );
// Convert class name to filename: PluginCore -> class-plugin-core.php
$filename = 'class-' . strtolower( preg_replace( '/([a-z])([A-Z])/', '$1-$2', $class_name ) ) . '.php';
// Map namespace parts to directories.
$dir_map = array(
'' => 'includes',
'Handlers' => 'handlers',
'Admin' => 'admin',
'RestApi' => 'rest-api',
);
$namespace_part = implode( '\\', $parts );
$directory = isset( $dir_map[ $namespace_part ] ) ? $dir_map[ $namespace_part ] : 'includes';
$file = CCB_PLUGIN_DIR . $directory . '/' . $filename;
if ( file_exists( $file ) ) {
require_once $file;
}
} );
/**
* Plugin activation hook.
*/
function ccb_activate() {
$core = new PluginCore();
$core->activate();
}
register_activation_hook( __FILE__, __NAMESPACE__ . '\\ccb_activate' );
/**
* Plugin deactivation hook.
*/
function ccb_deactivate() {
$core = new PluginCore();
$core->deactivate();
}
register_deactivation_hook( __FILE__, __NAMESPACE__ . '\\ccb_deactivate' );
/**
* Initialize the plugin.
*/
function ccb_init() {
$plugin = new PluginCore();
$plugin->init();
}
add_action( 'plugins_loaded', __NAMESPACE__ . '\\ccb_init' );