メインブログを含むWordPressマルチサイトネットワークがあり、すべてのコンテンツがそのブログに移動したと仮定した場合、ネットワークをどのようにして標準のWordPress非ネットワーク非マルチサイトインストールに戻すのでしょうか?
メインブログを含むWordPressマルチサイトネットワークがあり、すべてのコンテンツがそのブログに移動したと仮定した場合、ネットワークをどのようにして標準のWordPress非ネットワーク非マルチサイトインストールに戻すのでしょうか?
回答:
マルチサイトインストールからシングルインスタンスにサイトを抽出する手順を実行しました。
DELETE FROM wp_usermeta WHERE user_id NOT IN( SELECT distinct(user_id) FROM wp_usermeta where meta_key LIKE 'wp_SITEID_%' );DELETE FROM wp_users WHERE ID NOT IN( SELECT distinct(user_id) FROM wp_usermeta where meta_key LIKE 'wp_SITEID_%' );UPDATE wp_usermeta SET meta_key = REPLACE( meta_key, 'wp_SITEID_', 'wp_' ) WHERE meta_key LIKE 'wp_SITEID_%';UPDATE wp_options SET option_name = REPLACE( option_name, 'wp_SITEID_', 'wp_' ) WHERE option_name LIKE 'wp_SITEID_%';wp-config.php[インストールの実行]をクリックしないでください。blogs.dir/SITE_ID/filesはuploads、を検索しoldsite.comて置き換えnewsite.comます。かなりの労力とデータベースの編集には注意する必要がありますが、既存のマルチサイトからすべての設定などをそのままにして単一のサイトを抽出できるのはそれだけです。
編集:
@Jakeが見つけたように、私はあなたが取る必要があるかもしれない最終ステップを言及するのを忘れていました。古いURLの検索/置換。それに応じてリストを更新しました。
SITEID正しいサイトID に変更しても、手順7で何も機能せず、効果もありませんでした。その代わりに、テーブルでsiteurlとhomeオプションを更新する必要がある可能性が高いことに注意してwp_optionsください。これの残りはかなり良いチェックリストでした。ありがとう。
新しいブログを再インストールせずにマルチサイトインストールを削除することができます。手順に従ってください。
WP_ALLOW_MULTISITEwp-config.phpの定数をFALSEのMU設定を削除またはコメント化しますwp-config.php:
/**
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', false );
$base = '/wordpress/';
define( 'DOMAIN_CURRENT_SITE', 'localhost' );
define( 'PATH_CURRENT_SITE', '/wordpress/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );
*/.htaccess以下のソースのように、MUの設定を削除します。
# BEGIN WordPress
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
# END WordPressバックエンドで新しいパーマリンクを作成し、WPでwp-admin/options-permalink.php結果がコピー.htaccessできない場合は、WPでこのファイルへの書き込み権限をコピーします。
テーブル内の不要なエントリを削除しますusers。phpMyAdminやAdminerなどのツールでfollow sqlステートメントを使用します
`ALTER TABLE `wp_users` DROP `spam`, DROP `deleted`;`次の表は削除できます。
(wp_データベースプレフィックスの変更)
これで、ネットワークの他のブログの最後のテーブルのみができました。このコンテンツも使用する場合は、これをWordPressエクスポート経由でXMLとしてエクスポートし、クリーンシングルインストールでインポートします。
実際、それは可能であり、かなり簡単です。私はそれを何回かしました。
考慮すべきことがあります。
wp-configのmulti site define(?)をコメントアウトしてパーマリンクを更新すると、サイトがシングルサイト/デフォルトモードに戻ります。その後、データベースをクリーンアップするだけです。
何らかの理由でwp-adminにアクセスしてパーマリンクを更新できない場合は、.htaccessファイルを削除してください。WordPressは、シングルサイトモードでそれを再作成します。
コード/サポート記事へのリンクを見つけて、回答を更新するために最善を尽くします。
サポートフォーラムhttp://wordpress.org/support/topic/revert-to-single-siteの 1つの項目へのリンクを次に示します。
ここでの基本プロセスは、WP 3.5.1でもうまく機能します。1つの明確化:サブサイトに何か名前を付けた場合、データベース内のリンクを変更してその名前を削除する必要があります。サブサイトの名前が... mysite.com/comicsの場合、上記の手順を実行した後、WPはmysite.com/comicsを探し、パーマリンクでエラーを取得します。/ comics拡張を探してWP-OPTIONSテーブルを編集し、削除します。また、Uploadsディレクトリが適切な場所を指していることを確認します-まだblogs.dirエントリが表示されている場合があり、代わりにwp-content / uploads /を指す必要があります。