Intereting Posts
Получение пересечения двух терминов из двух разных пользовательских таксономий через API Предшествующие аргументы при использовании запросов Создание новых типов контента (страницы, сообщения, отзывы, тигры, о мой!) Необязательно все группы захвата в правиле перезаписи Запрос почты из многоузловой сети Как работает фильтр the_posts? Внесение изменений в заказ woocommerce перед сохранением Сообщение, специальные символы и фильтры Следующее предыдущее сообщение двух пользовательских таксономий Проблема с wp_nav_menu, отображающая пользовательскую навигацию Плагин для отображения виджета хэштега в виде виджета или короткого кода? Скрыть просмотр и просмотр из пользовательских типов сообщений Как исключить конкретное значение атрибута продукта woocommerce в функции? перестраивать / переписывать URL-адрес, чтобы сделать его удобным для SEO Просмотреть список всех вложений на сайте

Удаление изображений определенного размера

Я унаследовал сайт WordPress от предыдущего разработчика, который немного пошатнулся с размерами изображений. Когда я загружал его на сервер, я заметил, что для каждого изображения было не менее 10 изображений. Это привело к хорошему и длительному времени загрузки 9 часов.

На сайте я считаю, что на самом деле используются только 3-4 из этих размеров.

Мой вопрос в том, есть ли способ удалить все изображения определенного размера?

Яп, подобные вещи случались с нами однажды. И один из наших старших разработчиков и мой учитель, г-жа Тахмина Актер, сделал для нас следующий код. Хотя это слишком грубо, и есть некоторые устаревшие функции PHP, но это сработало для нас в то время. Хотя я не могу управлять процессом, но я могу догадаться:

ВНИМАНИЕ: Обращайтесь к нему с помощью PROPER CARE , потому что это DEVASTATING .

  1. Поскольку это шаблон страницы, поместите файл в свою тему, добавьте новую страницу и выберите шаблон там
  2. $filename = $up_dir['basedir'] . '/2013/12/'; здесь, укажите каждую папку вашего каталога /uploads/ , откуда вы хотите удалить кучу изображений
  3. Поскольку WordPress сохраняет все размеры изображения с общим форматом, например: filename-wxh.ext , поэтому мы нацеливаем параметр ширины и игнорируем часть высоты и говорим if (eregi("\-570x",$img) || eregi("\-624x",$img) || eregi("\-570x",$img) ) : сопоставить дефис и указанную ширину, а высота может быть любой, а затем перейти к следующему шагу
  4. Теперь откройте страницу WordPress один раз, и код будет выполнен, а остальная часть кода удалит файлы из каталога /uploads/YYYY/MM/

Каждая перезагрузка будет выполнять код один раз. Поэтому мы надеемся, что каждое исполнение удалит всю совокупность изображений, но если до появления других ненужных размеров изображения вы можете перейти на Шаг №3 и изменить размеры на эти конкретные размеры и снова перезагрузить страницу, чтобы запустить код для удаления.

 <?php /* Template Name: Deleting Unnecessary Images */ get_header(); ?> <section> <h1 class="entry-title page-title"><?php the_title();?></h1> <div class="entry-content"> <?php $up_dir = wp_upload_dir(); var_dump($up_dir); $filename = $up_dir['basedir'] . '/2013/12/'; $string =array(); $string1 =array(); $dir = opendir( $filename ); while ( $file = readdir( $dir ) ) { if ( eregi("\.png",$file ) || eregi("\.jpg",$file) || eregi("\.gif",$file) ) { $string[] = $file; } } while (sizeof($string) != 0){ $img = array_pop($string); if (eregi("\-570x",$img) || eregi("\-624x",$img) || eregi("\-570x",$img) ) { $string1[] = $img; } //endif } while ( sizeof($string1) != 0 ) { $img1 = array_pop( $string1 ); echo $filelink = $filename.$img1; if ( file_exists($filelink) ) { unlink($filelink); echo 'File '.$filelink.' has been deleted'; } else { echo 'Could not delete '.$filelink.', file does not exist'; } //endif } ?> </div> <!-- /.entry-content --> </section> <?php get_footer(); ?> 

PS: Но сообщество всегда будет любить, если вы сможете предоставить код для лучшего и плавного использования и поделиться с нами. 🙂

Я использую плагин для регенерации всех загруженных фотографий и удаления всех из них, не зарегистрированных на functions.php или любом другом файле, для инициализации размеров файлов. плагин называется Force Regenerate Thumbnails ( ссылка здесь ). Он сохранит память. Поэтому вам нужно отменить регистрацию строк для нежелательных размеров изображений.