我有一个插件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核心的一部分?
最合适的回答,由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。