Wordpress: подача изображений из CDN

Я использую CDN для обслуживания своих изображений, которые я загружаю в Wordpress. Мои настройки были:

введите здесь описание изображения

Он работал отлично, но больше не работает, так как я обновился до Wordpress 4.5. Это мои настройки сейчас:

введите здесь описание изображения

Этот фильтр тоже не работает:

function my_cdn_upload_url() {
   return 'http://media.mydomain.com';
}
add_filter( 'pre_option_upload_url_path', 'my_cdn_upload_url' );

Кто-нибудь знает, как я должен обслуживать свои изображения из CDN?

Спасибо.


person retroriff    schedule 15.04.2016    source источник


Ответы (4)


Похоже, вы обновились с довольно старой версии WP, не так ли? Параметры папки и пути для загрузки были удалены в «Настройки» -> «Медиа» давным-давно.

Так как же выглядит ваш реальный путь для загрузки? Это не стандартный домен.com/wp-content/uploads// верно? Если да, то куда загружаются новые изображения после обновления?

Попробуйте поиграть с https://wordpress.org/plugins/custom-upload-dir/ и посмотрите, поможет ли это вернуть ваши изображения в CDN.

person bugnumber9    schedule 15.04.2016
comment
Нет, я только что обновился с 4.4 до 4.5. Я читал, что эти настройки были удалены с 3.5, но у меня были разные установки с 4.4, и они все еще показывают эти параметры. Не спрашивайте меня, почему... Мой настоящий путь - обычный путь с датой. Мой CDN находится в облаке AWS и считывает источник из wp-content/uploads/2016/... Я хочу заменить mydomain.com/wp-content/uploads/2016/ на images.mydomain.com/wp-content/uploads/ 2016/ - person retroriff; 17.04.2016
comment
В двух словах: создайте поддомен, измените путь загрузки в базе данных, перенаправьте старый путь на новый. Это хорошо описано здесь: dezzain. com/wordpress-tutorials/ - person bugnumber9; 17.04.2016

Самый простой способ — отредактировать содержимое «upload_url_path» в таблице wp_options:

upload_url_path > http://media.mydomain.com

Благодарю вас!

person retroriff    schedule 02.08.2018

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

Другой подход - загрузить все ваши изображения куда-нибудь, например. Amazon S3 или храните их в CDN партнерской сети, а затем сохраняйте URL-адреса ваших изображений в метаданных постов для ваших сообщений или продуктов.

Затем вам нужно изменить файлы темы, чтобы извлекать изображения из полей postmeta, а не из полей избранного изображения или миниатюры.

К сведению: этот подход значительно ускорит импорт, поскольку WordPress будет создавать изображения разных размеров, используя ЦП и дисковое пространство.

Я создал плагин для решения этой проблемы:

https://www.wpintense.com/product/external-images/

person Dave Hilditch    schedule 22.05.2019
comment
Мое решение основано на AWS Cloudfront, который автоматически читает и записывает файлы на своих серверах CDN, пока они существуют в исходном пути. - person retroriff; 22.05.2019
comment
Звучит довольно круто на самом деле. Как он обрабатывает права на запись? Вы вносите в белый список IP-адрес сервера или что-то в этом роде? - person Dave Hilditch; 23.05.2019
comment
Нет, вам просто нужно 2 субдомена. Первый — это поддомен источника, который должен указывать на папку с вашими изображениями. Второй указывает на исходный поддомен: img-origin.yourdomain.com › A › 188.95.253.55 img.yourdomain.com › CNAME › a1hysdadp83zeqq0.cloudfront.net - person retroriff; 24.05.2019

ЛУЧШИЙ ПУТЬ - использовать общий кеш w3.

Он имеет встроенную поддержку cdn, и, конечно же, вы можете использовать его основные функции, кэширование, наиболее полезное для ускорения веб-сайта.

person Nirpendra Patel    schedule 15.04.2016
comment
Спасибо, но я бы предпочел не использовать его. Чем меньше плагинов, тем лучше. На данный момент мне достаточно Varnish и memcached. - person retroriff; 17.04.2016