Массовое удаление миниатюр у записей в WordPress

Дата публикации:Октябрь 23, 2013

На днях один из наших читателей спросил, как массово удалить все миниатюры из записей в 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

Поделиться

29 комментариев

  1. Вадим says:

    Спасибо за статью!
    Неподскажете можно ли удалить все изображения одного размера, если размер был задан в function.php так:
    add_image_size( ‘featured-post-image’, 80, 80, true );

  2. Петр says:

    Ваш код удалил вообще все изображения! Вместо сайта теперь грузится пустое белое окно и вместо админки почему-то тоже пустота. Как исправить?

    • Дмитрий Алёшин says:

      Попробуйте откат сделать. Вы неправильно вставили код в functions. Вставлять надо в конец файла и обязательно перед

      ?>
  3. Петр says:

    Я так и вставил. В конец и перед ?>
    Такое чувство, будто вообще все файлы удалились. В исходном коде страницы пусто. И судя по поиску в яндексе, я уже не первый у кого это случилось.

    К сожалению по моему тарифу нет доступа к FTP. Обратился в службу поддержки хостинга, надеюсь, у них есть свежий бекап…

    • Дмитрий Алёшин says:

      Странно тогда. Не слышал о таком. Посмотрю, в чем может быть проблема.

  4. Тимур says:

    Привет Дмитрий!
    Ситуация такая: стоял в админке разменр на миниатюры 150x150px, а сами миниатюры на сайте в сайдбаре размером 65x65px, но при этом если её из сайдбара картинка в 65px сохранить на рабочий стол компьютера, то она размерами 150x150px.
    В настройках Я изменил и поставил вместо 150 на 65x65px. Все миниатюры сейчас стоят с размером 150x150px и показываются в окошке 65x65px.

    Вопрос следующий: «Как мне массово изменить размеры старых миниатюр со 150px на 65px?»

  5. Тимур says:

    О, всё, нашёл! Вот плагин для перегенерация всех картинок после изменения размеров в админке…
    https://wordpress.org/plugins/regenerate-thumbnails/

    • Дмитрий Алёшин says:

      Или этим, да. Один из самых популярных, но есть минус — ест много ресурсов сервера, если изображений очень много. Потому советую первый вариант выше.

  6. Тимур says:

    Он аналогичен тому что Я скинул? Перегенирирует миниатюры в случае изменений их размеров в настройках WP ?

  7. Тимур says:

    Ест много ресурсов вообще или когда перегенерирует картинки?

  8. Тимур says:

    Ясно, но Я уже всё сделал без глюков…

  9. Тимур says:

    https://wordpress.org/plugins/regenerate-thumbnails/ ещё и обрабатывает кажое изображение при загрузке, https://wordpress.org/plugins/ajax-thumbnail-rebuild/ тоже так делает?

    • Дмитрий Алёшин says:

      Да, это тоже происходит. Другой плюс плагина: если произойдет какой-либо обрыв во время регенерации миниатюр, придется все начинать сначала. В AJAX такого нет, они все обрабатываются постепенно, а не разом.

  10. Тимур says:

    Уговорил, поставил…

  11. Тимур says:

    Слушай, а что значит там пункт: «Только восстановление Новейшие фотографии» ?

  12. Он не только миниатюры, он и картинки удалил к постам… Мда… Вы бы проверяли сначала код.

    • Дмитрий Алёшин says:

      Все возможно. «Мопед не мой», как говорится. Проверяйте на свой страх и риск.

  13. Андрей says:

    Удалилось все, миниатюры, картинки, огромное вам спасибо!

  14. Анатолий says:

    Дмитрий, здравствуйте! А что, если сделать подобный запрос SQL типа DELETE FROM $wpdb->postmeta WHERE meta_key = ‘_thumbnail_id’ непосредственно в записях таблиц базы данных на хостинге, как это делается, например, для пакетного удаления ревизий постов: DELETE FROM wp_posts WHERE post_type = «revision»;? Только вместо WP подставляем свое значение, если это необходимо. Спасибо, Анатолий.

  15. Дмитрий says:

    Можно, но для начала лучше сделать бэкап, чтобы ничего не потерять вследствие случайных ошибок/описок.

  16. Добрый день! Вы сносите только записи из базы данных, смыла я в этом много не вижу. обычно люди хотят таким методом расчистить место на сервере, а для этого нужно сносить файлы с сервера. Надеюсь ответ приходит на e-mail?

    • Дмитрий says:

      В данной статье речь идет про снос миниатюр у записей, а не про снос самих записей.

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Получать новые комментарии по электронной почте. Вы можете подписаться без комментирования.