插件开发 - wp插入帖子不起作用

时间:2014-11-13 00:15:04

标签: wordpress plugins posts

我是WP的插件开发新手。我在插件文件中遇到了wp_insert_post的问题,测试了运行这个插件的php文件,并且在wp_insert_post之前的所有代码都很好,但是一旦它跳到wp_insert_post之后就没有任何事情发生,卡在' Test15'。测试从主题文件夹中的测试页面运行代码的插入部分,并且它工作。不知道这里有什么问题。请参阅下面的代码。

function db_importer_insert_properties($properties, $category, $user_id, $post_type) {

echo 'Test9<br>'; 
$result = true;
echo 'Test10<br>'; 
if($properties) {
      echo 'Test11<br>';
if(count($properties) > 0) {
      echo 'Test12<br/>';
      print_r($properties);
      echo '<br/>';
  $count = 0;
  foreach($properties as $property) {
    echo 'Test13<br/>';

    $address =$property['address'] ; //get title

    $building=$address['streetNumber'];
    $street=$address['street'];
    $suburb=$address['suburb'];
    $state=$address['state'];
    $postcode=$address['postcode'];

    $title=$building. ' ' .$street.', '.$suburb.', '.$postcode.', '.strtoupper($state);

    //test post
    $new_post = array(
      'post_title'    => 'My post10 ',
      'post_content'  => 'This is my post10 ',
      'post_status'   => 'publish',
      'post_author'   => 1,
      'post_category' => 'uncategorized'
  );
    echo 'Test14<br/>';
    print_r($new_post);
    echo '<br/>';
    echo 'Test15<br/>';


    wp_insert_post($new_post);
    echo 'Test16<br>';

  if($post_id != 0) {

    add_post_meta($post_id, "_bathrooms", esc_attr($property['features']['bathrooms']));
    add_post_meta($post_id, "_bedrooms", esc_attr($property['features']['bedrooms']));

    if(is_array($property['images'])) {
      add_post_meta($post_id, "_images", esc_attr(implode("\n", $property['images']))); 
    }
    else {
     feedback("Post ID was 0");
    }   

    feedback("added property $title with post_id $post_id"); 
    $count++; 
  }
  else {
    feedback("post was failed to add");
  }
}
feedback("Added $count properties");

}
else {
  feedback("No properties to add.");
 }
}
else {
  feedback("No properties were selected");
  $result = false;
}
  return $result;

}

1 个答案:

答案 0 :(得分:0)

您忘了声明$post_id变量。使用以下内容:

$post_id = wp_insert_post( $new_post, true );

这将在成功时返回帖子ID,或在失败时返回WP错误。

使用print_r( $post_id )检查结果。