Intereting Posts
Как получить изображение / аватар автора сообщения через RSS из другого блога? используя wp_query для возврата сообщений w / comment count> 0 Есть ли эквивалент пакетного API Drupal в WordPress? Как я могу получить всех пользователей, которые находятся на уровне X или выше? Почему фильтры / действия требуют подсчета аргументов? Перевести сторонний плагин и сохранить файлы переводов в пользовательской теме Мои веб-сайты WordPress всегда под угрозой Ссылка на короткий код продукта WooCommerce Как настроить целевой интерфейс MP6 на WordPress 3.8 с помощью CSS? Расширить плагин класса через функции.php Как установить отмеченные сообщения, используя флажок в окне редактирования сообщений? URL-адрес paginate_links Получать сообщения, запрашивая таксономию и определенные термины таксономии? Добавление чувствительной сетки на страницу (без использования темы Bootstrap) Почему вы используете add_action для короткого кода?

WP_Remote_Get Не работает

У меня есть плагин, который использует wp_remote_get() и он не работает на моем сервере nginx, поэтому я решил проверить это.

Я создал файл test.php и вставил:

 <?php $response = wp_remote_get( 'http://www.domain.com/mytest.php' ); print $response ['body']; ?> 

Когда я запускаю этот файл, я получаю ошибку:

 2017/02/04 16:22:31 [error] 16573#16573: *461100 FastCGI sent in stderr: … "PHP message: PHP Fatal error: Uncaught Error: Call to undefined function wp_remote_get() in /var/www/html/wp-content/themes/x-child/test.php:1 

Я не могу сказать, почему это была бы неопределенная функция, учитывая, что ее часть ядра wordpress?

Сама концепция HTTP API заключается в том, чтобы убедиться, что транспорт будет выполнен. Он в основном использует 5 различных транспортных методов, и он выбирает лучший в соответствии с конфигурацией вашего сервера. Поэтому вряд ли проблема совместимости с wp_remote_get() и вашим сервером.

Плюс, если WP не загружен, добавление действия не поможет, оно не будет выполнено с неопределенной функцией, но на этот раз на add_action .

Таким образом, в основном вам не хватает WordPress, для целей тестирования вы можете это сделать (если ваш файл находится в корневом каталоге WP):

 <?php require_once( 'wp-load.php' ); $response = wp_remote_get( 'http://www.domain.com/mytest.php' ); print $response ['body']; ?> 

Вы пытаетесь получить доступ к своему файлу test.php напрямую? Если это так, то WordPress не будет загружен, поэтому wp_remote_get() не будет работать.

Чтобы использовать wp_remote_get вам нужно убедиться, что WordPress загружен. Попробуйте подключиться к wp_loaded :

 add_action( 'wp_loaded', function() { $response = wp_remote_get( 'https://example.com/' ); print $response[ 'body' ]; } ); 

wp_remote_get , ваш сервер настроен таким образом, что методы, используемые wp_remote_get , недоступны для WordPress. Если это так, убедитесь, что на сервере установлен curl или wget.