#php #wordpress #cron #upload #attachment
#php #wordpress #крон #загрузка #привязанность
Вопрос:
Я использую функцию для очистки загрузок, файлов, не прикрепленных ни к одному сообщению, я поместил это в cron и запустил его на 10 часов. Он удалил некоторые файлы, но снова выполняется. Обратите внимание, что загружаемая папка очень большая : 36 переходов . Имеет ли смысл, что cron занимает много времени для очистки загрузок
function clean_uploads_from_nonattachments(){ $uploads_dir = wp_upload_dir(); $search = $uploads_dir['basedir']; $replace = $uploads_dir['baseurl']; //You may want to take it by bites if your uploads is rather large (over 5 gb for example) //$uploads_dir = ( $uploads_dir['basedir'] . '/2015/' ); $uploads_dir = ( $uploads_dir['basedir']); $root = $uploads_dir; //Going through directiry recursevely $iter = new RecursiveIteratorIterator( new RecursiveDirectoryIterator($root, RecursiveDirectoryIterator::SKIP_DOTS), RecursiveIteratorIterator::SELF_FIRST, RecursiveIteratorIterator::CATCH_GET_CHILD // Ignore "Permission denied" ); foreach ($iter as $fileinfo) { //get files only if ($fileinfo-gt;isFile()) { $image = $fileinfo-gt;getPathname(); $image_url = str_replace($search, $replace, $image); //Core WP function to retrieve attachment ID by URL $attachment_id = attachment_url_to_postid($image_url); //Not found - then delete file if (!$attachment_id){ unlink($image); } else { //List of found attachments echo $attachment_id.': '.$image; } } } }