我想问题是你用的是relative path 在里面autoload.php
内部src/
子文件夹,
例如,尝试修改src/autoload.php
使用absolute paths 而是:
\\spl_autoload_register( function( $class )
{
$dir = plugin_dir_path( __FILE__ );
$file = str_replace( \'\\\\\', \'/\', $class ) . \'.php\';
$path = $dir . $file;
if( file_exists( $path ) )
require_once $path;
} );
我们在此处添加
file_exists
特定于插件类。
更新/sample-plugin/sample-plugin.php
文件:
<?php
/**
* Plugin Name: Sample Plugin
*/
namespace SamplePlugin;
require_once __DIR__ . \'/src/autoload.php\';
// require_once \'src/autoload.php\';
$shortcode = new ShortCode();
这是
/simple-plugin/src/SamplePlugin/Shortcode.php
文件:
<?php
/**
* Class Shortcode
*/
namespace SamplePlugin;
class Shortcode
{
public function __construct()
{
print \'DEBUG: Greetings from the Shortcode instance!\';
}
}
你也可以看看
Composer 生成
vendor/autoload.php
文件,其中包括:
require __DIR__ . \'/vendor/autoload.php\';