在WordPress插件中,这不起作用
<?php
/**
* Plugin Name: test
* Plugin URI: _
* Description: _
* Version: 0.0.1
* Author: _
* Author URI: _
* License: GPL-2.0+
* License URI: _
* Text Domain: _
*/
// If this file is called directly, abort.
if (!defined('WPINC')) {
die;
}
require_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-direct.php';
但是这确实可行
require_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-base.php';
require_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-direct.php';
在class-wp-filesystem-direct
内部,您可以看到它是从class-wp-filesystem-base
延伸的
为什么我需要两个库?
错误是
Fatal error: Uncaught Error: Class 'WP_Filesystem_Base' not found in /home/..../domains/..../public_html/wp-admin/includes/class-wp-filesystem-direct.php:16
require语句按预期的方式工作,问题在于您要加载的内容。它具有未满足的依赖项,并且依赖于其他未加载的事物。
正在加载class-wp-filesystem-direct.php
将在该文件中加载内容,但不会搜索其所需的其他内容。 WordPress不使用PHP自动加载
所以有一些注意事项:
您的问题是您不能只在WP Admin中包含随机文件,它们具有需要预先包含的依赖项。
所以您的require语句可以正常工作,