На днях один из наших читателей спросил, как массово удалить все миниатюры из записей в WordPress. Мы уже обсуждали на нашем сайте различные вопросы, связанные с миниатюрами. Мы показывали, как добавлять миниатюры в WordPress, как добавлять новые размеры изображений, как восстанавливать миниатюры, а также как добавлять многочисленные миниатюры к записям в WordPress. В данной статье мы покажем вам, как массово удалить миниатюры у записей в WordPress.
Проблема массового удаления миниатюр
К сожалению, по умолчанию вы можете удалять миниатюры только при ручном редактировании записей. Если вы имеете сотни записей с миниатюрами, то удалять их вручную будет слишком долго. Вместо этого мы будем использовать иной подход. Мы сделаем запрос к базе данных и отключим миниатюры у всех записей.
Перед тем, как приступать к реализации данного метода, отметьте для себя, что код, приведенный ниже, удалит миниатюры у всех записей на вашем сайте. Также учтите, что данный код не будет удалять какие-либо загруженные вами изображения, они по-прежнему будут доступны в медиа-библиотеке, и вы можете использовать их в любое время.
Все, что вам понадобится – это скопировать и вставить код в файл functions.php вашей темы.
global $wpdb; $wpdb->query( " DELETE FROM $wpdb->postmeta WHERE meta_key = '_thumbnail_id' " );
Готово. Как только вы сохраните файл functions.php, скрипт запустит запрос к базе данных и удалит миниатюры у всех записей.
Примечание: Удалите код сразу же после сохранения файла functions.php. Вы не сможете установить миниатюры в WordPress, пока у вас будет добавлен данный код.
Источник: wpbeginner.com
Спасибо за статью!
Неподскажете можно ли удалить все изображения одного размера, если размер был задан в function.php так:
add_image_size( ‘featured-post-image’, 80, 80, true );
Попробуйте вот этот плагин: https://wordpress.org/plugins/image-cleanup/
Спасибо. Пригодилось.
Ваш код удалил вообще все изображения! Вместо сайта теперь грузится пустое белое окно и вместо админки почему-то тоже пустота. Как исправить?
Попробуйте откат сделать. Вы неправильно вставили код в functions. Вставлять надо в конец файла и обязательно перед
Я так и вставил. В конец и перед ?>
Такое чувство, будто вообще все файлы удалились. В исходном коде страницы пусто. И судя по поиску в яндексе, я уже не первый у кого это случилось.
К сожалению по моему тарифу нет доступа к FTP. Обратился в службу поддержки хостинга, надеюсь, у них есть свежий бекап…
Странно тогда. Не слышал о таком. Посмотрю, в чем может быть проблема.
Привет Дмитрий!
Ситуация такая: стоял в админке разменр на миниатюры 150x150px, а сами миниатюры на сайте в сайдбаре размером 65x65px, но при этом если её из сайдбара картинка в 65px сохранить на рабочий стол компьютера, то она размерами 150x150px.
В настройках Я изменил и поставил вместо 150 на 65x65px. Все миниатюры сейчас стоят с размером 150x150px и показываются в окошке 65x65px.
Вопрос следующий: «Как мне массово изменить размеры старых миниатюр со 150px на 65px?»
После изменения, новые миниатюры режутся на 65x65px, а вот старые все остались с размерами 150x150px
Для старых миниатюр воспользуйтесь вот этим плагином:
https://wordpress.org/plugins/ajax-thumbnail-rebuild/
О, всё, нашёл! Вот плагин для перегенерация всех картинок после изменения размеров в админке…
https://wordpress.org/plugins/regenerate-thumbnails/
Или этим, да. Один из самых популярных, но есть минус — ест много ресурсов сервера, если изображений очень много. Потому советую первый вариант выше.
Он аналогичен тому что Я скинул? Перегенирирует миниатюры в случае изменений их размеров в настройках WP ?
Ест много ресурсов вообще или когда перегенерирует картинки?
https://wordpress.org/plugins/ajax-thumbnail-rebuild/ делает перегенерацию постепенно, одно изображение за другим, а https://wordpress.org/plugins/regenerate-thumbnails/ делает все разом, что может в итоге просто выйти за пределы доступных ресурсов со стороны хостинга.
Ясно, но Я уже всё сделал без глюков…
Ну в таком случае отлично. Просто на заметку :)
https://wordpress.org/plugins/regenerate-thumbnails/ ещё и обрабатывает кажое изображение при загрузке, https://wordpress.org/plugins/ajax-thumbnail-rebuild/ тоже так делает?
Да, это тоже происходит. Другой плюс плагина: если произойдет какой-либо обрыв во время регенерации миниатюр, придется все начинать сначала. В AJAX такого нет, они все обрабатываются постепенно, а не разом.
Уговорил, поставил…
Слушай, а что значит там пункт: «Только восстановление Новейшие фотографии» ?
Только для последних добавляемых фото.
Он не только миниатюры, он и картинки удалил к постам… Мда… Вы бы проверяли сначала код.
Все возможно. «Мопед не мой», как говорится. Проверяйте на свой страх и риск.
Удалилось все, миниатюры, картинки, огромное вам спасибо!
Код был поправлен.
Дмитрий, здравствуйте! А что, если сделать подобный запрос SQL типа DELETE FROM $wpdb->postmeta WHERE meta_key = ‘_thumbnail_id’ непосредственно в записях таблиц базы данных на хостинге, как это делается, например, для пакетного удаления ревизий постов: DELETE FROM wp_posts WHERE post_type = «revision»;? Только вместо WP подставляем свое значение, если это необходимо. Спасибо, Анатолий.
Можно, но для начала лучше сделать бэкап, чтобы ничего не потерять вследствие случайных ошибок/описок.
Добрый день! Вы сносите только записи из базы данных, смыла я в этом много не вижу. обычно люди хотят таким методом расчистить место на сервере, а для этого нужно сносить файлы с сервера. Надеюсь ответ приходит на e-mail?
В данной статье речь идет про снос миниатюр у записей, а не про снос самих записей.
А если у меня на сайте используются миниатюры в архиве новостей, рубрик… Вместо них после добавлении функции оригинал подгрузится или ничего?
Миниатюры у всех записей удалятся. В том числе и у архивных записей.
Тогда, наверно мне это не подойдёт. Такой вопрос: я сменил тему сайта и полностью отключил генерацию дополнительных размеров изображений, то есть у меня сейчас при загрузке картинки в папке на сервере есть только один файл (оригинал) и никаких миниатюр, но от прошлой темы эти миниатюры остались и они кое-где на сайте с новой темой всплывают (вот пример https://1drv.ms/u/s!AudL6PLK7wBYicsO2jdSH-hZg-dOZQ). Есть ли какая-либо возможность «перезадать» использование изображений на сайте (и в статьях и в архивах и так далее…)? То есть мне надо что бы там где сейчас показываются миниатюры, показывались бы оригиналы загруженных изображений
Если правильно понял суть задачи: https://wordpress.org/plugins/regenerate-thumbnails/
Хотя, наверно, это не совсем тот плагин. Именно такого, как вам требуется, не встречал.
Это именно то что мне надо было. Теперь в архивах все превьюшки одного размера и нет лишних изображений (причем физически тоже удалились). Спасибо
Тогда ок) Я думал, что нужно решение, которое бы подцепляло исходную картинку вместо миниатюры.
Но раз помогло, то ок.
Так в том то и дело что теперь там где раньше использовались миниатюры (например, в новостной ленте до смены темы были 320-150px) сейчас используются оригиналы (1280-720px) + миниатюры можно будет создать, если когда-нибудь они понадобятся)