Jas*_*son 6 php wordpress curl wordpress-plugin
我正在创建一个wordpress插件,我无法正常运行cURL调用.
可以说我有一个页面www.domain.com/wp-admin/admin.php?page=orders
在订单页面中,我有一个查看按钮是否被点击的功能,如果需要,它需要对同一页面进行cURL调用(www.domain.com/wp-admin/admin.php?page=orders&dosomething=是的)开始一个不同的功能.我这样做的原因是我可以让这个cURL调用异步.
我没有收到任何错误,但我也没有收到任何回复.如果我将我的网址更改为google.com或example.com,我会得到回复.是否存在身份验证问题或可能存在此类问题?
我的代码看起来像这样..我使用gets,echos,而不是为了易于测试而不做异步.
if(isset($_POST['somebutton']))
{
curlRequest("http://www.domain.com/wp-admin/admin.php?page=orders&dosomething=true");
}
if($_GET['dosomething'] == "true")
{
echo("do something");
exit;
}
function curlRequest($url) {
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($ch);
return($response);
}
Run Code Online (Sandbox Code Playgroud)
Bil*_*ill 12
你不应该在WordPress插件中使用CURL.
而是使用wp_函数发出HTTP请求,例如
function wp_plugin_event_handler () {
$url = 'http://your-end-point';
$foo = 'bar';
$post_data = array(
'email' => urlencode($foo));
$result = wp_remote_post( $url, array( 'body' => $post_data ) );
}
add_action("wp_plugin_event", "wp_plugin_event_handler");
Run Code Online (Sandbox Code Playgroud)
在过去,我遇到了WordPress插件事件处理程序将与CURL挂起的问题.使用WP_函数改为按预期工作.
当然,博客的管理部分是受密码保护的。您需要传递身份验证数据。有关详细信息,请参阅 http 身份验证。具体看这里:
http://www.php.net/manual/en/function.curl-setopt.php
您需要设置 CURLOPT_USERPWD 选项,可能还需要设置 CURLOPT_HTTPAUTH。