【发布时间】:2017-12-18 14:25:27
【问题描述】:
我正在为 wordpress 中的 post_updated 操作编写自定义函数,如下所示:
function post_update_trigger($post_ID, $post_after, $post_before){
if($post_after->post_status == "publish" || $post_after->post_status == "trash" ){
$url="https://myremoteurl.com/feed/blogAPI";
$response = wp_remote_post($url,array(
'method' => 'POST',
'timeout' => 45,
'redirection' => 5,
'httpversion' => '1.0',
'blocking' => true,
'headers' => array(),
'body' => $postFields,
'cookies' => array()
));
if ( is_wp_error( $response ) ) {
$error_message = $response->get_error_message();
echo "Something went wrong: $error_message";exit;
} else {
echo 'Response:<pre>';
print_r( $response );exit;
echo '</pre>';
}
}
}
add_action( 'post_updated', 'post_update_trigger', 10, 3 );
我尝试了邮递员的发帖请求。一切似乎都很好并且工作正常。除了 wp_remote_post,我也试过 CURL。
我做错了什么。
查看我的发帖人请求:
PS: 该博客位于项目根目录的子文件夹中。这是造成问题的原因吗?
【问题讨论】:
-
您检查过
wp_remote_post()函数实际返回的内容吗?如果出现问题,它应该返回一个WP_Error对象,这可能会给您带来更多洞察力。 -
是的。它给了我 404 错误。 " 在此服务器上找不到请求的 URL /feed/blogAPI。"
-
您确定网址中没有拼写错误吗?正确的大小写?
-
您在服务器主机文件中没有覆盖远程主机名的记录?服务器是否可以从终端从 curl 访问该 URL?
-
@MagnusEriksson 如果这是问题所在,它不会也覆盖邮递员中的远程主机名吗?
标签: php wordpress curl wordpress-hook