Intereting Posts
Как изменить порядок категорий для настраиваемого типа сообщений Как изменить размер текста на страницах категорий Попытка изменить отображаемое изображение с 180×180 до полной ширины на главной странице Задачи WP-Cron запланированы, но не запущены Пользовательская форма регистрации для пользовательского веб-сайта WordPress Загружать jquery только для определенных страниц в бэкэнд Правильный способ загрузки таблицы стилей в состояние шаблон пользовательского сообщения игнорируется после изменения постоянных ссылок Как использовать живые изображения при локальной установке? Есть ли плагин, который полностью удалит систему категорий? При создании страницы WordPress добавляется суффикс «-2» на постоянные ссылки на новые страницы Скрипт Enqueue, только если страница имеет oembed Как выбрать несколько мультимедийных файлов для формы виджетов? Пользовательский шаблон для категорий CPT Создайте «новые страницы» в разделе администрирования плагина

Как заставить file_get_contents работать в wordpress

Im, использующий geelugin.com для отображения контента на основе местоположения пользователей, codex устанавливается следующим образом:

$geoplugin = unserialize( file_get_contents('http://www.geoplugin.net/php.gp? ip=' . $_SERVER['REMOTE_ADDR']) ); 

Это работает на моем сайте, но не на моем сайте. Я попытался использовать wp_remote_get, но не смог настроить его правильно. Любые идеи о том, почему это будет работать на одном сайте, а не на другом?

Solutions Collecting From Web of "Как заставить file_get_contents работать в wordpress"

Похоже, что file_get_contents() на вашем сервере. Вместо этого используйте wp_remote_get() .

Примечание. wp_remote_get() относится к семейству API-интерфейсов WordPress, специально используемых для отправки запросов GET.

Преимущество wp_remote_get() над file_get_contents() и другой функцией потока / транспорта PHP – это HTTP API-интерфейс WordPress, который был создан для стандартизации единого API, который как можно проще обрабатывал все в отношении HTTP. HTTP API поддерживает различные HTTP-транспорты или реализации PHP для обслуживания различных хостинговых сред и конфигураций.

В двух словах, если file_get_contents() не включен, wp_remote_get() будет использовать cURL, если он доступен, если нет, он найдет и использует любой доступный транспорт HTTP.

Вот как я решил эту проблему:

  function get_client_ip_env() { $ipaddress = ''; if (getenv('HTTP_CLIENT_IP')) $ipaddress = getenv('HTTP_CLIENT_IP'); else if(getenv('HTTP_X_FORWARDED_FOR')) $ipaddress = getenv('HTTP_X_FORWARDED_FOR'); else if(getenv('HTTP_X_FORWARDED')) $ipaddress = getenv('HTTP_X_FORWARDED'); else if(getenv('HTTP_FORWARDED_FOR')) $ipaddress = getenv('HTTP_FORWARDED_FOR'); else if(getenv('HTTP_FORWARDED')) $ipaddress = getenv('HTTP_FORWARDED'); else if(getenv('REMOTE_ADDR')) $ipaddress = getenv('REMOTE_ADDR'); else $ipaddress = 'UNKNOWN'; return $ipaddress; } $geoplugin = maybe_unserialize( wp_remote_fopen('http://www.geoplugin.net/php.gp?ip=' . get_client_ip_env()) );