使用wp_sert_post创建父帖子

时间:2013-10-10 作者:user5601

如何创建php函数,我可以在一个自定义帖子类型中创建帖子也可以创建子帖子类型,我已经创建了父帖子类型,即

post type "a = car"
post type "b = user"
我想在自定义帖子类型中创建帖子"a = car" 还可以在post type中添加新的post"b = user" 使用wp_insert_post

这是我找到的最接近的http://wordpress.org/support/topic/setting-post_parent-during-wp_insert_post

1 个回复
SO网友:gmazzap

如果我很明白你想用wp_insert_post 要创建一篇“car”类型的文章,以及创建此文章时,请将此文章的id用作另一篇文章的父级,但另一篇文章的父级:用户。

这是可能的,但请注意,如果一个帖子类型是层次化的,则永久链接将中断。

首先,您需要为2篇文章创建2个数组,当然,对于第一次发布的“用户”,您不需要设置post_parent 因为你还不知道。

$car = array (
  \'post_title\' => \'A Car\'
  \'post_content\' => \'This is a beautiful car!\'
  \'post_type\' => \'car\'
); 

$user = array(
  \'post_title\' => \'An User\'
  \'post_content\' => \'Hi, I am the user of the beautiful car\'
  \'post_type\' => \'user\'
);
之后,使用插入第一篇帖子(父帖子)wp_insert_post. 此函数返回刚插入的帖子的id后,您可以使用它插入子帖子,并将该id用作post_parent.

您可以编写自定义函数:

function create_car_and_user( $car, $user ) {

    if ( empty( $car ) || empty( $user ) ) return false;

    $car_id = wp_insert_post( $car );

    if ( $car_id > 0 ) { // insert was ok

      $user[\'post_parent\'] = $car_id;
      $user_id = wp_insert_post( $user );

      return array( $car_id, $user_id );

    } else {

       return false;

    }

}
该函数接受之前创建的两个数组作为参数,如果一切正常,则返回另一个由两个元素组成的数组,其中第一个元素是刚刚插入的汽车帖子的id,第二个元素是刚刚插入的用户帖子的id。

如果出现问题,函数返回false。如果als可能的话,该函数返回一个数组,其中第一个元素是car id,第二个元素是false:在这种情况下,car的插入正常,user的插入不正常。

结束