WP_Remote_Get Not working

时间:2017-02-04 作者:JoaMika

我有一个插件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核心的一部分?

2 个回复
最合适的回答,由SO网友:JMau 整理而成

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\']; ?>

SO网友:Nathan Johnson

您正在尝试访问您的测试。直接使用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 WordPress无法使用。如果是这种情况,请确保服务器上安装了curl或wget。

相关推荐

WP Core Update Issue

您好,我的wordpress安装有一些问题。我的wp管理页面上出现500服务器错误。从我的错误日志中,我发现Yoast SEO和兼容性存在一些问题。从来源来看,建议更新我的wordpress版本。(运行wp multisite)我跑步wp core update 但它工作不正常The address 127.0.0.1 is not in the database. Updating to version 4.9.4 (en_US)... Using cached file \'/home