includes/class-foo-bar.php * CodingCush\Tweaks\Tweaks\Foo -> includes/tweaks/class-foo.php * CodingCush\Tweaks\Admin\Foo -> includes/admin/class-foo.php * * @param string $class_name Fully qualified class name. * @return void */ function cctweaks_autoload( $class_name ) { $prefix = 'CodingCush\\Tweaks\\'; if ( 0 !== strpos( $class_name, $prefix ) ) { return; } $relative = substr( $class_name, strlen( $prefix ) ); $parts = explode( '\\', $relative ); $leaf = array_pop( $parts ); $dir = CCTWEAKS_DIR . 'includes/'; if ( $parts ) { $dir .= strtolower( implode( '/', $parts ) ) . '/'; } $file_base = strtolower( str_replace( '_', '-', $leaf ) ); foreach ( array( 'class-', 'abstract-class-', 'interface-' ) as $kind ) { $file = $dir . $kind . $file_base . '.php'; if ( is_readable( $file ) ) { require_once $file; return; } } } spl_autoload_register( 'cctweaks_autoload' ); /** * Returns the single plugin instance. * * @return \CodingCush\Tweaks\Plugin */ function cctweaks() { return \CodingCush\Tweaks\Plugin::instance(); } add_action( 'plugins_loaded', 'cctweaks', 5 ); register_activation_hook( __FILE__, array( '\CodingCush\Tweaks\Plugin', 'activate' ) );