Новости

Как правильно применять в JavaScript асинхронные функции: примеры работы с ES 2017
От автора: возможность писать на JavaScript асинхронные функции является важным обновлением в ES2017. Что такое асинхронные функции? Асинхронные функции — это функции, которые возвращают promise. Мы

WordPress JavaScript — как правильно подключить файл скрипта к шаблону сайта
Использование в шаблонах WordPress JavaScript скриптов давно стало обычным делом. Их подключение возможно несколькими способами, начиная с классического варианта с использование голого HTML. Но чтобы все

Как исправить JavaScript error "ВКонтакте"? Что делать при ошибках JavaScript в "ВКонтакте"?
"ВКонтакте" - это на сегодняшний день самый удобный русскоязычный ресурс, который является не только популярнейшей социальной сетью, но и сервисом для прослушивания аудиозаписей и просмотра видео. Здесь

Правильное использование Tor Browser
Tor Browser полностью анонимен – Миф или реальность? Многие считают, что Tor — это полностью анонимное и безопасное средство для интернет-серфинга, которое не дает никому возможность контролировать то,

Javascript error object is not a function вконтакте как исправить
"ВКонтакте" - это на сегодняшний день самый удобный русскоязычный ресурс, который является не только популярнейшей социальной сетью, но и сервисом для прослушивания аудиозаписей и просмотра видео. Здесь

Как исправить ошибку javascript error вконтакте
На сегодняшний день «Вконтакте» является наиболее удобным русскоязычным ресурсом, который представляет собой не только крупнейшую социальной сеть, но и сервис для просмотра видео и прослушивания аудиозаписей.

Что такое JavaScript и для чего он используется?
Подробности декабря 10, 2015 Просмотров: 20225 В интернете миллионы веб-страниц,

Практика javascript синтаксис написания
Javascript — это язык программирования, который активно используется для построения динамических веб страниц. Собственно с этой целью он и был изобретен. У нашего с вами языка еще есть такое интересное

JavaScript учебник
Код функций в JavaScript начинает выполнение после их вызова. Функции являются одним из наиболее важных строительных блоков кода в JavaScript. Функции состоят из набора команд и обычно выполняют

Рекомендации решившим начать изучать JavaScript
Если вы решили начать изучать JavaScript , то эта статья для вас. Надеюсь, что её прочтение избавит вас в будущем от множества ошибок и сделает его изучения более простым, быстрым и эффективным. В статье

Пересоздать кминиатюры с помощи WP-CLI в WordPress

Опубликовано: 01.09.2018

Для сайтов с большим количеством контента, каждый редизайн обычно превращается в целое большое дело, потому как размеры и пропорции изображений использованных в постах часто меняются, а как известно в WordPress изображения создаются только при загрузке и после хранятся на диске в виде файлов фиксированного размера.

С другими CMS ситуация не всегда лучше например Drupal 7 при отсутствии необходимого размера изображения пытается создать его что называется «на лету» и записать результат в виде метаинформации в базу, это удобно когда изображений мало, сайт не посещаемый и не используется какое либо агрессивное кеширование, в противном случае либо кеш не даст картинка создаться, либо поток посетителей просто положит сервер, множеством запросов создание новых изображений. А в моем случае нужно было пересоздать около 150 000 изображений на не очень мощном сервере при этом сайт был очень даже посещаемый.

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

Поэтому я решил искать промышленное решение.

Вспомнил о модуле Photon плагина Jetpack, он как раз так и работает умеет создавать миниатюры изображений из оригинала и при этом

кеширование и ресурсы сервера становятся не нашей проблемой, но проблема заключалась в том часть трафика на сайт приносили именно картинки, а Photon уносил этот трафик с сайта.

Поэтому я решил попробовать WP-CLI — wp-cli.org это консольная утилита, а значит я точно смогу запустить её в фоновом процессе через screen как я это делал в случае с дампом и не держать свой рабочий компьютер включенным в течении всего процесса. Она способна выполнять некоторые манипуляции с ядром и плагинами WordPress и даже исполнять произвольный код при помощи eval.

Я конечно же очень быстро установил WP-CLI и начал пробовать стандартную рекомендуемую команду из мануала:

wp media regenerate --yes

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

Решение нашлось достаточно быстро:

wp media regenerate $(wp eval 'foreach (get_posts(array("post_type" => "attachment","posts_per_page" => -1,"year" => 2012)) as $post) {echo $post->ID . " ";}')

При помощи ранее упомянутого eval делаем запрос на получение всех изображений например за 2012 год после выводим их ID через пробей и записываем весь код в строку.

В результате так я и расапаралелил процесс в сроки уложился но по пути нашел еще одни грабли, в некоторые годы фотографий было особенно много и WP-CLI ругался на то что достигнуто максимально возможное число аргументов для передачи в командной строке и обработать не в силах. Такого по идее не должно быть потому как во всех мануалах что я видел по php написано что лимитов на число аргументов нет. Тогда я с этим не стал разбираться и разбил год еще и на месяцы, а сейчас руки не доходят найти причину так просто примите во внимание если ваш сайт уж очень большой, и отпишитесь в комментариях если знаете с чем это связанно.

rss