web-dev-qa-db-ja.com

WordPress Webサイトの「標準」アスペクト用の初期化スクリプト

私は、WordPress 3.0.1の新規インストールとWebサイトのすべての初期機能を追加するスクリプトを記述する必要があります。これは、同様のWebサイトを多数インストールしている企業のためのもので、構成とデータの標準的な出発点が必要です。

  • 他の誰かが既にこれを行っているのであれば、そしてもしそうであれば彼らがコードを共有できるのではないかと思います

毎回このスクリプトを微調整するつもりです彼らは新しいサイトを作るのでhard-codingは大丈夫ですしかし結局(十分な経験の後)私はプラグインに変換したいと思います。

これがタスクの基本的なリストです(これらはWordPress 3.0.1がインストール済みで、カスタムプラグインとカスタムテーマが適切なディレクトリにコピーされていることを前提としています)

// Create users for the current site
// Delete Hello Dolly Plugin
// Download, Install and Activate repository plugins
// Activate Custom Plugins (assume the plugins are already there)
// Activate Custom Theme
// Delete Hello Post
// Delete Comment on Hello Post
// Create Pages with Starter Content
// Create Initial Custom Post Types with Starter Content
// Create Multiple Menus 
// Create Menu Items for those Menus linking to Pages and wp-login.php
// Create Initial Taxonomy Terms
// Set Desired Permalinks Setting
// Set Static Front Page Setting

それはそれについてです(私がそれに入るとき私はもっと多くを識別するかもしれませんが)。

繰り返しますが、私は自分でコピーして変更できるコードを探していますなので、私は自分自身でこれらの詳細をすべて把握する必要はありません消費する)

もう1つ、このnowから始めなければならない _なので、早ければ早いほど良いです。 :-)

23
MikeSchinkel

希望するパーマリンクを設定

私が今週出会った、HTML5/CSS3機能に重点を置いた新しい(素晴らしい)テーマプロジェクトは、定型的なコンテンツを作成し、パーマリンク設定を組み込んだり、サイトインストールのための相対ルートを設定したりするための 'bootstrap'スクリプトです。機能はテーマのアクティブ化時に呼び出されます。プロジェクトは Roots と呼ばれ、コードはダウンロードすることができます here ;私はこのコードを信用しません。そうは言っても、これはパーマリンク構造としてauto-set/year/postnameするためのコードです(そしてグローバル$ pagenowのための以下のアクティベーションフックはここで説明されています: http://foolswisdom.com/wp-activate-theme-actio / 。).

<?php

    global $pagenow;
    if (is_admin() && 'themes.php' === $pagenow && isset( $_GET['activated'])) {


        // set the permalink structure
        if (get_option('permalink_structure') != '/%year%/%postname%/') { 
            update_option('permalink_structure', '/%year%/%postname%/');
      }

        $wp_rewrite->init();
        $wp_rewrite->flush_rules(); 


    }

?>

4
user4443

Hello Postを削除する(コメント付き)

wp_delete_post( 1, true );

wp_delete_post() docsから直接。 2番目のパラメータは、ゴミ箱に移動するのではなく、それを完全に無効にします。

メニューを作成する

これにより新しいメニューが作成され、既存のすべてのページがアイテムとして追加されます。私はそれが完全に正しいかどうかわからない、私はとりわけPageラベルを表示するメニュー項目を取得することができませんでした。とにかく私の脳は溶けているので休憩しています。たぶん誰かがこれをもっと信頼できるものにアップグレードすることができるでしょう。

$menu = wp_create_nav_menu( 'Pages' );
$menu = wp_get_nav_menu_object( 'Pages' );
$pages = get_pages();

foreach( $pages as $page ) {

$item = array(
'menu-item-db-id' => 0,
'menu-item-object-id' => $page->ID,
'menu-item-type' => 'post_type',
'menu-item-status' => 'publish'
);

wp_update_nav_menu_item( $menu->term_id, 0, $item );
}
3
Rarst

このインストールスクリプトを見てください。 https://github.com/Pravdomil/WP-Quick-Install

私はあなたのアイデアといくつかのコードを使ってあなたがおそらく探しているものを作ります。

データベースのセットアップ、言語の違い、ユーザーの作成、基本的なサイト設定の設定、デフォルトのプラグインとテンプレートの削除、プラグインとテーマのインストールとアクティブ化のダウンロード、デフォルトのアバター、パーマリンク、静的フロントページがあります。

貢献して自由に落ちた。

0
pravdomil

私がそれをよく理解しているならば、あなたは最初のインスタレーションのためにそれを望みます - それから私はあなたのアプローチが全く間違っていることを恐れています。

はるかに良い、簡単で標準化された方法はinstall.phpを作成しそれをwp-contentフォルダに置くことです - それはインストール中に自動的にロードされます。

そこにあなたはあなた自身のwp_install関数を置くことができます(wordpress自身の関数がif(!function_exist)を使うように)ので、そこにあなたは簡単にあなたのオプションを設定し、プラグインを活性化し、最初の投稿を埋めます。

2番目の選択肢は、既存のwpをクリアしたい場合(例えば、cronを使用して30分ごとにセットアップされたデモバージョンの場合)です。a)データベースを切り捨てて上記の手順を使用するか、または同じ。

0
user3261