问题在于您的自动装弹机设置。您需要将Camelcase名称空间转换为破折号,以便根据当前文件夹结构定位文件。
我添加了转换功能并更新了自动加载器功能。
在里面wp-plugin-template/autoloader.php
:
<?php
spl_autoload_register( \'autoload_function\' );
function autoload_function( $classname ) {
$class = str_replace( \'\\\\\', DIRECTORY_SEPARATOR, str_replace( \'_\', \'-\', strtolower(convert($classname)) ) );
# Create the actual file-path
$path = WP_PLUGIN_DIR . DIRECTORY_SEPARATOR . $class . \'.php\';
# Check if the file exists
if ( file_exists( $path ) ) {
# Require once on the file
require_once $path;
}
}
function convert($class){
$class = preg_replace(\'#([A-Z\\d]+)([A-Z][a-z])#\',\'\\1_\\2\', $class);
$class = preg_replace(\'#([a-z\\d])([A-Z])#\', \'\\1_\\2\', $class);
return $class;
}
您还必须将顶级命名空间更新为
WpPluginTemplate
在两者中
wp-plugin-template.php
和
admin/plugin-meta.php
因为您正在使用wp插件模板作为插件文件夹名称。
更新时间:
当自动加载器尝试查找Plugin_Meta
类,它将查看您的\\u PLUGIN\\u DIR/wp PLUGIN template/admin/PLUGIN meta。php
在里面wp-plugin-template.php
<?php
/**
* Plugin Name: WP Plugin Template
*/
# If accessed directly, exit
if ( ! defined( \'ABSPATH\' ) ) exit;
# Call the autoloader
require_once( \'autoloader.php\' );
use WpPluginTemplate\\admin\\Plugin_Meta;
new Plugin_Meta;
在中
wp-plugin-template/admin/plugin-meta.php
<?php
namespace WpPluginTemplate\\admin;
class Plugin_Meta {
public function __construct() {
add_action( \'plugins_loaded\', array($this, \'test\' ) );
}
public function test() {
echo \'It works!\';
}
}