Come Creare un Pacchetto di Installazione Personalizzato per WordPress?

29 dic 2012, 10:44:29
Visualizzazioni: 15.9K
Voti: 5

Ho scaricato l'ultima versione di WordPress (3.5) e creato un tema personalizzato. Vorrei caricarlo e installarlo per diversi clienti. È possibile personalizzare le impostazioni predefinite in modo da non avere il post, la pagina e il commento di esempio aggiunti durante l'installazione? E impostare il tema predefinito che viene attivato?

Ho esaminato upgrade.php e schema.php e sembra che siano i file dove vengono aggiunti il post, la pagina e il commento di esempio, ma non riesco a trovare dove viene scelto il tema predefinito. Esiste un articolo su come modificare questi file o qualche suggerimento su cosa fare?

1
Commenti

Potresti configurare un'installazione WordPress iniziale e poi esportare le tabelle del database da utilizzare come base per i siti dei tuoi clienti.

shea shea
29 dic 2012 10:56:58
Tutte le risposte alla domanda 4
0

Ho risposto a una domanda simile. In sintesi:

  • crea un plugin Dropin nella radice di wp-content chiamato install.php

  • all'interno di install.php, crea una nuova versione della funzione pluggable wp_install_defaults()

  • rimuovi tutti i valori predefiniti indesiderati e personalizza a piacimento, ad esempio:

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

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

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

    • update_option('my_theme_options', $theme_options_array );

    • attiva automaticamente alcuni plugin inclusi

  • raggruppa tutto in un unico pacchetto (file di WordPress e file di contenuto: tema, plugin, install.php)

  • ora, ogni volta che esegui un'installazione, il Dropin verrà elaborato e il nuovo sito partirà con le tue pre-configurazioni


Ho eseguito ulteriori test nel mio ambiente di sviluppo e ho aggiornato il Gist dall'altra risposta con un install.php funzionante.
Ora contiene la funzione wpse_4041_run_activate_plugin($plugin) (per attivare i plugin inclusi) e una wp_new_blog_notification() vuota (che è un'altra funzione pluggable e impedisce a WP di inviare un'email di notifica sull'installazione del sito).

Ho utilizzato il tema F8 Lite per i test. La maggior parte del codice è un adattamento dello script originale (Pagina predefinita, Post, Commento, Categoria, Blogroll). E alla fine, i miei comandi personalizzati (cambia tema, imposta opzioni del tema, attiva plugin, imposta opzioni dei plugin).

Controlla i commenti nel file.


Non sono sicuro che sia il metodo migliore, ma all'interno del file functions.php del tema ho inserito questo script che eliminerà il file wp-content/install.php. Verrà eseguito solo una volta (basato su questa risposta di @bainternet) e dopo che WP è stato installato.

// Se l'opzione non esiste e lo script di installazione è presente, eliminalo
if ( wpse_25643_run_once( 'my_custom_install_2013' ) )
{
    if( file_exists( WP_CONTENT_DIR.'/install.php' ) ) 
    {
        unlink( WP_CONTENT_DIR.'/install.php' );
    }
}

/**
 * Controlla se l'opzione esiste
 *
 * @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;
    }
}

Domande e risposte correlate con un altro metodo che non utilizza install.php:
Script di inizializzazione per aspetti "standard" di un sito WordPress?

29 dic 2012 20:26:45
0

Sto lavorando a uno script di build in PHP utilizzando Phing che installa WP insieme ad alcuni elementi predefiniti (temi/plugin e codice personalizzato), è ancora un lavoro in corso.

https://github.com/wycks/WordPhing/

All'interno di build.xml troverai alcune opzioni PHP come le seguenti che vengono eseguite durante l'installazione:

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

    //rimuove il post predefinito "Hello World"
      wp_delete_post(1,true);

    //rimuove la pagina di esempio predefinita
      wp_delete_post(2,true);

    //rimuove il commento predefinito di Mr.Wordpress
      wp_delete_comment( 1, true ) ;

ps. Non ho testato questo script sull'ultima versione o su Linux.

29 dic 2012 22:37:23
0

Configura la tua installazione come preferisci, poi utilizza qualcosa come http://infinitewp.com/ per duplicare l'installazione nelle altre posizioni per i siti web aggiuntivi. Questo è ciò che facciamo per un'installazione base per tutti i nostri progetti.

In alternativa, invece di fare un'installazione pulita di WordPress per ogni sito, puoi fare un backup della tua installazione WP esistente e importarlo sul nuovo account di hosting. Poi copia tutti i file via FTP, aggiorna le impostazioni del database in wp-config.php per il nuovo database e sarai pronto. È un po' più laborioso rispetto a InfiniteWP, ma significa che non devi pagare per il plugin.

29 dic 2012 21:17:38
0
-1

Quello che devi fare è aprire il file wp-includes/default-constants.php e modificare la seguente riga (la troverai alla fine del documento) con il nome della cartella del tuo tema:

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

D'altra parte puoi sempre provare Duplicator. Un plugin davvero valido che ti offre molte funzionalità aggiuntive.

29 dic 2012 14:31:50