web-dev-qa-db-ja.com

テーマが異なり、単一のデータベースと同じコンテンツで2つのWordpressブログを実行する方法

1つのデータベースを使用して、テーマが異なる2つのWordpressブログを両方のサイトで同じように実行するにはどうすればよいですか。私が得ている問題は両方のブログのドメインマッピングにあります。

3
Aryan

それがどのように行われる可能性があるかを説明しようとしますが、それがうまくいくかどうかはわかりません。

  1. シングルデシベル(2コピー)で2番目のウェブサイトをインストールします。
  2. データベースに新しいテーブルを作成します。それをwp_options2と呼び、wp_optionsから新しいテーブルにすべてをコピーします。
  3. if ( !defined('ABSPATH') ) addの前のwp-config.phpへの2回目のインストールで

    define( 'M7_OPTIONS_TABLE', 'wp_options2' );
    
  4. 2回目のインストールでは、951行目のwp-includes/wp-db.phpに行き、次のコードを追加します。

    if ( isset( $tables['options'] ) && defined( 'M7_OPTIONS_TABLE' ) )
        $tables['options'] = M7_OPTIONS_TABLE;
    

    (このコードは、if ( isset( $tables['users'] ) && defined( 'CUSTOM_USER_TABLE' ) )の前にpublic function tables関数に追加する必要があります)

今、あなたはテーマを変更することができるはずです、プラグインatc。 2番目のテーマのために、しかしすべての投稿、分類法などは両方のウェブサイトで倍増されるでしょう(どれがseo btwにとって悪いです)。

2回目のインストールでリンクに問題が発生した場合は、次の行を追加してください。

define('WP_HOME','http://seccond_website.com');
define('WP_SITEURL','http://seccond_website.com');

wp-config.phpファイルに.....

最初のウェブサイトに投稿を作成した場合、2番目のウェブサイトに最初のウェブサイトにリンクする場合は、問題は解決しません...

たとえそれが正しくなかったとしても、私はまだこの答えを投稿するつもりです(上記の問題のため)。

解決策として、異なる$table_prefixを持つ2つの別々のインストールを作成し、それぞれの移動(save_post、save_taxonomies、save_postmetaなど)にアクションを追加して、1 dbから他のものに保存しますが、必要なリンクは変更できます。

あるいは、2番目のインストールでcronジョブを作成して、1番目のデータベースから2番目のデータベースまでのすべての投稿、ページなどを解析することもできます(両方にアクセスできるので、簡単です)。

それが十分であるかどうかわからないが、この2つのプラグインはあなたが欲しいもののほとんどをあなたに与えるべきである Any hostname - コンテンツが要求されたドメインを反映するようにコンテンツURLを変更 Domain Theme - それらを変更ドメイン名に従って。

私はそれらのどれもテストしていませんが、うまくいかなくても役に立つコードを手に入れることができるようです。

0
Mark Kaplun

2つの別々のWordPressインストールがある場合(ドメインごとに1つ)、特定のアドレス/ホスト名を強制するためにWP_SITEURLWP_HOMEwp-config.phpを定義することができます。このコードを各wp-config.phpに追加します。

define('WP_HOME','http://example.com');
define('WP_SITEURL','http://example.com');

そして、example.comを問題のドメインの名前に変更してください。

0
Sven

現在のドメインに基づいてテーマを変更できます。

function select_theme( $current_theme ) {
    if ( 'domain1.com' === $_SERVER['HTTP_Host']) {
        return 'domain1 theme name';
    } else {
        return 'domain2 theme name';
    }
}

add_filter( 'stylesheet', 'select_theme' );
add_filter( 'template', 'select_theme' );
0
Mitul