メインブログを含む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_MULTISITE
wp-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 /を指す必要があります。