0

ある WP サイトを新しいサイトに移行する作業を行っています。どちらも多くのカスタム フィールド、タクソノミー、投稿タイプを備えた高度な機能を備えているため、組み込みのプラグインをインポート/エクスポートに使用することはできません。

$wpdb->select('old_db_name')代わりに、同じサーバー上に両方のデータベースをセットアップし、 と を使用して簡単に切り替えることができます$wpdb->select(DB_NAME)。このための小さなプラグインを作成して、WP内から実行できるようにし、投稿のフェッチと挿入などにすべてのWPメソッドを使用できるようにしました.

1 つのことを除いて、すべて正常に動作します。タクソノミー。分類法に関連する私が試したすべての機能は、DB_NAMEデータベース(つまり、WPインストールが実行されているもの)を照会します。

簡単な例を次に示します。

<?php
global $wpdb;

# Use default DB
$wpdb->select(DB_NAME);

# Prints "2" (I've only added two posts to the new installation)
echo count(get_posts(array('numberposts' => -1)));
# Prints all the taxonomies
var_dump(get_taxonomies());

# Switch to old DB
$wpdb->select('old_db_name');

# Prints > "300" (there are roughly 300 posts in the old DB - the number is correct and NOT the same as before)
echo count(get_posts(array('numberposts' => -1)));
# Prints EXACTLY the same thing as the previous call, even though the old DB has different custom taxonomies
var_dump(get_taxonomies());

wp_get_post_terms()どちらも機能しませんが、代わりに新しい DB にクエリを実行します (新しい DB に存在しなくなった古い分類法から用語を取得しようとすると、WP は分類法が存在しないというエラーをスローします)。

これはバグですか?それを解決する方法はありますか?WP で複数の DB を使用することに関する情報はあまりないため、オンラインで何かを見つけることができませんでした。

4

1 に答える 1