WP массовое удаление большого количества вложений WP ⇐ Php

Кемеровские программисты php общаются здесь
Anonymous
WP массовое удаление большого количества вложений WP

Сообщение Anonymous »

У меня есть старая установка WordPress, в которую в течение определенного периода времени импортировались повторяющиеся изображения.
В настоящее время имеется 3,8 миллиона неиспользуемых вложений изображений, которые необходимо очистить, удалив файлы, а также раздутые сообщения.
Я получаю все вложения, используя следующий запрос:

Код: Выделить всё

$attactments = $wpdb->get_results( $wpdb->prepare("SELECT a.ID AS postId FROM wp_posts AS a JOIN wp_posts AS p ON a.post_parent = p.ID WHERE a.post_type = 'attachment' AND p.post_type = 'customPost'") );
В результате у меня остается массив из 3,8 миллионов идентификаторов сообщений.
Я пытаюсь удалить их с помощью встроенной функции wp wp_delete_attachment", вот так:

Код: Выделить всё

foreach ($attactments as $attactment) {
echo "Deleting post ID: " . $attactment->postId . "\n";
wp_delete_attachment($attactment->postId, true);
}
Я запускаю его непосредственно со своего сервера, выполняя скрипт с помощью

Код: Выделить всё

wp eval-file script.php
Это займет больше времени, чем я мог себе представить, поскольку встроенная функция работает настолько медленно, что удаление одного вложения может занять целую минуту.
Есть ли способ ускорить процесс, возможно, запустив процесс очистки без встроенных функций WordPress? мне бы очень хотелось увидеть руководство или пример.

Подробнее здесь: https://stackoverflow.com/questions/791 ... ttachments

Вернуться в «Php»