WordPress 提供了一个函数,可以返回指定目录下的文件列表,而且可以遍历子目录,支持层级多达100层。
函数原型:
list_files( string $folder = '', int $levels = 100, string[] $exclusions = array() )
参数说明:
$folder (string) (可选的) 文件夹的完整路径。默认值:“”。
$levels (int) (可选的) 要遵循的文件夹级别,默认为100(PHP循环限制)。默认值:100。
$exclusions (string[]) (可选的) 要跳过的文件夹和文件列表。默认值:array()
函数源码:
function list_files( $folder = '', $levels = 100, $exclusions = array() ) {
if ( empty( $folder ) ) {
return false;
}
$folder = trailingslashit( $folder );
if ( ! $levels ) {
return false;
}
$files = array();
$dir = @opendir( $folder );
if ( $dir ) {
while ( ( $file = readdir( $dir ) ) !== false ) {
// Skip current and parent folder links.
if ( in_array( $file, array( '.', '..' ), true ) ) {
continue;
}
// Skip hidden and excluded files.
if ( '.' === $file[0] || in_array( $file, $exclusions, true ) ) {
continue;
}
if ( is_dir( $folder . $file ) ) {
$files2 = list_files( $folder . $file, $levels - 1 );
if ( $files2 ) {
$files = array_merge( $files, $files2 );
} else {
$files[] = $folder . $file . '/';
}
} else {
$files[] = $folder . $file;
}
}
closedir( $dir );
}
return $files;
}
使用举例:
$upload_dir = wp_upload_dir();
$folder = $upload_dir['basedir']
$files = list_files( $folder, 2 );
foreach ( $files as $file ) {
if ( is_file( $file ) ) {
$filesize = size_format( filesize( $file ) );
$filename = basename( $file );
}
echo esc_html( $filename . "-" . $filesize );
}
-
WordPress函数:get_template_part 用法简介get_template_part 有什么优点
-
WordPress函数:wp_is_writable 判断路径是否可写检查文件权限的方便函数
-
WordPress函数:wp_title 主题页面标题WordPress 页面标题SEO
-
WordPress函数:wp_timezone_string 返回后台设置的时区当前设置的时区是什么
-
WordPress函数:current_time 返回当前时间在 WordPress 如何获取当前时间
-
WordPress函数:set_query_var 与 get_query_var 设置与获取查询参数一对WordPress函数
暂无评论,抢个沙发...