web-dev-qa-db-ja.com

カスタムWordPressインストールパッケージを作成するにはどうすればいいですか?

最新版のWordPress(3.5)をダウンロードして、カスタムテーマを作成しました。複数のクライアントにアップロードしてインストールする予定です。サンプル投稿、ページ、コメントをインストール時に追加しないなどのデフォルト設定をカスタマイズすることは可能ですか?そして、アクティブになっているデフォルトのテーマを設定しますか?

Upgrade.phpとschema.phpを見て、それがサンプルの投稿、ページ、コメントが追加されているところですが、デフォルトのテーマが選択されているところがわかりません。これらのファイルを編集する方法についての記事または何をすべきかについてのヒントはありますか?

4
user1822824

同じような質問に答えました 。基本的に:

  • wp-contentのルートに Dropin プラグインをinstall.phpという名前で作成します。

  • install.php内に、プラガブル関数の新しいバージョンを作成します wp_install_defaults()

  • 以下のように、不要なデフォルトをすべて削除し、自由にカスタマイズしてください。

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

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

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

    • update_option('my_theme_options', $theme_options_array );

    • 自動起動 バンドルされているプラ​​グイン

  • すべてを1つのパッケージにまとめます(WordPressファイルとコンテンツファイル:テーマ、プラグイン、install.php

  • これで、インストールを実行するたびにDropinが処理され、新しいサイトがあなたの事前設定で起動します


私は自分の開発環境でもう少しテストをして、他の答えから Gist を作業中のinstall.phpで更新しました。
これには関数wpse_4041_run_activate_plugin($plugin)(バンドルされたプラグインを有効にするため)と空のwp_new_blog_notification()(別のプラグインで、WPがaを送信できないように)が含まれます。サイトのインストールに関する通知メール)。

テストには F8 Lite というテーマを使いました。コードの大部分は元のスクリプト(デフォルトのページ、投稿、コメント、カテゴリ、ブログロール)を改変したものです。そして最後に、私のカスタムコマンド(テーマの変更、テーマオプションの設定、プラグインの有効化、プラグインオプションの設定)。

ファイルのコメントを確認してください。


それが最善の方法かどうかはわからないが、テーマのfunctions.phpファイルの中に、 delete ファイルのwp-content/install.phpとなるようなスクリプトを入れます。それは一度だけ( this Answer by @bainternetに基づいて)そして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;
    }
}

install.phpを使用しない別の方法との関連Q&A:
WordPress Webサイトの「標準」アスペクト用の初期化スクリプト

3
brasofilo

私はPhingを使ってWPをいくつかのデフォルト(テーマ/プラグインとカスタムコード)と共にインストールするPhpビルドスクリプトに取り組んでいます、それはまだ進行中の作業です。

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

build.xmlの中には、インストール中に実行される以下のようないくつかのphpオプションがあります。

     //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。私は最新のリリースやLinuxでこれをテストしていません。

1
Wyck

必要に応じてインストールを設定してから、 http://infinitewp.com/ /のようなものを使用して、インストールを他のWebサイト用の他の場所に複製します。これが、すべてのプロジェクトの基本インストールに対して行うことです。

あるいは、サイトごとに新しいWordPressを実行する代わりに、既存のWPインストールのバックアップを作成し、それを新しいホスティングアカウントにインポートします。それからFTPを使ってすべてのファイルをコピーし、新しいデータベースのためにwp-config.phpのデータベース設定を更新すれば、すべて設定できます。 InfiniteWPよりも少し複雑ですが、プラグインの支払いは不要です。

0
cehwitham