Оператор require работает точно так, как и предполагалось, проблема в том, что вы загружаете. У него есть неудовлетворенные зависимости и другие не загруженные вещи.
Загрузка class-wp-filesystem-direct.php
загрузит вещи в этом файле, но не будет go искать другие вещи, которые ему нужны. WordPress не использует PHP автозагрузку
Так что некоторые заметки:
- WP Admin включает файлы в WordPress не содержат все их зависимости
- Если вы попытаетесь чтобы загрузить класс, который наследуется от класса, который не был загружен, вы получите фатальную ошибку
- Вы не должны пытаться включать файлы WP Admin в верхнюю часть вашего плагина, это может привести к проблемы при загрузке в веб-интерфейсе
- Если вы хотите работать с WP_FileSystem, вам не нужно загружать эти файлы и папки
Ваша проблема в том, что вы не можете просто включить случайные файлы в WP Admin, они имеют зависимости, которые должны быть включены заранее.
Таким образом, ваш оператор require работает нормально,