我正在使用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吗?
答案 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。草案不能成为父母。我将状态更改为已发布,并且完全正常。