自动删除媒体库内特定文件夹中的内容

时间:2021-07-10 作者:popstartps2

我正在寻找自动删除上传/月份文件夹中特定文件夹(folderx)中的图像(jpg、gif、png-一般内容)的解决方案(针对未来folderx的自定义-旧folderx已经手动删除)。folderx中的这些图像与任何帖子都没有关系。它们可以在x天内删除。或x小时。

上载

O7(月)folderx(要删除folderx内的图像)folderx(要删除folderx内的图像)O8(月)folderx(要删除folderx内的图像)folderx(要删除folderx内的图像)等

1 个回复
SO网友:Jos Faber

首先,我会自动删除文件、数据库条目以及您认为的内容。太冒险了。但是,我创建了一次,它将文件移动到“垃圾”文件夹。这将帮助您实现您的目标:

/**
 * Autodelete folders in upload dir
 */
add_action(\'admin_init\', function () {

    $time_to_live = 60 * 60 * 8; // 8 hours
    
    $folders_to_clean = [
        "2021/06",
        "2021/07",
    ];

    // dirs
    $upload_dir = wp_upload_dir();
    $upload_base = $upload_dir["basedir"];
    // loop through folders to clean
    foreach ($folders_to_clean as $folder) {
        // set specific trash path
        $trash_path = "{$upload_base}/_TRASH/{$folder}";
        // create trash path
        mkdir($trash_path, 0777, true);
        $folder_path = "{$upload_base}/{$folder}";
        // loop through files in dir
        if (is_dir($folder_path) && $handle = opendir($folder_path)) {
            // valid file?
            while (false !== ($file = readdir($handle))) {
                $file_path = "{$folder_path}/${file}";
                // older than set time?
                if (is_file($file_path) && filemtime($file_path) > $time_to_live) {
                    // move to trash
                    rename($file_path, "{$trash_path}/$file");
                }
            }
            closedir($handle);
        }
    }
});
如果确实要立即删除它们,只需切换rename 功能unlink($file_path). 但请注意,总有一天这会让你难受的!;-)

相关推荐

og:image functions.php

我有自定义模板,我需要得到og:在标题图像url。类映像在DB wp\\u postmeta-meta\\u value中的位置我尝试使用函数。phpfunction getOgImage() { global $wpdb; $ogimage = $wpdb->get_results(\"SELECT DISTINCT post_id FROM wp_postmeta WHERE meta_value\", OBJECT); echo