Core function
The core function wp_insert_post()
can add & create posts (of every post type).
Plugin
/*
Plugin Name: Add default blog pages
Plugin URl: http://goo.gl/5e1DC
Author: Kaiser
Author URI: http://unserkaiser.com
*/
/**
* Default Blog pages - used to define all default pages.
* Adjust this to your needs:
* For a full example of what you can define for every page, take a look at
* @link http://codex.wordpress.org/Function_Reference/wp_insert_post
* @return array
*/
function wpse50318_default_blog_pages()
{
return array(
array(
'post_title' => 'About'
),
array(
'post_title' => 'Contact'
)
);
}
/**
* Adds Default Blog pages
* @return void
*/
function wpse50318_add_default_pages_to_blog()
{
foreach ( get_pages() as $page )
$existing_pages[] = $page->post_title;
// Get only non existing pages:
$new_pages = array_diff( $GLOBALS['$wpse50318_default_blog_pages'], $existing_pages);
// Loop over the non existing & add them
foreach( $new_pages as $page )
{
// Create post object
$page['post_status'] = 'publish';
$page['post_type'] = 'page';
// Insert the post into the database
wp_insert_post( $page );
}
}
add_action( 'activate_blog', 'wpse50318_add_default_pages_to_blog' );