2017-12-18 261 views
0

我寫一個自定義函數post_updated行動在WordPress象下面這樣:遠程請求不能正常工作

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

我做錯了什麼。

看到我的帖子的人的要求:

postman request image

PS:博客是存在於項目的根的子文件。這是造成這個問題嗎?

+3

您是否檢查過'wp_remote_post()'函數實際返回的內容?如果出現問題,它應該返回一個'WP_Error'對象,這可能會給你更多的見解。 –

+0

是的。它給我404錯誤。 「請求的URL/feed/blogAPI在此服務器上未找到。」 – saikiran

+1

您確定URL中沒有拼寫錯誤嗎?正確的外殼? –

回答

-1

該錯誤是由於請求與遠程的源相同,即我的控制器在https://dev.kidengage.com/feed/blogAPI

但我的wordpress是在https://dev.kidengage.com/blog根目錄的子文件夾中。

所以使用wp_remote_post將導致時髦的響應。

我結束了使用像下面直接從wordpress存儲數組到我的根使用的另一個數據庫。

 global $wpdb; 

     $newdb = new wpdb('username','password','dagtabasename','localhost'); 
     $newdb->show_errors(); 

     $postExist= $newdb->get_row("select * from blogMaster where postID=$post_ID"); 

     if(empty($postExist)){ 

      $insert=array(
       "postID" => $post_ID, 
       "postTitle" => $post_after->post_title, 
       "postContent" => $post_after->post_content , 
       "postExcerpt" => $post_after->post_excerpt, 
       "postType" => $post_after->post_type, 
       "postGuid" => $post_after->guid , 
       "postPermLink" => $permLink, 
       "postThumb" => $thumbLarge, 
       "postAuthorName" => $authorName, 
       "postAuthorPic" => $authorURL , 
       "postStatus" => $post_after->post_status, 
       "postDate" => $post_after->post_date, 
       "postModified" => $post_after->post_modified 
      ); 


      $newdb->insert("blogMaster",$insert);  

     } 
+0

downvoter請注意解釋爲何投下票? – saikiran