Cómo Crear un Paquete Personalizado de Instalación de WordPress
Descargué la última versión de WordPress (3.5) y creé un tema personalizado. Planeo subirlo e instalarlo para múltiples clientes. ¿Es posible personalizar los ajustes predeterminados como no tener el post, página y comentario de muestra cuando se instala? ¿Y configurar el tema por defecto que se activa?
Revisé upgrade.php y schema.php y parece que ahí es donde se agregan el post, página y comentario de muestra, pero no puedo encontrar dónde se elige el tema predeterminado. ¿Existe algún artículo sobre cómo editar estos archivos o algunos consejos sobre qué hacer?

He respondido una pregunta similar. Básicamente:
crea un plugin Dropin en la raíz de
wp-content
llamadoinstall.php
dentro de
install.php
, crea una nueva versión de la función pluggablewp_install_defaults()
elimina todos los valores por defecto no deseados y personaliza a tu gusto, como:
update_option('template', 'tu-tema');
update_option('stylesheet', 'tu-tema');
update_option('current_theme', 'Tu Tema');
update_option('my_theme_options', $theme_options_array );
auto-activar algunos plugins incluidos
empaqueta todo en un solo paquete (archivos de WordPress y archivos de contenido: Tema, Plugins,
install.php
)ahora, cada vez que ejecutes una instalación, el Dropin será procesado y el nuevo sitio iniciará con tus pre-configuraciones
Hice más pruebas en mi entorno de desarrollo y actualicé el Gist de la otra respuesta con un install.php
funcional.
Ahora contiene la función wpse_4041_run_activate_plugin($plugin)
(para activar plugins incluidos) y una función wp_new_blog_notification()
vacía (que es otra función pluggable y evita que WP envíe un correo de notificación sobre la instalación del sitio).
Usé el tema F8 Lite para las pruebas. La mayor parte del código es una adaptación del script original (Página, Post, Comentario, Categoría, Blogroll por defecto). Y al final, mis comandos personalizados (cambiar tema, establecer opciones del tema, activar plugins, configurar opciones de plugins).
Revisa los comentarios en el archivo.
No estoy seguro si es el mejor método, pero dentro del archivo functions.php
del tema coloqué este script que eliminará el archivo wp-content/install.php
. Se ejecutará solo una vez (basado en esta Respuesta de @bainternet) y después de que WP haya sido instalado.
// Si la opción no existe y el script de instalación está ahí, elimínalo
if ( wpse_25643_run_once( 'my_custom_install_2013' ) )
{
if( file_exists( WP_CONTENT_DIR.'/install.php' )
{
unlink( WP_CONTENT_DIR.'/install.php' );
}
}
/**
* Verifica si la opción existe
*
* @param string $key
* @return boolean
**/
function wpse_25643_run_once( $key )
{
$test_case = get_option( 'run_once' );
if ( isset( $test_case[$key] ) && $test_case[$key] )
{
return false;
}
else
{
$test_case[$key] = true;
update_option( 'run_once', $test_case );
return true;
}
}
Preguntas y respuestas relacionadas con otro método que no usa install.php
:
¿Script de Inicialización para Aspectos "Estándar" de un Sitio WordPress?

Estoy trabajando en un script de construcción en PHP usando Phing que instala WordPress junto con algunos valores predeterminados (temas/plugins y código personalizado), todavía está en desarrollo.
https://github.com/wycks/WordPhing/
Dentro del archivo build.xml
verás algunas opciones de PHP como las siguientes que se ejecutan durante la instalación:
//eliminar el plugin Hello Dolly
delete_plugins(array('hello.php'));
//eliminar la entrada predeterminada "Hello World"
wp_delete_post(1,true);
//eliminar la página de ejemplo predeterminada
wp_delete_post(2,true);
//eliminar el comentario predeterminado de Mr.Wordpress
wp_delete_comment( 1, true ) ;
PD: No he probado esto en la última versión o en Linux.

Configura tu instalación como desees y luego utiliza algo como http://infinitewp.com/ para duplicar la instalación en tus otras ubicaciones para los demás sitios web. Esto es lo que hacemos para una instalación base de todos nuestros proyectos.
Alternativamente, en lugar de hacer una instalación nueva de WordPress para cada sitio, haz una copia de seguridad de tu instalación existente de WP e impórtala en la nueva cuenta de alojamiento. Luego copia todos los archivos usando FTP, actualiza la configuración de la base de datos en wp-config.php para la nueva base de datos y estarás listo. Es un poco más complicado que InfiniteWP, pero significa que no tienes que pagar por el plugin.

Lo que necesitas hacer es abrir el archivo wp-includes/default-constants.php y cambiar la siguiente línea (la encontrarás al final del documento) por el nombre de la carpeta de tu tema:
if ( !defined('WP_DEFAULT_THEME') )
define( 'WP_DEFAULT_THEME', 'twentytwelve' );
Por otro lado, siempre puedes probar Duplicator. Un plugin realmente bueno que te ofrece muchas funciones adicionales.
