使用wp_insert_post插入多个帖子,如何将第一个帖子作为第二个帖子的父级?

时间:2015-10-21 12:41:11

标签: php wordpress

我正在使用wp_insert_post创建一个"特许经营发射器"它将为Wordpress站点的新特许经营部分部署一组默认的入门页面。到目前为止,情况运作良好,除了我需要生成六个页面,第一页是以下五个页面的父页面。我现在使用此代码测试两页:

// Create Franchise Home
$my_post = array(
  'post_title'    => 'Franchise',
  'post_content'  => 'This is the Home Page for the New Franchise',
  'post_type'     => 'page',
  'post_status'   => 'draft',
  'post_author'   => 4
);

// Insert the post into the database
$franchise_parent_id = wp_insert_post( $my_post, $wp_error );
echo "$franchise_parent_id";

// Create Franchise About Page
$my_post = array(
  'post_title'    => 'Franchise About',
  'post_content'  => 'This is the About Page for the New Franchise',
  'post_type'     => 'page',
  'post_parent'   => $franchise_parent_id,
  'post_status'   => 'draft',
  'post_author'   => 4
);

// Insert the post into the database
$franchise_about_id = wp_insert_post( $my_post, $wp_error );
echo "$franchise_about_id";

这主要是有效的。创建两个页面,并回显它们的ID。什么不工作是第二页的后父母由第一页的id设置的位。有什么东西我不知道使用变量来设置post_parent吗?

2 个答案:

答案 0 :(得分:1)

为了能够选择草稿页面作为父页面,您可以将以下过滤器添加到插件或主题中。

add_filter('page_attributes_dropdown_pages_args', 'custom_args', 1, 1);

function custom_args($dropdown_args) {

    $dropdown_args['post_status'] = array('publish','draft');

    return $dropdown_args;
}

答案 1 :(得分:0)

想出这个,显然是使用Rubber Duck Debugging。草案不能成为父母。我将状态更改为已发布,并且完全正常。