PRO IT

профессиональное мнение

  • IT
    • Android
    • IP телефония
    • Linux
    • Mac OS X
    • Железо
    • Интернет
    • Программирование
    • Софт
  • Бизнес
  • WOW!
  • Литература
    • Аудиокниги
    • Книги
    • Публикации
  • Музыка
  • Сервисы
    • Генератор паролей Онлайн
    • Код ответа сервера
    • Количество символов в тексте
  • О блоге
    • Написать автору
    • Как написать гостевой пост в блоге ablex.ru ?
    • Реклама в блоге
  • IT
    • Android
    • IP телефония
    • Linux
    • Mac OS X
    • Telegram
    • Железо
    • Интернет
    • Программирование
    • Софт
  • WOW!
  • Бизнес
  • Литература
    • Аудиокниги
    • Книги
    • Публикации
  • Музыка
  • Сервисы
    • Аналитика
      • Анализ сайтов
      • Скорость сайта
    • Дизайн
    • Продвижение
      • СЕО
        • СЕО анализ сайта
      • СММ
    • Разработка
  • События
  • Юмор
PRO IT Программирование Изменение user-agent WordPress


Изменение user-agent WordPress

Ablex · Дек 20, 2016 · 0 комментариев
Изменение user-agent wordpress

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

В статье описывается, как заменить user-agent по-умолчанию, при использовании api wordpress.

Зачем менять user-agent WordPress?

В моем случае ситуация такая: есть интернет-магазин на WordPress (Woocommerce), который загружает товары из xml файла другого магазина (абсолютно легально, так уж устроена сфера). Делается это скриптом, через wordpress api.  Но тут по какой-то причине, возможно, по недоговоренности владельцев подразделений бизнеса сайта-донора, возможно просто по раздолбайству, у сайта-донора блокируется скачивание всех изображений. Как выяснилось, заблокировано по user-agent (довольно распространенный случай). Таким образом, ломается работа скрипта загрузки и прекращается добавление новых товаров (при их появлении),  т.к. нет возможности загрузить картинки.

Думаю в целом, такие случае не единичны, но именно с WordPress, не так часты.
Например, если вы загружаете картинки на сервер linux утилитой wget, вы можете прописать user-agent в параметрах, например:

1
wget --user-agent=<span class="hljs-string">"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0" FILE.JPG</span>

Даже некоторые функции в WordPress позволяют менять User-Agent. Например, функция wp_remote_get(), которая получает удаленную страницу. В нее можно передать желаемый user-agent в качестве опции (подробнее тут).  Или, если удобно, применить фильтр http_headers_useragent (подробнее тут).

Но я, для загрузки картинок использовал wordpress функцию download_url (подробнее о использовании функции тут). В параметрах у нее указывается только URL файла и timeaot. А как же user-agent? При использовании функции она подставляет в User-agent примерно следующее: «WordPress/4.6.1; http://ваш_сайт.ru/», что явно никак не является броузером по мнению сайта-донора.

Как проверить, какой user-agent подставляется при загрузке файла через api wordpress?

Не знаю, на сколько я выбрал самый простой способ, но он состоит в том, что бы загрузить через функцию страницу «http://www.whoishostingthis.com/tools/user-agent/» которая выводит параметры броузера, а потом глазами просмотреть html. Получалось примерно так:

1
2
$url="http://www.whoishostingthis.com/tools/user-agent/";
echo download_url ($url);

Фильтр http_headers_useragent на функцию download_url не действует. Поэтому, пришлось лезть в код WordPress (благо, я давно уже забил на обновления движка).

Код функции download_url доступен в файле /wp-includes/class-http.php.
В самой функции уже использован фильтр ‘user-agent’ => apply_filters, который подставляет user-agent по-умолчанию. Остается только заменить его на нужный, заменив строчку:

1
'user-agent' =&gt; apply_filters( 'http_headers_useragent', 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' ) ),

например, на:

1
'user-agent' =&gt; apply_filters( 'http_headers_useragent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:20.0) Gecko/20100101 Firefox/20.0' ),

Удачи!

Поделиться "Изменение user-agent WordPress"

  • Facebook
  • Twitter
  • Google+
  • LinkedIn
  • VKontakte
  • E-mail

Интересное по теме:

  • Wordpress WooCommerce: добавление категорий и товаров по API в каталогWordPress WooCommerce: добавление категорий и товаров по API в каталог
  • WordPress не записывает значения таксономий при запуске скрипта через cronWordPress не записывает значения таксономий при запуске скрипта через cron
  • Вывод информации только на главной странице WordPressВывод информации только на главной странице WordPress
  • Добавление миниатюры на страницу поста WordPressДобавление миниатюры на страницу поста WordPress
Подпишитесь на рассылку
Метки: wordpress

Ablex

Свежие записи

  • Удобный телеграм бот для поиска скидок и купонов @AllKuponBot
  • 6 главных трендов e-mail маркетинга в 2018 году
  • Magento 2.1: Добавление категорий и товаров по API
  • Анализ трафика CPA партнеров в Google Analytics. Борьба с фродом
  • WordPress WooCommerce: добавление категорий и товаров по API в каталог

Лучшие метки

Google AnalyticsAndroidаналитикаMac OSwordpressIP-телефонияbluetoothVPNSEOSIPRedmineAsteriskсервисIP-АТСUbuntuSamsung Galaxy S3Raspberry PiА/Б тестFreePBXgoogle

Авторы

  • Ablex (RSS) (200)
  • AD (RSS) (4)
  • TXT (RSS) (4)

Рекомендуем

  • Хостинг TimeWeb
  • IP телефония Zadarma
  • CPA сеть Admitad
Карта сайта
© 2010 - 2017 PRO IT. Все права защищены. Копирование материалов возможно только с установкой активной ссылки на ablex.ru
115 запрос 1,817 секунд. Этот блог летает на хостинге TimeWeb.
Top