forked from DevinVinson/WordPress-Plugin-Boilerplate
-
Notifications
You must be signed in to change notification settings - Fork 8
/
plugin-slug.php
91 lines (78 loc) · 2.75 KB
/
plugin-slug.php
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
<?php
/**
* The plugin bootstrap file
*
* This file is read by WordPress to generate the plugin information in the plugin
* admin area. This file also includes all of the dependencies used by the plugin,
* registers the activation and deactivation functions, and defines a function
* that starts the plugin.
*
* @link http://example.com
* @since 1.0.0
* @package PHP_Package_Name
*
* @wordpress-plugin
* Plugin Name: plugin_title
* Plugin URI: http://github.com/username/plugin-slug/
* Description: This is a short description of what the plugin does. It's displayed in the WordPress admin area.
* Version: 1.0.0
* Requires PHP: 7.4
* Author: Your Name
* Author URI: http://example.com/
* License: GPL-2.0+
* License URI: http://www.gnu.org/licenses/gpl-2.0.txt
* Text Domain: plugin-slug
* Domain Path: /languages
*
* GitHub Plugin URI: https://github.com/username/plugin-slug/
* Release Asset: true
*/
namespace Plugin_Package_Name;
use BrianHenryIE\WP_Logger\Logger;
use Plugin_Package_Name\WP_Includes\Activator;
use Plugin_Package_Name\WP_Includes\Deactivator;
// If this file is called directly, abort.
if ( ! defined( 'WPINC' ) ) {
throw new \Exception( 'WordPress required but not loaded.' );
}
require_once plugin_dir_path( __FILE__ ) . 'autoload.php';
/**
* Current plugin version.
* Start at version 1.0.0 and use SemVer - https://semver.org
* Rename this for your plugin and update it as you release new versions.
*/
define( 'PLUGIN_NAME_VERSION', '1.0.0' );
define( 'PLUGIN_NAME_BASENAME', plugin_basename( __FILE__ ) );
define( 'PLUGIN_NAME_PATH', plugin_dir_path( __FILE__ ) );
define( 'PLUGIN_NAME_URL', trailingslashit( plugins_url( plugin_basename( __DIR__ ) ) ) );
register_activation_hook( __FILE__, array( Activator::class, 'activate' ) );
register_deactivation_hook( __FILE__, array( Deactivator::class, 'deactivate' ) );
/**
* Begins execution of the plugin.
*
* Since everything within the plugin is registered via hooks,
* then kicking off the plugin from this point in the file does
* not affect the page life cycle.
*
* @since 1.0.0
*/
function instantiate_plugin_snake_lower(): Plugin_Snake {
$settings = new Settings();
$logger = Logger::instance( $settings );
$plugin = new Plugin_Snake( $settings );
return $plugin;
}
// Move to api/class-functions.php
if ( is_readable( __DIR__ . '/functions.php' ) ) {
add_action(
'plugins_loaded',
function () {
require_once __DIR__ . '/functions.php';
}
);
}
/**
* The core plugin class that is used to define internationalization,
* admin-specific hooks, and frontend-facing site hooks.
*/
$GLOBALS['plugin_snake_lower'] = instantiate_plugin_snake_lower();