Multisite, either change the name of sample-page or create new page

Is there a way to either change the name of the default Sample Page or create a new page entirely everytime a user creates a new blog on WP multisite?

Related posts

Leave a Reply

1 comment

  1. 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' );