1

我正在尝试通过 PHP 将 WooCommerce 产品插入 WordPress 数据库。WooCommerce 产品只是 post-type=product 的帖子,所以我认为这应该可行:

$mypost = array('post-title' => $secondexplosion[0], 'post-type' => 'product',
   'post-status' => 'publish', 'post-content' => $secondexplosion[1],
   'post-excerpt' => '');
$postid = wp_insert_post($mypost, true);

$secondexplosion 是一个包含帖子标题和帖子内容的字符串数组;我检查了一下,它不包含空值或任何有问题的东西。那么,为什么 wp_insert_post 返回错误“内容、标题和摘录为空”?非常感谢!

4

1 回答 1

2

wp_insert_post的Codex有很多有用的信息:

$post = array(
  'ID'             => [ <post id> ] //Are you updating an existing post?
  'menu_order'     => [ <order> ] //If new post is a page, it sets the order in which it should appear in the tabs.
  'comment_status' => [ 'closed' | 'open' ] // 'closed' means no comments.
  'ping_status'    => [ 'closed' | 'open' ] // 'closed' means pingbacks or trackbacks turned off
  'pinged'         => [ ? ] //?
  'post_author'    => [ <user ID> ] //The user ID number of the author.
  'post_category'  => [ array(<category id>, <...>) ] //post_category no longer exists, try wp_set_post_terms() for setting a post's categories
  'post_content'   => [ <the text of the post> ] //The full text of the post.
  'post_date'      => [ Y-m-d H:i:s ] //The time post was made.
  'post_date_gmt'  => [ Y-m-d H:i:s ] //The time post was made, in GMT.
  'post_excerpt'   => [ <an excerpt> ] //For all your post excerpt needs.
  'post_name'      => [ <the name> ] // The name (slug) for your post
  'post_parent'    => [ <post ID> ] //Sets the parent of the new post.
  'post_password'  => [ ? ] //password for post?
  'post_status'    => [ 'draft' | 'publish' | 'pending'| 'future' | 'private' | 'custom_registered_status' ] //Set the status of the new post.
  'post_title'     => [ <the title> ] //The title of your post.
  'post_type'      => [ 'post' | 'page' | 'link' | 'nav_menu_item' | 'custom_post_type' ] //You may want to insert a regular post, page, link, a menu item or some custom post type
  'tags_input'     => [ '<tag>, <tag>, <...>' ] //For tags.
  'to_ping'        => [ ? ] //?
  'tax_input'      => [ array( 'taxonomy_name' => array( 'term', 'term2', 'term3' ) ) ] // support for custom taxonomies. 
);  

看起来您的字段中出现了拼写错误;预期的字段名称是post_title post_type post_status post_contentpost-excerpt- 带有下划线,而不是破折号。

于 2013-09-12T19:14:02.320 回答