PluginProbe ʕ •ᴥ•ʔ
Custom Post Type Permalinks / 3.4.4
Custom Post Type Permalinks v3.4.4
1.2.0 1.3.0 1.3.1 1.4.0 1.5.1 1.5.2 1.5.4 2.0.0 2.0.1 2.0.2 2.1.1 2.1.2 2.1.3 2.2.0 3.0.0 3.0.1 3.1.0 3.1.1 3.1.3 3.1.4 3.1.5 3.2.0 3.2.1 3.2.2 3.3.0 3.3.1 3.3.4 3.3.5 3.4.0 3.4.0-rc.1 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.5.2 3.5.3 3.5.4 3.5.5 trunk 0.6 0.6.1 0.6.2 0.7 0.7.1 0.7.10 0.7.2 0.7.2.1 0.7.3 0.7.3.1 0.7.4 0.7.4.1 0.7.5 0.7.5.1 0.7.5.2 0.7.5.6 0.7.6 0.7.8 0.7.9 0.7.9.1 0.7.9.2 0.8 0.8.1 0.8.6 0.8.7 0.8.7.1 0.8.7.5 0.8.7.6 0.9 0.9.1 0.9.2.1 0.9.3.1 0.9.3.2 0.9.3.3 0.9.5 0.9.5.1 0.9.5.2 0.9.5.3 0.9.5.4 0.9.5.6 0.9.6 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.1.0
custom-post-type-permalinks / CPTP.php
custom-post-type-permalinks Last commit date
.github 5 years ago CPTP 5 years ago assets 5 years ago language 5 years ago .distignore 5 years ago .phpcs.xml.dist 5 years ago CONTRIBUTING.md 9 years ago CPTP.php 5 years ago LICENSE 9 years ago custom-post-type-permalinks.php 5 years ago readme.txt 5 years ago screenshot-1.png 5 years ago
CPTP.php
141 lines
1 <?php
2 /**
3 * CPTP core.
4 *
5 * @package Custom_Post_Type_Permalinks
6 */
7
8 /**
9 * CPTP
10 *
11 * @since 0.9.4
12 * */
13 class CPTP {
14
15 /**
16 * CPTP instance.
17 *
18 * @var CPTP
19 */
20 private static $_instance;
21
22 /**
23 * Module instances.
24 *
25 * @var CPTP_Module[]
26 */
27 public $modules;
28
29 /**
30 * CPTP constructor.
31 */
32 private function __construct() {
33 $this->load_modules();
34 }
35
36 /**
37 *
38 * Load CPTP_Modules.
39 *
40 * @since 0.9.5
41 */
42 private function load_modules() {
43 $this->set_module( 'setting', new CPTP_Module_Setting() );
44 $this->set_module( 'rewrite', new CPTP_Module_Rewrite() );
45 $this->set_module( 'admin', new CPTP_Module_Admin() );
46 $this->set_module( 'option', new CPTP_Module_Option() );
47 $this->set_module( 'permalink', new CPTP_Module_Permalink() );
48 $this->set_module( 'get_archives', new CPTP_Module_GetArchives() );
49 $this->set_module( 'flush_rules', new CPTP_Module_FlushRules() );
50
51 do_action( 'CPTP_load_modules', $this );
52 do_action( 'cptp_load_modules', $this );
53 }
54
55 /**
56 * Initialize modules.
57 *
58 * @since 2.0.0
59 */
60 private function init_modules() {
61 foreach ( $this->modules as $module ) {
62 $module->init();
63 }
64
65 do_action( 'CPTP_registered_modules', $this );
66 do_action( 'cptp_registered_modules', $this );
67 }
68
69 /**
70 * Set module instance.
71 *
72 * @param String $name Module Name.
73 * @param CPTP_Module $module Module instance.
74 *
75 * @since 1.5.0
76 */
77 public function set_module( $name, CPTP_Module $module ) {
78 $module = apply_filters( "CPTP_set_{$name}_module", $module );
79 $module = apply_filters( "cptp_set_{$name}_module", $module );
80 if ( $module instanceof CPTP_Module ) {
81 $this->modules[ $name ] = $module;
82 }
83 }
84
85 /**
86 * Init
87 *
88 * Fire Module::add_hook
89 *
90 * @since 0.9.5
91 */
92 public function init() {
93 $this->init_modules();
94 do_action( 'CPTP_init' );
95 do_action( 'cptp_init' );
96 }
97
98 /**
99 * Singleton
100 *
101 * @static
102 */
103 public static function get_instance() {
104 if ( ! isset( self::$_instance ) ) {
105 self::$_instance = new CPTP();
106 }
107
108 return self::$_instance;
109 }
110
111
112 /**
113 * Activation Hooks
114 * This function will browse initialized modules and execute their activation_hook methods.
115 * It will also set the uninstall_hook to the cptp_uninstall function which behaves the same way as this one.
116 *
117 * @since 2.0.0
118 */
119 public function activate() {
120 foreach ( $this->modules as $module ) {
121 $module->activation_hook();
122 }
123
124 register_uninstall_hook( CPTP_PLUGIN_FILE, array( __CLASS__, 'uninstall' ) );
125 }
126
127 /**
128 * Uninstall Hooks
129 * This function will browse initialized modules and execute their uninstall_hook methods.
130 *
131 * @since 2.0.0
132 */
133 public static function uninstall() {
134 $cptp = CPTP::get_instance();
135
136 foreach ( $cptp->modules as $module ) {
137 $module->uninstall_hook();
138 }
139 }
140 }
141