Is it possible to create a Wordpress install that will automatically install with multiple plugins, a particular theme and custom settings so when I setup multiple blogs I don't have install so much extras each time?

It's because I will be installing lots of Wordpress blogs of different kinds that require different plugins and different themes and I want to be able to just install with everything already there..


  • Have you checked out and do you plan to use the WordPress Multisite feature?
    – Michal Mau
    Feb 25, 2012 at 0:30
  • Nope don't plan to use it with this project. thanks
    – Mark R
    Feb 25, 2012 at 0:33
  • Look into Ansible, chef and puppet. Mar 25, 2016 at 1:28
  • If those are too much then Composer is good, or even Capistrano. All things said, it depends on your hosting and deploy methods. Mar 25, 2016 at 1:31

5 Answers 5


If you have access to your host commandline and are running linux, why not pair wp_cli with a bash script. In this way you can have a fairly defined standard set of plugins to activate per install.

wp plugin activate plugin_a
wp plugin activate plugin_b
wp plugin activate plugin_c

Here's a WP_CLI and YT demo video:

  • 1
    This is the best method I see here so far. Mar 25, 2016 at 1:35

In the past I've had success in making custom WP installations using custom install.php file. I remember I mostly followed this tutorial and improvised:

Automating WordPress customizations – the install.php way @ WordPress Bits

The trick was in overriding the installation process by putting your own install.php into wp-content directory.

Note that both articles are from 2007. It worked for me in the past but I'm totally not sure if this method works now with WP 3.3.

Presently I just use a custom bash script to do a quick install with my favorite plugins and a small plugin to loop through the settings I'd always used to change. I can share a code of both if needed but I believe much better scripts for both can be found online.

While I was searching for the above tutorial I've found WPkgr: WordPress Custom Install PKGs - I've never heard about it nor tested it but it looks like worth a try.


I've always used TGM Plugin Activation to accomplish this. It allows you to require and even automatically install specific plugins. You can do it either by embedding the plugins directly in your theme folder or you can set it up to have the plugins download straight from the WP plugin repository or some other remote repository.

  • 1
    TGM is great but only works for plugin activation, not restoring settings or themes as far as I know.
    – jgraup
    Dec 12, 2015 at 18:23

if you have installed on your servers (and are familiar with) Git, you should be able to easily accomplish this. I'm currently waiting for VersionPress to be released, but there are other plugins that can do this; should also be able to be done manually. I've not done this, but thought it might point you in the right direction.


You can add themes and plugins to the WordPress wp-content folder.

You can also use theme specific default functions and after_switch_theme in your themes so they setup automatically when activated. These functions update theme settings and plugin settings so for example, you could setup a sliders settings.


add_action( 'after_switch_theme', 'your_theme_setting_defaults' );
function your_theme_setting_defaults() {

    if( function_exists( 'your_themes_update_settings' ) ) {

        your_themes_update_settings( array(
            'blog_cat_num'              => 5,   
            'content_archive'           => 'full',
            'content_archive_limit'     => 0,
            'content_archive_thumbnail' => 0,
            'image_alignment'           => 'alignleft',
            'posts_nav'                 => 'numeric',
            'site_layout'               => 'content-sidebar',
        ) );

You would also need to code the function into your theme.

Set plugin defaults example code:

add_filter( 'your_themes_slider_settings_defaults', 'your_slider_defaults' );
function your_slider_defaults( $defaults ) {

    $args = array(
        'location_horizontal'             => 'left',
        'location_vertical'               => 'top',
        'posts_num'                       => '3',
        'slideshow_excerpt_content_limit' => '100',
        'slideshow_excerpt_content'       => 'full',
        'slideshow_excerpt_width'         => '30',
        'slideshow_height'                => '445',
        'slideshow_more_text'             => __( 'Continue Reading…', 'executive' ),
        'slideshow_title_show'            => 1,
        'slideshow_width'                 => '1140',

    $args = wp_parse_args( $args, $defaults );

    return $args;

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.