Cum să creezi un pachet personalizat de instalare WordPress

29 dec. 2012, 10:44:29
Vizualizări: 15.9K
Voturi: 5

Am descărcat cea mai recentă versiune de WordPress (3.5) și am creat o temă personalizată. Intenționez să o încărc și să o instalez pentru mai mulți clienți. Este posibil să personalizez setările implicite, cum ar fi eliminarea postării, paginii și comentariului demonstrativ adăugate la instalare? Și să setez tema implicită care să fie activată?

Am analizat fișierele upgrade.php și schema.php și se pare că acolo se adaugă postarea, pagina și comentariul demonstrativ, dar nu pot găsi unde este selectată tema implicită. Există vreun articol despre cum să editez aceste fișiere sau câteva sfaturi despre ce să fac?

1
Comentarii

Ai putea să configurezi o instalație WordPress de bază și apoi să exporți tabelele bazei de date pentru a le folosi ca punct de plecare pentru site-urile clienților tăi.

shea shea
29 dec. 2012 10:56:58
Toate răspunsurile la întrebare 4
0

Am răspuns la o Întrebare similară. Pe scurt:

  • creează un plugin Dropin în directorul root al wp-content numit install.php

  • în interiorul install.php, creează o versiune nouă a funcției pluggable wp_install_defaults()

  • elimină toate valorile implicite nedorite și personalizează după necesități, de exemplu:

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

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

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

    • update_option('my_theme_options', $theme_options_array );

    • activează automat unele plugin-uri incluse

  • împachetează totul într-un singur pachet (fișiere WordPress și fișiere de conținut: Temă, Plugin-uri, install.php)

  • acum, de fiecare dată când rulezi o instalare, Dropin-ul va fi procesat și noul site va porni cu pre-configurările tale


Am făcut mai multe teste în mediul meu de dezvoltare și am actualizat Gist-ul din celălalt răspuns cu un install.php funcțional.
Acum conține funcția wpse_4041_run_activate_plugin($plugin) (pentru activarea plugin-urilor incluse) și o funcție goală wp_new_blog_notification() (care este o altă funcție pluggable și previne trimiterea unui email de notificare despre instalarea site-ului de către WordPress).

Am folosit tema F8 Lite pentru teste. Majoritatea codului este o adaptare a scriptului original (Pagină implicită, Postare, Comentariu, Categorie, Blogroll). Iar la final, comenzile mele personalizate (schimbare temă, setări opțiuni temă, activare plugin-uri, setări opțiuni plugin-uri).

Verifică comentariile din fișier.


Nu sunt sigur dacă este cea mai bună metodă, dar în fișierul functions.php al temei am pus acest script care va șterge fișierul wp-content/install.php. Va rula doar o singură dată (bazat pe acest Răspuns de @bainternet) și după ce WordPress a fost instalat.

// Dacă opțiunea nu există și scriptul de instalare este prezent, șterge-l
if ( wpse_25643_run_once( 'my_custom_install_2013' ) )
{
    if( file_exists( WP_CONTENT_DIR.'/install.php' ) ) 
    {
        unlink( WP_CONTENT_DIR.'/install.php' );
    }
}

/**
 * Verifică dacă opțiunea 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;
    }
}

Întrebări și răspunsuri conexe cu o altă metodă care nu folosește install.php:
Script de inițializare pentru aspecte "standard" ale unui site WordPress?

29 dec. 2012 20:26:45
0

Lucrez la un script de construire în PHP folosind Phing care instalează WP împreună cu unele setări implicite (teme/plugin-uri și cod personalizat), este încă în lucru.

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

În interiorul fișierului build.xml veți vedea unele opțiuni PHP precum următoarele care rulează în timpul instalării:

     //șterge plugin-ul Hello Dolly 
      delete_plugins(array('hello.php'));

    //șterge articolul implicit "Hello World"
      wp_delete_post(1,true);

    //șterge pagina implicită de exemplu
      wp_delete_post(2,true);

    //șterge comentariul implicit de la Mr.Wordpress
      wp_delete_comment( 1, true ) ;

ps. Nu am testat acest lucru pe cea mai recentă versiune sau pe Linux.

29 dec. 2012 22:37:23
0

Configurează-ți instalarea așa cum dorești, apoi folosește un serviciu precum http://infinitewp.com/ pentru a duplica instalarea în celelalte locații pentru site-urile tale. Aceasta este metoda pe care o folosim pentru o instalare de bază pentru toate proiectele noastre.

Alternativ, în loc să faci o instalare nouă de WordPress pentru fiecare site, poți face o copie de rezervă a instalării tale existente și să o imporți pe noul cont de hosting. Apoi copiază toate fișierele folosind FTP, actualizează setările bazei de date în wp-config.php pentru noua bază de date și vei fi pregătit. Este un proces mai complex decât InfiniteWP, dar înseamnă că nu trebuie să plătești pentru plugin.

O altă metodă ar fi să clonezi întreaga instalație WordPress folosind un plugin precum Duplicator sau All-in-One WP Migration, care gestionează automat procesul de mutare a site-ului între domenii sau servere.

29 dec. 2012 21:17:38
0
-1

Ceea ce trebuie să faci este să deschizi wp-includes/default-constants.php și să modifici următoarea linie (o vei găsi la sfârșitul documentului) cu numele folderului temei tale:

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

Pe de altă parte, poți încerca întotdeauna Duplicator. Un plugin foarte bun care îți oferă o mulțime de funcționalități suplimentare.

29 dec. 2012 14:31:50