I'm building a Wordpress theme which has a WP_Filesystem
call in it:
<?php $wp_filesystem = new WP_Filesystem_Direct(null);
echo $wp_filesystem->get_contents(get_stylesheet_directory() . '/assets/images/Search_Glyph.svg'); ?>
I know that the WP_Filesystem
needs some dependencies. I load them now like this in functions.php
:
require_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-base.php';
require_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-direct.php';
I don't know if this is the correct way to load the dependencies for the filesystem. I found an other question for plugin development and after some research I made the following code, which also works:
require_once ( ABSPATH . '/wp-admin/includes/file.php' );
WP_Filesystem();
What is the best way to load the dependencies for the WP_Filesystem
? The first or the second code part? Or is there other code which I should use?
To me it seems the second, because WP_Filesystem()
is a Wordpress function, but I don't know what it does exactly.
Many thanks in advance!
I'm building a Wordpress theme which has a WP_Filesystem
call in it:
<?php $wp_filesystem = new WP_Filesystem_Direct(null);
echo $wp_filesystem->get_contents(get_stylesheet_directory() . '/assets/images/Search_Glyph.svg'); ?>
I know that the WP_Filesystem
needs some dependencies. I load them now like this in functions.php
:
require_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-base.php';
require_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-direct.php';
I don't know if this is the correct way to load the dependencies for the filesystem. I found an other question for plugin development and after some research I made the following code, which also works:
require_once ( ABSPATH . '/wp-admin/includes/file.php' );
WP_Filesystem();
What is the best way to load the dependencies for the WP_Filesystem
? The first or the second code part? Or is there other code which I should use?
To me it seems the second, because WP_Filesystem()
is a Wordpress function, but I don't know what it does exactly.
Many thanks in advance!
Share Improve this question asked Aug 5, 2020 at 10:38 ralphjsmitralphjsmit 4026 silver badges23 bronze badges1 Answer
Reset to default 6What is the best way to load the dependencies for the
WP_Filesystem
? The first or the second code part?
WP_Filesystem()
is used in conjunction with the global$wp_filesystem
variable, so if you use it, then the second code part should be used.And
WP_Filesystem()
must be called so that the global$wp_filesystem
variable is properly initialized/setup, i.e. assigned with the proper class instance or file system method (seeget_filesystem_method()
, which defaults toWP_Filesystem_Direct
).If you're not using the global
$wp_filesystem
variable, then you could just use the first one to manually load the dependencies which are loaded automatically byWP_Filesystem()
.
Example using the global $wp_filesystem
variable:
global $wp_filesystem;
// Make sure that the above variable is properly setup.
require_once ABSPATH . 'wp-admin/includes/file.php';
WP_Filesystem();
// Check whether a file/directory exists.
$exists = $wp_filesystem->exists( '/some/path/here' );
var_dump( $exists );
// Get file content.
$data = $wp_filesystem->get_contents( 'path/to/file' );
var_dump( $data );
Example using a custom variable:
require_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-base.php';
require_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-direct.php';
$filesystem = new WP_Filesystem_Direct( false );
var_dump( $filesystem->exists( '/some/path/here' ) );