Đưa ra một mạng WordPress Multisite, với một blog chính và giả sử tất cả nội dung đã được chuyển sang blog đó, làm thế nào để thu gọn mạng trở lại thành một cài đặt không đa mạng WordPress tiêu chuẩn?
Đưa ra một mạng WordPress Multisite, với một blog chính và giả sử tất cả nội dung đã được chuyển sang blog đó, làm thế nào để thu gọn mạng trở lại thành một cài đặt không đa mạng WordPress tiêu chuẩn?
Câu trả lời:
Bây giờ tôi đã thực hiện các bước để trích xuất một trang web từ cài đặt nhiều trang thành một phiên bản duy nhất bây giờ:
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
nhưng không nhấp vào 'Chạy cài đặt'blogs.dir/SITE_ID/files
bằng uploads
và nếu bạn thay đổi tìm kiếm URL trang web của bạn oldsite.com
và thay thế bằng newsite.com
.Một chút nỗ lực và bạn phải cẩn thận với các chỉnh sửa cơ sở dữ liệu nhưng đó là điều duy nhất tôi có thể thấy để trích xuất một trang web từ nhiều trang hiện có với tất cả các cài đặt của nó, v.v ... còn nguyên vẹn.
BIÊN TẬP:
Như được phát hiện bởi @Jake, tôi đã quên đề cập đến các bước cuối cùng mà bạn có thể cần thực hiện, ví dụ. tìm kiếm / thay thế các URL cũ. Tôi đã cập nhật danh sách cho phù hợp.
SITEID
thành id trang web chính xác. Thay vào đó, bạn nên đề cập rằng các tùy chọn siteurl
và home
có thể sẽ cần phải được cập nhật trong wp_options
bảng. Phần còn lại của danh sách này là khá tốt. Cảm ơn.
Có thể loại bỏ cài đặt nhiều trang mà không cần cài đặt lại một blog mới. Thực hiện theo các bước.
WP_ALLOW_MULTISITE
trong wp-config.php của bạn thànhFALSE
Xóa hoặc nhận xét cài đặt MU trong wp-config.php
, như thế này:
/**
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 );
*/
Xóa cài đặt MU khỏi .htaccess
, như nguồn bên dưới:
# 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
Tạo permalinks mới, trong phần phụ trợ wp-admin/options-permalink.php
và có thể sao chép kết quả vào .htaccess
, nếu WP không thể, quyền ghi vào tệp này.
Loại bỏ các mục không hữu ích trong bảng users
; sử dụng câu lệnh sql follow trong một công cụ, như phpMyAdmin hoặc Adminer
`ALTER TABLE `wp_users` DROP `spam`, DROP `deleted`;`
Các bảng sau có thể được loại bỏ:
(thay đổi wp_
tiền tố cơ sở dữ liệu của bạn)
Bây giờ bạn chỉ có các bảng cuối cùng của các blog khác của mạng. Nếu bạn cũng sẽ sử dụng nội dung này, thì hãy xuất nội dung này trước khi xuất qua WordPress dưới dạng XML và nhập ngay trong cài đặt đơn.
Trên thực tế nó có thể và khá dễ dàng để làm; Tôi đã thực hiện nó nhiều lần.
Có những điều cần xem xét.
Nhận xét về định nghĩa đa trang web (?) Trong wp-config và cập nhật permalinks của bạn sẽ hoàn nguyên trang web về chế độ mặc định / trang web duy nhất. Sau đó, tất cả những gì bạn phải làm là dọn sạch cơ sở dữ liệu của bạn.
Nếu vì một lý do nào đó, bạn không thể truy cập wp-admin của mình để cập nhật permalinks chỉ cần xóa tệp .htaccess của bạn. WordPress sẽ tạo lại nó cho bạn trong chế độ trang web duy nhất.
Tôi sẽ làm hết sức mình để tìm liên kết đến bài viết về mã / hỗ trợ và cập nhật câu trả lời với nó.
Đây là một liên kết đến một mục trên diễn đàn hỗ trợ http://wordpress.org/support/topic/revert-to-single-site
Các quy trình cơ bản ở đây hoạt động tốt ngay cả trong WP 3.5.1 Một cách làm rõ: Nếu bạn đặt tên trang con của mình, bạn sẽ phải thay đổi các liên kết trong cơ sở dữ liệu để xóa tên đó. Nếu trang con của tôi được đặt tên là ... mysite.com/comics thì sau khi làm theo các quy trình trên, WP của bạn sẽ tìm kiếm mysite.com/comics và gặp lỗi trên permalinks. Chỉnh sửa bảng WP-OPTIONS tìm kiếm tiện ích mở rộng / truyện tranh và xóa nó. Ngoài ra, hãy kiểm tra xem thư mục Tải lên đang trỏ đến vị trí thích hợp - nó vẫn có thể hiển thị một mục blog.dir và bây giờ thay vào đó hãy trỏ đến wp-content / uploads /