管理后端-使用文件浏览器获取文件的URL

时间:2021-03-07 作者:Adam Gillies

我想能够得到一个html文件的URL,该文件已通过FTP上传到文件夹。

因此,如果我在WordPress的管理后端发表一篇文章,我希望有一个带有文件浏览器的自定义字段,可以列出html文件和子目录:wp内容/上载/文章/

然后,当选择一个文件时,它将记录该文件的url,以便可以在前端检索该文件。

我在谷歌和这里做了无数次搜索,似乎都找不到我要找的答案。我只是想知道它是否可以或不能这样做,所以我可以相应地计划。

如有任何见解,将不胜感激!

1 个回复
最合适的回答,由SO网友:Kudratullah 整理而成

您可以使用扫描目录中的文件glob() 然后循环抛出结果并在管理模式中列出它们(thickbox) 或者只是在管理员中显示列表metabox 在post editor中。

这是我玩的一个小片段。

/**
 * Get HTML Article Files from uploads/articles
 * Support both .htm & .html ext.
 * 
 * @return array List of html article files with path & url.
 */
function wpse_384622_get_articles() {
    $uploads   = wp_upload_dir();
    $file_path = $uploads[\'basedir\'] . \'/articles/\';
    $file_url  = $uploads[\'baseurl\'] . \'/articles/\';
    $articles  = [];
    foreach ( glob( $file_path . \'*.htm*\' ) as $path ) {
        if ( is_readable( $path ) ) {
            $file_type = wp_check_filetype( $path );
            if ( \'text/html\' === $file_type[\'type\'] ) {
                $file_list[] = [
                    \'path\' => $path,
                    \'url\'  => str_replace( $file_path, $file_url, $path ),
                ];
            }
        }
    }
    
    return $articles;
}