Come Creare un Pacchetto di Installazione Personalizzato per WordPress?
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?

Ho risposto a una domanda simile. In sintesi:
crea un plugin Dropin nella radice di
wp-content
chiamatoinstall.php
all'interno di
install.php
, crea una nuova versione della funzione pluggablewp_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?

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.

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.

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.
