¿Cómo crear un paquete de instalación de WordPress personalizado?

4

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 las configuraciones predeterminadas, como no tener la publicación de muestra, la página y el comentario agregado cuando se instala? ¿Y establecer el tema predeterminado que se activa?

Miré upgrade.php y schema.php y parece que es donde se agregan la publicación de muestra, la página y el comentario, pero no puedo encontrar dónde se está eligiendo el tema predeterminado. ¿Hay algún artículo sobre cómo editar estos archivos o algunos consejos sobre qué hacer?

    
pregunta user1822824 29.12.2012 - 09:44

4 respuestas

3

He respondido una pregunta similar . Básicamente:

  • cree un Dropin en la raíz de wp-content llamado install.php

  • dentro de install.php , cree una nueva versión de la función conectable wp_install_defaults()

  • eliminar todos los valores predeterminados no deseados y personalizar a voluntad, como:

      
    • update_option('template', 'your-theme');

    •   
    • update_option('stylesheet', 'your-theme');

    •   
    • update_option('current_theme', 'Your Theme');

    •   
    • update_option('my_theme_options', $theme_options_array );

    •   
    • autoactivar algunos complementos incluidos

    •   
  • agrupa todo en un solo paquete (archivos de WordPress y contenido: tema, complementos, install.php )

  • ahora, cuando ejecute una instalación, se procesará el Dropin y el nuevo sitio comenzará con sus configuraciones previas

Hice algunas pruebas más en mi entorno de desarrollo y actualicé el Gist de la otra respuesta con un install.php de trabajo.
Ahora contiene la función wpse_4041_run_activate_plugin($plugin) (para activar los complementos incluidos) y un wp_new_blog_notification() vacío (que es otro conectable e impide que WP envíe un correo electrónico de notificación sobre el sitio). instalación).

Utilicé el tema F8 Lite para las pruebas. La mayor parte del código es una adaptación de la secuencia de comandos original (página predeterminada, publicación, comentario, categoría, Blogroll). Y al final, mis comandos personalizados (cambiar tema, configurar opciones de tema, activar complementos, configurar opciones de complemento).

Comprueba los comentarios en el archivo.

No estoy seguro de que sea el mejor método, pero dentro del tema functions.php file, coloco esta secuencia de comandos que eliminará el archivo wp-content/install.php . Se ejecutará solo una vez (basado en esta Respuesta por @bainternet) y después de que se haya instalado WP.

// If the option doesn't exist and the install script is there, delete it
if ( wpse_25643_run_once( 'my_custom_install_2013' ) )
{
    if( file_exists( WP_CONTENT_DIR.'/install.php' ) ) 
    {
        unlink( WP_CONTENT_DIR.'/install.php' );
    }
}

/**
 * Check if option exist
 *
 * @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 "Estándar" Aspectos de un sitio web de WordPress?

    
respondido por el brasofilo 29.12.2012 - 19:26
1

Estoy trabajando en un script de compilación Php usando Phing que instala WP junto con algunos valores predeterminados (temas / complementos y código personalizado), todavía es un trabajo en progreso.

enlace

Dentro de build.xml verá algunas opciones de php como las que se ejecutan durante la instalación:

     //remove Hello Dolly 
      delete_plugins(array('hello.php'));

    //remove default hello world post
      wp_delete_post(1,true);

    //remove default sample page
      wp_delete_post(2,true);

    //remove default Mr.Wordpress comment
      wp_delete_comment( 1, true ) ;

ps. No he probado esto en la última versión o en Linux.

    
respondido por el Wyck 29.12.2012 - 21:37
0

Configure su instalación como desee y luego use algo como enlace para duplicar la instalación en sus otras ubicaciones para los otros sitios web. Esto es lo que hacemos para una instalación básica para todos nuestros proyectos.

Como alternativa, en lugar de hacer un WordPress nuevo para cada sitio, haga una copia de seguridad de su instalación de WP existente e impórtela en la nueva cuenta de alojamiento. Luego copie todos los archivos usando FTP, actualice la configuración de la base de datos en wp-config.php para la nueva base de datos y estará todo listo. Poco más involucrado que InfiniteWP, pero significa que no tienes que pagar por el complemento.

    
respondido por el cehwitham 29.12.2012 - 20:17
-1

Lo que debe hacer es abrir wp-includes / default-constants.php y cambiar la siguiente línea (la encontrará al final del documento) al nombre de la carpeta del tema:

if ( !defined('WP_DEFAULT_THEME') )
        define( 'WP_DEFAULT_THEME', 'twentytwelve' );

Por otra parte, siempre puedes probar Duplicator . Un complemento realmente bueno que te brinda muchos extras.

    
respondido por el marikamitsos 29.12.2012 - 13:31

Lea otras preguntas en las etiquetas