Using WP Autoload 2 (ok)

Ví dụ 1:

wp-content/themes/twentytwentyone/functions.php

// spl autoload register
spl_autoload_register( function($classname) {
  $class      = str_replace( '\\', DIRECTORY_SEPARATOR, str_replace( '_', '-', strtolower($classname) ) );
  $classes    = dirname(__FILE__) .  DIRECTORY_SEPARATOR . 'classes' . DIRECTORY_SEPARATOR . $class . '.php';
  if( file_exists($classes) ) {
    require_once( $classes );
  }
} );
$theme = new Theme;
$model = new Models\Model;

wp-content/themes/twentytwentyone/classes/theme.php

<?php
class Theme {
  public function __construct() {
    echo "Hello Theme" . "<br/>";
  }
}

wp-content/themes/twentytwentyone/classes/models/model.php

<?php
namespace Models;
use WP_Query as WP_Query;
class Model {
  public function __construct() {
    echo "Hello Model";
  }
}

Ví dụ 2:

wp-content/themes/twentytwentyone/functions.php

// spl autoload register
spl_autoload_register( function($classname) {

  $class      = str_replace( '\\', DIRECTORY_SEPARATOR, str_replace( '_', '-', strtolower($classname) ) );
  $classes    = dirname(__FILE__) .  DIRECTORY_SEPARATOR . 'classes' . DIRECTORY_SEPARATOR . $class . '.php';

  $vendor     = str_replace( 'makeitworkpress' . DIRECTORY_SEPARATOR, '', $class );
  $vendor     = 'makeitworkpress' . DIRECTORY_SEPARATOR . preg_replace( '/\//', '/src/', $vendor, 1 ); // Replace the first slash for the src folder
  $vendors    = dirname(__FILE__) .  DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . $vendor . '.php';

  if( file_exists($classes) ) {
    require_once( $classes );
  } elseif( file_exists($vendors) ) {
    require_once( $vendors );
  }

} );
$theme = new Theme;
$model = new Models\Model;

Last updated